Releases
1.9.4
For you
- Nothing changes for you. These are two checks in the build gate, standing guard on two repairs that already shipped.
Under the hood
- Gate 1 now refuses a site test that builds the real pages without giving Astro a project root of its own. Astro derives its content store directory from the root and nothing else, there is no separate key for it, and node:test runs a file's top level before hooks concurrently whatever the concurrency flag says, so two builds sharing one root both write the same temporary file, the first rename consumes it, and the second dies with an ENOENT on a file it had just written. scripts/check_astro_build_isolation.py finds each place a test asks the Astro CLI for a build and requires an explicit root in the same call. Both places that spawn a build outside site/test/helpers/astro-build.ts pass one already, the helper itself and built-output/site-contract.test.ts against a scratch fixture root, so neither is a named exception; they simply pass. Comment bodies are blanked before the scan, because the comments that document this rule quote the shape it looks for.
- A second check flags an .astro component that reads two different clubs' published colours with no separated pair between them. 464 of the league's 496 pairings measure below WCAG 1.4.11's 3 to 1 graphical floor against each other on the dark theme and 394 on the light one, so the shape is far likelier to be wrong than right, and the fix is the per pair, per theme custom property stamped from separateAdjacentBands, since the answer depends on BOTH colours. scripts/check_team_color_pairs.py reports a component that reads the raw club token twice with no such property wrapping it. Four components that keep two clubs apart by geometry instead, a gap, a seam drawn in the card colour, or two grid cells with a gutter between them, are recorded as reviewed exceptions naming what was checked, and the check fails if one of those entries stops describing the tree. It is a tripwire, not a proof: it reads text, it cannot see geometry, and a green run says nobody wrote the known shape, not that no two club colours touch anywhere. Both checks scan git tracked files the way the dash scan does, so staging comes before the gate.