Filed and claimed by the domain:ui PM seat (session_01YBWFb5YgMU5dw8p2VKj16S) as the recording half of a maintainer decision — see Authorisation below.
The defect
scripts/check-eager-closure-budget.mjs:328, landed with objectui#7685 (639114c4d):
objectstack#16063. RESTORE CONDITION: when that lands, re-measure and bring [ceiling and baseline back down together]
That condition can never fire. objectstack-ai/objectstack#16063 was ruled 「16063 c」 by the director seat (decision batch #59, recorded on objectui#7122 at 2026-09-06T15:02Z): the +292.2 KB gzip growth of @objectstack/spec's browser dist at 17.3.0 is accepted upstream permanently — no prose stripping and no short-describe convention will land.
⇒ two things are wrong with the note as it stands:
- It points the next author at an upstream fix that is not coming, so the numbers look like a temporary exception awaiting reversal.
- They are not temporary. They are the standing baseline — which is the whole content of the decision below.
⚠️ :559 carries a second, similarly-shaped sentence (re-measure and lower both numbers together). Whether it is the same note or a different one was not determined here — re-derive both rather than fixing only :328.
Authorisation — recorded, because a ceiling is a gate weakening
The maintainer was asked directly, with three options and the trade stated each way, and chose: 「A|重设基线」 — re-baseline, restore headroom to 0.50x, and record the cause.
This card is that last clause. The re-baseline itself is already done and needs nothing: objectui#7685 landed carrying MAX_EAGER_CLOSURE_GZIP_BYTES = 3_597_000 over BASELINE.gzipBytes = 3_551_191.
Verified independently on main fc32921aa rather than taken from that PR:
|
value |
| ceiling |
3,597,000 |
| baseline |
3,551,191 |
| headroom |
45,809 |
REGRESSION_THIS_GATE_MUST_CATCH_BYTES |
89 × 1024 = 91,136 |
| sensitivity |
0.503x |
The gate's own docblock at :90 says H = REGRESSION / 2 is the only value, so 0.50x is not a preference — it is the constraint, and the landed numbers satisfy it.
⇒ what remains is only that the cause note describes those numbers correctly.
What the note has to say instead
- The growth is
@objectstack/spec 17.3.0's browser dist, accepted upstream (objectstack#16063, ruled 「c」), so this is the standing baseline, not an exception.
- ⛔ Do not delete the cause. The gate's own header treats a re-baseline as a visible, justified decision, and the next bump must be measured against this number knowing why it moved.
- Name the authorising decision so the next reader does not have to reconstruct it.
⛔ Out of scope
⛔ Do not move MAX_EAGER_CLOSURE_GZIP_BYTES, BASELINE, or any per-chunk ceiling. They are correct and maintainer-authorised. This card is prose and provenance only — if a number needs changing, that is a different card and a different authorisation.
⛔ Do not touch REGRESSION_THIS_GATE_MUST_CATCH_BYTES. objectui#7685's own body records that it deliberately did not move.
Note for the dev
scripts/__tests__/check-eager-closure-budget.test.ts pins constants from this file. A prose-only change should not move it — verify that rather than assuming it, and if a pin does read the note's text, say so and report what it asserts.
Refs: objectui#7685 (639114c4d, where the note landed) · objectui#7122 (where the 「16063 c」 ruling is recorded) · objectstack#16063 · objectui#6776 (the original 0.50x sizing) · objectui#8272 (the PR whose red surfaced the exhausted headroom).
Filed and claimed by the
domain:uiPM seat (session_01YBWFb5YgMU5dw8p2VKj16S) as the recording half of a maintainer decision — see Authorisation below.The defect
scripts/check-eager-closure-budget.mjs:328, landed with objectui#7685 (639114c4d):That condition can never fire. objectstack-ai/objectstack#16063 was ruled 「16063 c」 by the director seat (decision batch #59, recorded on objectui#7122 at 2026-09-06T15:02Z): the +292.2 KB gzip growth of
@objectstack/spec's browser dist at 17.3.0 is accepted upstream permanently — no prose stripping and no short-describeconvention will land.⇒ two things are wrong with the note as it stands:
:559carries a second, similarly-shaped sentence (re-measure and lower both numbers together). Whether it is the same note or a different one was not determined here — re-derive both rather than fixing only:328.Authorisation — recorded, because a ceiling is a gate weakening
The maintainer was asked directly, with three options and the trade stated each way, and chose: 「A|重设基线」 — re-baseline, restore headroom to 0.50x, and record the cause.
This card is that last clause. The re-baseline itself is already done and needs nothing: objectui#7685 landed carrying
MAX_EAGER_CLOSURE_GZIP_BYTES = 3_597_000overBASELINE.gzipBytes = 3_551_191.Verified independently on
mainfc32921aarather than taken from that PR:REGRESSION_THIS_GATE_MUST_CATCH_BYTESThe gate's own docblock at
:90saysH = REGRESSION / 2is the only value, so 0.50x is not a preference — it is the constraint, and the landed numbers satisfy it.⇒ what remains is only that the cause note describes those numbers correctly.
What the note has to say instead
@objectstack/spec17.3.0's browser dist, accepted upstream (objectstack#16063, ruled 「c」), so this is the standing baseline, not an exception.⛔ Out of scope
⛔ Do not move
MAX_EAGER_CLOSURE_GZIP_BYTES,BASELINE, or any per-chunk ceiling. They are correct and maintainer-authorised. This card is prose and provenance only — if a number needs changing, that is a different card and a different authorisation.⛔ Do not touch
REGRESSION_THIS_GATE_MUST_CATCH_BYTES. objectui#7685's own body records that it deliberately did not move.Note for the dev
scripts/__tests__/check-eager-closure-budget.test.tspins constants from this file. A prose-only change should not move it — verify that rather than assuming it, and if a pin does read the note's text, say so and report what it asserts.Refs: objectui#7685 (
639114c4d, where the note landed) · objectui#7122 (where the 「16063 c」 ruling is recorded) · objectstack#16063 · objectui#6776 (the original 0.50x sizing) · objectui#8272 (the PR whose red surfaced the exhausted headroom).