Fifth and sixth occurrences of the same defect in one day, this time in PopupRow and three spots in the lab. The menu entries and the channel picker were unreadable at rest on the green theme and only became legible on hover, because the hover lerp pulls toward a correctly converted accent -- which is exactly the symptom the tester reported. The shape of the mistake is always identical: a raw ThemeColors member (RGBA) handed to EnsureContrast (ABGR). The compiler cannot see it, both layouts are uint, and a stray extra RgbaToAbgr around the call makes the result look plausible while measuring a contrast between two colours that are never on screen. So this commit is mostly the guard. preflight Block G runs scripts/verify-colour-channels.sh, which flags any raw theme member in either argument of EnsureContrast across the UI tree. Falsified before trusting: broken deliberately, it goes red; and on its very first real run it caught three offenders in the lab that a hand-rolled grep had missed minutes earlier.
36 lines
1.3 KiB
Bash
Executable File
36 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# preflight.sh — pre-push gate. Blocks A/B/C verify config drift; Block D is a
|
|
# headless `dotnet build` to catch compile-time API drift; Block E runs
|
|
# `dotnet csharpier check` against HellionChat/; Block F runs markdownlint
|
|
# against the repo's *.md files. Test execution lives in the local Build-Suite
|
|
# repo and is NOT part of this preflight.
|
|
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
echo "==> preflight: Block A — version consistency"
|
|
./scripts/verify-version-consistency.sh
|
|
|
|
echo "==> preflight: Block B — manifest shape"
|
|
./scripts/verify-manifest-shape.sh
|
|
|
|
echo "==> preflight: Block C — changelog sync"
|
|
./scripts/verify-changelog-sync.sh
|
|
|
|
echo "==> preflight: Block G — colour channel audit"
|
|
./scripts/verify-colour-channels.sh
|
|
|
|
echo "==> preflight: Block D — plugin compile health"
|
|
dotnet build HellionChat/HellionChat.csproj --configuration Release --nologo --verbosity quiet
|
|
|
|
echo "==> preflight: Block E — csharpier reflow check"
|
|
dotnet csharpier check HellionChat/
|
|
|
|
echo "==> preflight: Block F — markdownlint"
|
|
# npx --yes avoids a global install; first run caches into ~/.npm/_npx/.
|
|
# Subsequent runs are sub-second.
|
|
npx --yes markdownlint-cli2 "**/*.md" "#node_modules" "#bin" "#obj" "#.claude" "#CLAUDE.md"
|
|
|
|
echo "==> preflight: ALL GREEN"
|