ci: close the site-data lane gap and clear two pieces of bench drift - #756
Merged
Merged
Conversation
Exoridus
enabled auto-merge (squash)
September 16, 2026 23:38
|
You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard. |
Bundle ReportBundle size has no change ✅ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 undertest/, so they only ran when theenginearea 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/*.jsonreaches no area that runs a test: the bench package is not inRUNTIME_PACKAGES, andisBenchStructuralPathcoverssrc/,test/andbaselines/but notresults/. Every profile commit so far landed withoutbench-invalid-values,bench-timer-checkorbench-archetype-labelsever running against it, although those three exist to check that file and nothing else.A new
siteDataarea now covers the sources those suites read -site/src/lib/,examples/andpackages/exojs-bench/results/- and the unit lane gates on it alongsideengineandguides.site/src/pages/andsite/src/components/stay out on purpose: no suite reads them, and the site build already gates on the widersitearea.One existing expectation moves in the stricter direction.
example SOURCE change runs the example-smoke laneasserted that an example change leaves the unit lane off; that was the same gap, becauseexamples-syncfails a.tsedit whose generated.jstwin was not regenerated, and it never ran on the edit that breaks it.fx-blurhas been a published comparison since #732The catalog carried a comment stating that
fx-bluris 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 (itsstrengthis 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
fullprofile apart from areferenceoneverify:bench-resultschecks shape, provenance, run count and a signature that recomputes - all of which afullrun satisfies just as well, because it was measured rather than typed. Afullprofile 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.checkReferencePlannow 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 - anoverdraw/1krow and adynamic-heavy/50krung - and confirming each is named in the output. Both committed profiles pass unchanged.Validation
pnpm gates typecheck(9/9),pnpm gates lint(10/10, includingverify: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 typecheckfails in any tree whosepackages/exojs-build/dist/predates #750, becauseexojs-clitypechecks against@codexo/exojs-build/asset-manifest. A package rebuild fixes it.