Follow-up owed by the seat that accepted #5324 / PR #5463…#5466. ⛔ Filed as the fork only — not a grading and not a recommendation adopted. Dedupe done before filing: repo-scoped listing of all open issues, three pages, regex over titles and bodies for ratchet.*budget / per-chunk budget / vendor-objectstack / tighten.*ceiling / performance budget — the only hits are #5324 itself, #5359 (a specific regression, pm:blocked) and #5382 (unrelated). No twin.
Context
#5324 landed the eager-closure gauge (PR #5466). Per its dispatch, the dev shipped a truthful current-state ceiling and did not lower it unilaterally: 3,960,000 gzipped bytes = today's 3,881,609 plus 2.02% headroom, deliberately narrower than the 89 KiB #5266 regression it exists to catch (a repeat fails by 12.4 KB). Both constraints are expect()s in scripts/__tests__/check-eager-closure-budget.test.ts, so widening the ceiling past the regression size fails a test.
The gap that ceiling records is the point of this card. 3.79 MB gzipped before first render is a bad payload. Where the mass actually is, measured:
| eager chunk | gzipped | share of closure |
|---|
vendor-objectstack | 1,493 KB | 38% |
framework | 484 KB | 12% |
ui-components | 380 KB | 10% |
The fork
Dev's recommendation: A now, C next, B only if C proves insufficient — the shipped headroom (78,391 bytes) is already narrower than the regression it targets, so B's marginal value over A today is small relative to its queue cost, while C is the cheapest real tightening and points at where 38% of the mass sits.
Why this is a decision and not a seat's call
It sets how much friction CI imposes on every future PR, and B's failure mode lands on authors who did nothing wrong. Gate-strength policy is the maintainer's. ⛔ No seat should pick this.
Triage may re-grade the label; filing it in the decision inbox because the fork is already fully measured and there is nothing left to investigate before answering it.
Generated by Claude Code
Follow-up owed by the seat that accepted #5324 / PR #5463…#5466. ⛔ Filed as the fork only — not a grading and not a recommendation adopted. Dedupe done before filing: repo-scoped listing of all open issues, three pages, regex over titles and bodies for
ratchet.*budget/per-chunk budget/vendor-objectstack/tighten.*ceiling/performance budget— the only hits are #5324 itself, #5359 (a specific regression,pm:blocked) and #5382 (unrelated). No twin.Context
#5324 landed the eager-closure gauge (PR #5466). Per its dispatch, the dev shipped a truthful current-state ceiling and did not lower it unilaterally: 3,960,000 gzipped bytes = today's 3,881,609 plus 2.02% headroom, deliberately narrower than the 89 KiB #5266 regression it exists to catch (a repeat fails by 12.4 KB). Both constraints are
expect()s inscripts/__tests__/check-eager-closure-budget.test.ts, so widening the ceiling past the regression size fails a test.The gap that ceiling records is the point of this card. 3.79 MB gzipped before first render is a bad payload. Where the mass actually is, measured:
vendor-objectstackframeworkui-componentsThe fork
packages/fields/src/index.tsxis defeated by a static import of the same module — 13+INEFFECTIVE_DYNAMIC_IMPORTwarnings per console build #5325 route, or finding(app-shell/console): the DraftChangesPanel/metaspelling fold puts@objectstack/spec/sharedon the console's EAGER graph — +60.1 KB gzipped that no budget weighs #5359). Simplest. The gate already catches a apps/console: thevendor-objectstackadvancedChunks group folds the lazily-imported@objectstack/lintinto an eagerly-loaded chunk — 89 KiB gzipped on every page load #5266-class regression today.main(the direction triage originally converged on). Sharper.mainbuild per PR in CI, and carries a failure mode worth stating plainly: the merge queue rebuilds every PR on currentmain, so a strict ratchet turns any two concurrent size-adding PRs into a queue ejection neither author can see coming.vendor-objectstackcannot grow unnoticed inside an aggregate that still has headroom.Dev's recommendation: A now, C next, B only if C proves insufficient — the shipped headroom (78,391 bytes) is already narrower than the regression it targets, so B's marginal value over A today is small relative to its queue cost, while C is the cheapest real tightening and points at where 38% of the mass sits.
Why this is a decision and not a seat's call
It sets how much friction CI imposes on every future PR, and B's failure mode lands on authors who did nothing wrong. Gate-strength policy is the maintainer's. ⛔ No seat should pick this.
Triage may re-grade the label; filing it in the decision inbox because the fork is already fully measured and there is nothing left to investigate before answering it.
Generated by Claude Code