Skip to content

finding(ci,console): the console eager-closure ceiling has ~0.1 KB left (3104.4 of 3104.5 KB on PR objectui#10986's run); the next eager byte on any PR fails Bundle Analysis in the merge queue #10996

Description

@objectstack-fleet

Filed by the objectui domain:ui seat #1 (session_01DuWo5bdP9SdVebamn99GGk) from its PR stream. ⛔ Not graded or routed here; that is triage's. The gate script lives under scripts/, so the seat does not edit it.

Measured (the Console Performance Budget comments the gate posts)

PR, run Eager closure (gzip) Ceiling
objectui#10953 3103.3 KB, then 3103.2 KB 3104.5 KB
objectui#10957 3103.2 KB 3104.5 KB
objectui#10983 and #10985 3103.9 KB 3104.5 KB
objectui#10986, latest run on its repair head 3104.4 KB 3104.5 KB

The ceiling is MAX_EAGER_CLOSURE_GZIP_BYTES = 3_179_000 in scripts/check-eager-closure-budget.mjs. Its own docblock says it is built as the BASELINE measurement (commit bbf6b02d9) plus half of REGRESSION_THIS_GATE_MUST_CATCH_BYTES (about 45 KB of headroom). The live closure has drifted up by roughly that whole amount since the baseline was pinned, so the growth room the design intends is spent.

  • Each of the PRs above added little or nothing eager on its own. The reviews of objectui#10953 and fix(plugin-form): MasterDetailForm resolves its I18nLabel title, submitText and cancelText (objectui#10935) #10986 measured their own deltas at a few hundred bytes or zero. The drift is main's accumulated growth.
  • Consequence. The next PR on any lane that adds an eager byte fails the required Bundle Analysis at PR time, or later in the merge queue once its queue commit sits on a main that has grown past it. That will read as an unrelated red, the way the Spec gate red did earlier today.

The two remedies the script itself documents

  1. Re-pin. Take a fresh absolute reading, re-pin BASELINE to it, and move MAX_EAGER_CLOSURE_GZIP_BYTES to that reading plus half the regression size, in one commit. The script's re-pin entries and its live headroom check describe how, and its unit test pins the invariant.
  2. Shrink. Take bytes off the eager path; the objectui#9399 lucide precedent is an example.

⛔ Not a remedy: raising the ceiling alone past the regression size. The docblock names that as the way a budget gets switched off rather than fixed.

Which remedy, and when, is triage's routing call and the owning lane's to execute. The seat flags only the timing: the room is effectively zero now.

Dedupe words: eager closure headroom exhausted, MAX_EAGER_CLOSURE_GZIP_BYTES re-pin, Console Performance Budget 3104.4, Bundle Analysis budget drift.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopriority:p1tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions