From 6b104ad26afdc704cb9f7023464dc41566bea3fe Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 8 Sep 2026 13:06:46 +0000 Subject: [PATCH] docs(scripts): record the measured `framework` attribution the ceiling raise could not (objectui#8542) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `fa9e76ccd` raised `PER_CHUNK_GZIP_CEILINGS.framework` to 100,000 and recorded, honestly, that it could not say what the bytes bought: "the commits in that window have never been bisected — this checker is a two-build predicate over them and no one has run it." That is the one sentence this change replaces. The bisect has now been run — one `apps/console` build per point, each from the repo ROOT, `framework` read out of the `apps/console/dist/eager-closure.json` the build itself writes: | build | landed by | `framework` gzip | moved by | | `40a7c538a` | #8503 | 70,999 | last GREEN, 1 byte under | | `512c84b16` | #8519 | 70,999 | 0 | | `f76f43628` | #8512 | 71,261 | +262 | | `e76634cc8` | #8529 | 72,245 | +984 | | `e411c3e58` | #8562 | 72,248 | +3 | Two commits own the overage, not one, and the LARGER one is outside the window every card bounded its reasoning to: `e76634cc8` landed after the red had already started and carries 984 of the 1,246 bytes the pair added. A repair scoped to that window would have left `main` red. `512c84b16` emitted a byte-identical chunk to `40a7c538a` — the same `framework-nDOJv2Ij.js` content hash — so the three commits between them moved this chunk by zero, and `270f2825b` touches no file under `packages/(core|react|types)` at all. What the bytes buy is therefore sayable, which is what the gate's own failure message asks of a raise: both contributors are silent-wrong-answer fixes on one file's filter path. `f76f43628` stopped an unrecognised `$` operator adding no constraint and matching every row; `e76634cc8` stopped an array comparand and a `{ $field }` reference being compared by reference, which selected every row under `$ne` and no rows under `$eq` without saying so. No constant moves. The prose that records what the raise COSTS is kept intact, including that the attribution arrived after the ceiling did. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01YBWFb5YgMU5dw8p2VKj16S --- .../8542-framework-chunk-attribution.md | 28 +++++++++ scripts/check-eager-closure-budget.mjs | 58 +++++++++++++++---- 2 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 .changeset/8542-framework-chunk-attribution.md diff --git a/.changeset/8542-framework-chunk-attribution.md b/.changeset/8542-framework-chunk-attribution.md new file mode 100644 index 0000000000..c93cd61142 --- /dev/null +++ b/.changeset/8542-framework-chunk-attribution.md @@ -0,0 +1,28 @@ +--- +--- + +Record the measured attribution for the `framework` per-chunk overage in +`scripts/check-eager-closure-budget.mjs` (objectui#8542). Prose only; no package +is released by this change and no constant moves. + +The ceiling raise that landed as `fa9e76ccd` wrote that the bytes behind the red +were `NOTHING IDENTIFIABLE` because "the commits in that window have never been +bisected". They have been now, one `apps/console` build per point from the repo +root, and the finding corrects the framing every filing card carried: + +| build | landed by | `framework` gzip | moved by | +| ----------- | --------- | ---------------- | ------------------------ | +| `40a7c538a` | #8503 | 70,999 | last GREEN, 1 byte under | +| `512c84b16` | #8519 | 70,999 | 0 | +| `f76f43628` | #8512 | 71,261 | +262 | +| `e76634cc8` | #8529 | 72,245 | +984 | +| `e411c3e58` | #8562 | 72,248 | +3 | + +Two commits own the overage, not one, and the larger is **outside** the window +the cards bisected: `e76634cc8` carries 984 of the 1,246 bytes the pair added. +`270f2825b`, the suspect objectui#8541 named, is measurably innocent — the +emitted chunk is byte-identical across it and it touches no file under +`packages/(core|react|types)`. + +Both contributors are silent-wrong-answer fixes on one file's filter path, so +what the bytes buy is now stated where the gate's failure message asks for it. diff --git a/scripts/check-eager-closure-budget.mjs b/scripts/check-eager-closure-budget.mjs index b156245596..1e108dfdbe 100644 --- a/scripts/check-eager-closure-budget.mjs +++ b/scripts/check-eager-closure-budget.mjs @@ -569,15 +569,49 @@ export const REGRESSION_THIS_GATE_MUST_CATCH_BYTES = 89 * 1024; * read as a derivation of it. What is recorded here is what the raise COSTS, * because that is the half a later reader cannot recover from the constant. * - * ⛔ What the bytes buy: NOTHING IDENTIFIABLE, and that is the finding, not an - * omission. The failure message this raise silences asks the author to "say in - * the PR what the bytes buy". Nobody can: `Bundle Analysis` went red on `main` - * at `f76f43628` with `40a7c538a` the last green, and the commits in that window - * have never been bisected — this checker is a two-build predicate over them and - * no one has run it. ⚠️ So this raise does not answer the attribution question, - * it makes it HARDER TO ASK: the line that was holding the unexplained bytes in - * view now passes over them. objectui#8542 owns that attribution and stays open; - * objectui#8541 recorded the same red first and is closed as its duplicate. + * ⛔ What the bytes buy — MEASURED, but AFTER this constant moved. When the raise + * landed nobody could answer the question its own failure message asks — "say in + * the PR what the bytes buy" — because the window had not been bisected, and this + * section recorded that as the finding. objectui#8542 has since run it: one + * `apps/console` build per point, each from the repo ROOT, `framework` read out + * of the `apps/console/dist/eager-closure.json` the build itself writes. + * + * | build | landed by | `framework` gzip | moved by | + * | `40a7c538a` | #8503 | 70,999 | last GREEN, 1 byte under | + * | `512c84b16` | #8519 | 70,999 | 0 | + * | `f76f43628` | #8512 | 71,261 | +262 | + * | `e76634cc8` | #8529 | 72,245 | +984 | + * | `e411c3e58` | #8562 | 72,248 | +3 | + * + * ⚠️ TWO commits own the overage and the LARGER one is OUTSIDE the window this + * section bounded. `e76634cc8` landed after the red had already started and + * carries 984 of the 1,246 bytes the pair added — 79% — against 262 for the + * commit the red first appeared on. ⛔ A repair scoped to the window would have + * left `main` red. `512c84b16` emitted a byte-identical chunk to `40a7c538a` + * (the same `framework-nDOJv2Ij.js` content hash), so the three commits between + * them moved this chunk by ZERO — and objectui#8541's named suspect + * `270f2825b` is measurably innocent: it touches no file under + * `packages/(core|react|types)` at all. + * + * ⇒ So the bytes are identifiable, and they are two silent-wrong-answer fixes on + * ONE file's filter path, `packages/core`'s `ValueDataSource`. `f76f43628` + * (#8512): an unrecognised `$` operator ended the switch on `default: break`, + * adding no constraint, so it matched EVERY row. `e76634cc8` (#8529): an array + * comparand and a `{ $field }` reference were compared by REFERENCE, selecting + * every row under `$ne` and no rows under `$eq`, neither of them saying so. The + * bytes ARE the refusals and the prescriptions that replaced that silence. + * + * ⛔ None of which retires the cost above: the line that was holding these bytes + * in view now passes over them, and the attribution arrived after the constant + * moved rather than before it. ⚠️ Nor is trimming the alternative it looks like + * — deleting every refusal message string these two commits ship was measured at + * 610 gzip bytes against the 1,245 the overage needed (recorded on + * objectui#8542, ⛔ not re-measured here), so the whole diagnostic surface is + * worth under half the payload it gets blamed for. ⭐ Why `main` was one byte from + * this line in the first place is objectui#8554: it sat at 70,999 against 71,000 + * — headroom 0.00x — and printed a GREEN sensitivity row while it did, because + * {@link evaluateHeadroomSensitivity} has no floor. objectui#8541 recorded the + * same red first and is closed as this card's duplicate. * * ⚠️ This also makes `framework` the LOOSEST ceiling in this object, measured * rather than asserted. All four were read from the one `3f775eeb8` console @@ -622,8 +656,10 @@ export const PER_CHUNK_GZIP_CEILINGS = Object.freeze({ 'vendor-objectstack': 1_254_000, 'i18n-locales': 455_000, // Raised by the maintainer ruling of 2026-09-08, ⛔ not by a measurement here: - // `main` had been red on this line since `f76f43628` and the bytes that put it - // there are UNATTRIBUTED. Headroom 27,755 bytes = 0.30x + // `main` had been red on this line since `f76f43628`. The bytes that put it + // there were UNATTRIBUTED when this moved and have since been measured to + // `f76f43628` (+262) and `e76634cc8` (+984) — see the table under "Why + // `framework` moved UP" above. Headroom 27,755 bytes = 0.30x // REGRESSION_THIS_GATE_MUST_CATCH_BYTES on `3f775eeb8` — the loosest of the // four. See "Why `framework` moved UP" above for what that costs. framework: 100_000,