Skip to content

ci: close the site-data lane gap and clear two pieces of bench drift - #756

Merged
Exoridus merged 3 commits into
nextfrom
chore/lane-gap-and-bench-drift
Sep 16, 2026
Merged

Exoridus merged 3 commits into
nextfrom
chore/lane-gap-and-bench-drift

Conversation

@Exoridus

Copy link
Copy Markdown
Owner

Three pieces of drift where a gate or a comment claimed something the code no longer did. No runtime behaviour changes.

The unit lane never ran on the data its own suites read

test/site/** holds seventeen suites that validate site content, and they all live under test/, so they only ran when the engine area was set. Guide content already had its own area for exactly this reason (isGuidesPath, with the argument spelled out in its doc comment), but the same argument covers three more sources that had none.

The sharpest case is a committed benchmark profile. packages/exojs-bench/results/*.json reaches no area that runs a test: the bench package is not in RUNTIME_PACKAGES, and isBenchStructuralPath covers src/, test/ and baselines/ but not results/. Every profile commit so far landed without bench-invalid-values, bench-timer-check or bench-archetype-labels ever running against it, although those three exist to check that file and nothing else.

A new siteData area now covers the sources those suites read - site/src/lib/, examples/ and packages/exojs-bench/results/ - and the unit lane gates on it alongside engine and guides. site/src/pages/ and site/src/components/ stay out on purpose: no suite reads them, and the site build already gates on the wider site area.

One existing expectation moves in the stricter direction. example SOURCE change runs the example-smoke lane asserted that an example change leaves the unit lane off; that was the same gap, because examples-sync fails a .ts edit whose generated .js twin was not regenerated, and it never ran on the edit that breaks it.

fx-blur has been a published comparison since #732

The catalog carried a comment stating that fx-blur is deliberately absent from the reference plan because its two arms do not produce the same picture. That was true when it was written, and #732 made it false: the Pixi arm was corrected (its strength is a tap spacing rather than a sigma, and the two filters derived their reach from different multiples of the blur), parity was verified to within 18 of 255 on the worst channel of the worst pixel, and the scenario was given a reference load. Both committed profiles carry the cell. The comment was left behind; the flag is correct.

Nothing told a full profile apart from a reference one

verify:bench-results checks shape, provenance, run count and a signature that recomputes - all of which a full run satisfies just as well, because it was measured rather than typed. A full profile carries the development rungs and the ExoJS-internal probes, whose competitor arms render some other scene, so publishing one would put comparisons on the page that were never comparisons.

checkReferencePlan now rejects any row the reference plan does not select. Only extra rows fail: a profile may hold fewer cells than the plan, because an arm that refused a scenario leaves a gap, and that is a measurement outcome rather than a defect. Verified by injecting both shapes of the mistake into a copy of a committed profile - an overdraw/1k row and a dynamic-heavy/50k rung - and confirming each is named in the output. Both committed profiles pass unchanged.

Validation

pnpm gates typecheck (9/9), pnpm gates lint (10/10, including verify:bench-results), git diff --check, and the lane and bench site suites (89 tests). The pre-push hook ran the selected lanes, all 29 green.

Unrelated to this change but worth knowing: pnpm gates typecheck fails in any tree whose packages/exojs-build/dist/ predates #750, because exojs-cli typechecks against @codexo/exojs-build/asset-manifest. A package rebuild fixes it.

@Exoridus
Exoridus enabled auto-merge (squash) September 16, 2026 23:38
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard.

@codecov

codecov Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

@Exoridus
Exoridus merged commit 2e83214 into next Sep 16, 2026
17 checks passed
@Exoridus
Exoridus deleted the chore/lane-gap-and-bench-drift branch September 16, 2026 23:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant