From 0a1e85a56583bf4a1409fe02daa1bb1f0215e606 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 7 Sep 2026 08:29:47 +0000 Subject: [PATCH] docs(scripts): record the eager-closure cause as a standing baseline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The note on MAX_EAGER_CLOSURE_GZIP_BYTES told the next author to wait for objectstack#16063 to land and then bring the ceiling and BASELINE back down together. That upstream card was ruled against — maintainer verbatim "16063 c", director-seat decision batch #59 recorded on objectui#7122 on 2026-09-06 — so the growth is accepted upstream permanently and the condition can never fire. Left as it was, the note mislabels a standing baseline as a temporary exception awaiting reversal. The objectstack#16063 citation stays, because the gate's own header requires a re-baseline to carry a visible, justified cause; what changes is that it reads as the recorded ruling rather than a pending condition, and the authorising decision (objectui#7122 decision batch 1 item 1 = "B + A", landed by objectui#7685 as 639114c4d) is named so the next reader need not reconstruct it. Prose and provenance only. MAX_EAGER_CLOSURE_GZIP_BYTES, BASELINE, every per-chunk ceiling and REGRESSION_THIS_GATE_MUST_CATCH_BYTES are byte-identical across this commit. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01YBWFb5YgMU5dw8p2VKj16S --- scripts/check-eager-closure-budget.mjs | 30 ++++++++++++++++++++------ 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/scripts/check-eager-closure-budget.mjs b/scripts/check-eager-closure-budget.mjs index 1289b86e1e..b78156206b 100644 --- a/scripts/check-eager-closure-budget.mjs +++ b/scripts/check-eager-closure-budget.mjs @@ -322,13 +322,29 @@ import { isEntrypoint } from './invoked-as.mjs'; * accounted for. No chunk entered or left the closure; the eager chunk count is * unchanged. * - * ⇒ ⭐ THE HONEST LONG-TERM FIX IS UPSTREAM, and this ceiling is the marker for - * it, not the answer to it: a `describe()`-stripped browser build returns - * ~292 KB to EVERY consumer of the spec, not just this console. Filed as - * objectstack#16063. RESTORE CONDITION: when that lands, re-measure and bring - * this ceiling and {@link BASELINE} back down together. ⛔ No other exemption - * was added, no import was made lazy, and no other ceiling was moved — the - * three per-chunk lines that still pass were left exactly as they are. + * ⇒ ⭐ THE UPSTREAM FIX WAS REFUSED, so these numbers are the STANDING + * BASELINE and not an exception awaiting reversal. Stripping the `describe()` + * prose out of the browser build would return ~292 KB to EVERY consumer of the + * spec, not just this console; that was filed as objectstack#16063, and it was + * ruled against. Maintainer verbatim 「16063 c」 — director-seat decision batch + * #59, recorded on objectui#7122 on 2026-09-06: the growth is accepted + * upstream, and neither a prose-stripped build nor a short-`describe` + * convention will land. + * + * ⛔ The objectstack#16063 citation therefore STAYS, and its sense is the one + * thing about it that changed — it is now the RECORDED CAUSE this ceiling + * rests on, where it used to be a condition to wait out. ⛔ Nothing is coming + * that would bring this ceiling and {@link BASELINE} back down together, so do + * not reinstate anything on its account and do not write a fresh condition in + * its place: a re-baseline that reads as temporary is one nobody ever + * re-measures. The next bump is measured against THIS number, knowing why it + * moved — the authorisation above (objectui#7122, decision batch 1 item 1 = + * "B + A") and the figures it bought landed together in objectui#7685, + * `639114c4d`. + * + * ⛔ No other exemption was added, no import was made lazy, and no other + * ceiling was moved — the three per-chunk lines that still pass were left + * exactly as they are. */ export const MAX_EAGER_CLOSURE_GZIP_BYTES = 3_597_000;