Uh oh!
There was an error while loading. Please reload this page.
docs(scripts): stop restating the eager-closure headroom in prose - #7529
Merged
os-project-manager merged 1 commit intoSep 3, 2026
Merged
Conversation
`scripts/check-eager-closure-budget.mjs` carried three different aggregate headroom figures and none of them was the one in force. 45,996 (header) was objectui#6683's ceiling minus objectui#6683's baseline, a whole re-baseline stale. 11,988 (`PER_CHUNK_GZIP_CEILINGS`) was objectui#7399's post-change live reading frozen into a sentence. 45,686 (`MAX_EAGER_CLOSURE_GZIP_BYTES`) is arithmetic on the two constants beside it and is correct — but it is the headroom above the BASELINE, not what the closure has left, and the prose did not say so. Measured on this branch's base, the gate prints 9.5 KB. Two more of the same shape: "the aggregate headroom now 44.0 KB" (`evaluateCeilingFreshness`) was objectui#5924-era, and the "TIGHTER half — 0.21x, 0.08x, 0.04x against the aggregate's 0.47x" ranking in `PER_CHUNK_BASELINE` had INVERTED (`vendor-objectstack` is 0.20x against the aggregate's 0.11x today). Comment-only. Every constant — `MAX_EAGER_CLOSURE_GZIP_BYTES`, `BASELINE`, `PER_CHUNK_GZIP_CEILINGS`, `PER_CHUNK_BASELINE`, `REGRESSION_THIS_GATE_MUST_CATCH_BYTES` — keeps its value, and the gate's verdict is byte-identical before and after. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EMrWaQw3XS5DxTHxp4yRyC
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
os-project-manager
marked this pull request as ready for review
September 3, 2026 17:33
Uh oh!
There was an error while loading. Please reload this page.
os-project-manager
deleted the
claude/issue-7518-eager-closure-headroom-prose
branch
September 3, 2026 17:57
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 freeto 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.
Fixes#7518
Comment-only. Every constant keeps its value; the gate's verdict is byte-identical
before and after.
The disposition, and why it is not "write today's number"
The card offered three routes — (a) restate the figure, (b) restate a ratio,
(c) point at the live verdict. The dispatching seat ruled (c), and the argument
is one this file has already proved on itself: a hardcoded headroom here went stale
badly enough to produce three mutually contradictory versions, two of them in the
same file. (a) only winds the clock forward to today; (b) drifts with the baseline.
So the prose now says which line is binding and how to read the current value
(
pnpm check:eager-closure) and does not say what it equals.Same shape as #7517 (
f620a26f6), which fixed the ten locale packs' stale headroomnote by naming the ceiling's distance from the baseline it was measured from and
pointing at the same command.
Whole-file census
The card required a survey of the entire file, not only the line it names. Line
numbers are on the pre-change file at
f620a26f6.Aggregate surface — rewritten
:50-513,300,000 − 3,254,004— the objectui#6683 ceiling/baseline pair, one full re-baseline stale, and "the current" is a baseline that was replaced by objectui#6776:54:4553,268,000 − 3,256,012— objectui#7399's own post-change live reading frozen into a sentence:1245-12463,345,000 − 3,299,898 = 45,102— the objectui#5924 pair, two re-baselines back, present tense:548-550e33b44796ratios promoted into a present-tense structural claim — and the claim has inverted (below)Aggregate surface — deliberately kept, with the reason
:2553,268,000 − 3,222,314: arithmetic on two constants in this file, correct at write time and correct now, and it cannot drift independently of them (the unit test assertsMAX − BASELINE.gzipBytes < REGRESSION). What was missing is that this is headroom above the baseline, not what the closure has left — the sentence now says so and points at the live figure.:530-531:64-65REGRESSION_THIS_GATE_MUST_CATCH_BYTESand on the retired ~2% policy it replaced. A statement about the policy; no measurement in it.:117,:136,:156,:242,:251:544-547e33b44796run tableframeworkrow weighs locale catalogues that line no longer holds — without it a reader takes a retired subject for the current one, which is the false rule objectui#7399 was itself written about.The inverted ranking, measured
:548-550asserted the three per-chunk lines were tighter than the aggregate. On thisbranch's base the gate prints the opposite for one of them, and there are four
per-chunk ceilings now, not three:
That is why the replacement asserts no ranking at all.
Per-chunk surface — reported separately, numbers never joined to the aggregate's
The dispatching seat's fence: the three budget surfaces are three things and their
numbers do not go in one sentence. Nothing in this PR joins them.
:442-446framework, 8,924 (0.10x) fori18n-locales, against the 9,137 (0.10x) the retiredframeworkpair carried"71,000 − 61,465 = 9,535and455,000 − 446,076 = 8,924, both from constants in this file; 9,137 is dated to the retired pair.:45211,988defect and is rewritten.:346-348,:386,:411,:431Live per-chunk drift is not written into the file — that is the whole ruling —
but for the record, measured on
f620a26f6:i18n-localeshas spent 1,882 of its8,924 baseline headroom and
ui-componentsis down to 2,716 bytes (0.03x). The gateprints all of it.
Verification
Full
apps/consolebuild (this file is inperformance-budget.yml's runtimeclosure, so the gate cannot be judged without one). Both builds and the test run went
through the shared verify lock; wall-clock figures are shared-box seconds.
The verdict this PR's new prose points at, printed on
f620a26f6:Exactly:
eagerGzipBytes = 3,258,288, so the headroom in force is 9,712 bytes.None of 45,996 / 45,686 / 11,988 is that number — and the figure this seat was handed
in dispatch, taken from CI on a neighbouring commit, was 9,734. Twenty-two bytes
apart, in the same afternoon, is the argument for (c) in one line.
The gate's behaviour did not move
The report is held constant (one build) and the checker is run on the pristine tree
and again on the edited one:
Negative control, so "identical" is a reading and not a tautology: appending one byte
to a copy makes the same
cmpexit 1 at byte 2186. Re-run again at the final commit2e001f5f2, still byte-identical to the pristine reading.scripts/check-eager-closure-budget.mjsis not a build input (turbo's consoleinputscoverscripts/vite-*.ts, notscripts/check-*.mjs— the argumentBASELINEalready makes about its own commit), which is why one build is enough tohold the report fixed across the edit.
Gates, on
2e001f5f2Those five are every test file in the repo that reads this script's source. The set
matters here because objectui#7046 pins prose against live values —
attachedDocslocates the block attached to each baseline and asserts what it saysabout commits and chunk names — so a comment-only edit to these blocks is exactly the
kind that can red them. It does not.
The changeset checker's own verdict line: "1 file(s) changed, 0 of them published
source of a package the release covers ... no changeset is owed." No
skip-changesetlabel is applied — this repo declares with an empty-frontmatterchangeset when one is owed, and here none is.
Not run locally: the rest of the gate farm, which CI runs exactly once anyway.
Fences honoured
No ceiling is raised, lowered, or otherwise moved.
MAX_EAGER_CLOSURE_GZIP_BYTES,BASELINE,PER_CHUNK_GZIP_CEILINGS,PER_CHUNK_BASELINEandREGRESSION_THIS_GATE_MUST_CATCH_BYTESare byte-identical toorigin/main; the diffis 38 insertions and 22 deletions, all of them inside comments. If 9.7 KB of
aggregate headroom is too tight, that is a different card and a maintainer's call.
Filed, not fixed here
#7528 — two more frozen measurements in this gate's prose that the ruling above does
not cover: "one number over 52 chunks" asserted in the present tense in this file and
in its test (the build measures 50;
BASELINE.chunkssays 48), andperformance-budget.ymlciting "3.15 MB", the ceiling objectui#6776 retired. Out ofscope: neither is an aggregate-headroom sentence, and one lives in another file.
#7528 is not addressed by this PR.
🤖 Generated with Claude Code
https://claude.ai/code/session_01EMrWaQw3XS5DxTHxp4yRyC
Generated by Claude Code