Repository navigation
test(perf-budget): extend the chunk-count prose pin to performance-budget.yml - #8073
Merged
Merged
Conversation
…dget.yml objectui#7528 pinned "a chunk count stays pinned to the commit it was measured on, or it is not written" over two files and left the workflow beside them to a follow-up. Add `.github/workflows/performance-budget.yml` to that population under the same rule and the same reader — its `#` comment prose is translated to the marker `proseLines` already knows, and nothing else about the reader changes. Obstacle 1 is settled by rewording, not by an exemption: the objectui#6535 sentence stated a structural outcome with a count-shaped token, which the reader cannot tell from a population count. It now states the same outcome without a numeral. The workflow's frozen-SIZE prose is a different class and is named as out of the pin in the docblock, so nobody widens a count pin into a size pin by accident. Two new controls guard the translation: the reader self-test gains a `#`-block leg holding the anchor window in both directions, and the workflow gets the must-hit control the checker already had, so a translation that stopped working reds instead of passing on an empty population. Part of objectui#7850 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
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
|
Contributor
Author
|
Standing down on Generated by Claude Code |
baozhoutao
marked this pull request as ready for review
September 6, 2026 14:57
baozhoutao
deleted the
claude/issue-7850-performance-budget-prose-pin
branch
September 6, 2026 15:12
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.
Fixes #7850
objectui#7528 pinned one rule — a chunk count stays pinned to the commit it was measured on, or it is not written — over two files (
scripts/check-eager-closure-budget.mjsand its own test) and deliberately left.github/workflows/performance-budget.ymlbeside them to a follow-up. This is that follow-up. The workflow joins the same population, under the same rule, read by the same reader, with no exemption list and no second matcher.What changed
scripts/__tests__/check-eager-closure-budget.test.ts— the population ofchunk counts in this gate's prose (objectui#7528)grows by one entry. The reader is untouched:proseLines,paragraphs,chunkCounts,CHUNK_COUNTandNAMES_A_COMMITare byte-identical.What the workflow needed is a marker translation, not a reader. Its prose is hash-marker comments (both real YAML comments and shell comments inside
run:blocks), andproseLinesclassifies those lines as CODE — every count in the workflow would have been invisible, and the new entry green because it read nothing rather than because nothing was loose. A smallyamlProserewrites a leading hash marker to the//thatproseLinesalready knows, and does nothing else. The paragraph structure a human sees survives the translation because both kinds of separator survive it://— a blank COMMENT line, which carries an anchor into the paragraph after it;Two controls guard that, because a translation that quietly stopped working would be indistinguishable from a clean population:
58 of 507 chunks, sitting with "On77f846a8b" in the same paragraph) must be seen..github/workflows/performance-budget.yml— comment prose only, one sentence. The objectui#6535 sentence stated a structural outcome using a count-shaped token (the SDUI widget registrations that a statically coherent"sideEffects": falsedrops on a green build). That outcome has no build that can move it, but the pin's rule cannot tell it from a population count. It is reworded to state the same outcome and keep the objectui#6535 reference, without a numeral — the alternative was an exemption entry, and exemption lists are how a pin decays.git diffon the workflow moves only hash-marker lines. No job, step,env, ceiling value, trigger ortimeout-minuteschange.scripts/check-eager-closure-budget.mjsis untouched, and so isscripts/vite-declared-lazy-views.ts— that is objectui#7289's baseline-prose pin, a different pin on a different file, and it is not addressed here.The size half stays out, by name
The workflow's frozen-SIZE prose is a different class and is deliberately not in this pin: the 350 KB entry line, the 89 KiB regression and the byte figures measured on
77f846a8bare sizes, not populations, and a pin for them would have to tell a ceiling's value from the several sizes that paragraph legitimately carries. The pin's docblock now says so in as many words, so nobody widens a count pin into a size pin by reading the workflow's presence here as a licence.Evidence
All readings taken on final head
dcb5f4736(which mergesmain295804a63; the branch was cut froma81336390).pnpm exec vitest run scripts/__tests__/check-eager-closure-budget.test.tspnpm exec vitest run scripts/__tests__/(112 files)pnpm type-check:scriptspnpm lint:rootpnpm check:control-bytesgrep -naP)node scripts/check-changeset-presence.mjsnode scripts/check-governed-queue-guard.mjs --teston both pathsmain1658da92c443c216on both sidesEvery reader of the two paths (
ci-cd-pipeline-doc,render-budget-comment,turbo-build-inputs,workflow-cache-save-bound, plus this pin's own file): exit 0, 240 passed.The YAML parse identity is the sharper half of the "prose only" claim: the edited sentence is a real YAML comment, so it is not part of the parsed document at all, and the parsed document is deep-equal to
main's. (Note the prose inrun:blocks is part of the parse — this change does not touch any of it.)Ablation
Both legs run from the committed tree, blob-hash checked before and after, restored under a
trapwith absolute paths and verified bygit diff HEADbeing empty plus the blob hash returning toaaf25a3fb.performance-budget.yml states a chunk count (0 chunks) that names no commit. 1 failed, 6 passed.77f846a8banchor from the paragraph holding the live measurement — the pin reds twice, on the count itself (performance-budget.yml states a chunk count (58 of 507 chunks) that names no commit) and on the must-hit control (expected [] to include '58 of 507 chunks'). 2 failed, 5 passed.Leg (b) is the one that matters for the translation: it can only red if
yamlProsereally delivered the workflow's paragraphs to the reader.Note:
Live E2E (informational)is red on every branch today for an upstream reason (objectui#7990 / objectstack#16186), unrelated to this change.Drafted by an agent seat, session
session_01FhBNJcLRZLe8M87VcUgpKr.🤖 Generated with Claude Code
https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
Generated by Claude Code