Skip to content

INCIDENT: Bundle Analysis is red on maini18n-locale-en's ceiling has no headroom left, and this seat landed the PR that spent it over 11 pending checks #10148

Description

@os-tesla

An advisory gate is RED on main, and this seat put it there. Filed by the domain:ui#2 execution seat (PM session session_018HrVaotisyhgmot9o2MLRq) under 「advisory 门禁红着进 main 是共享损伤,任何车道发现都立即止血并立单」. ⛔ No priority:* / type: the triage seat's sole production.

The reading, taken first-hand

Bundle Analysis (performance-budget.yml) on main, push runs, paginated to 200 rows:

head time conclusion en.ts bytes
1560d4682 14:12:38Z ✅ success 193,188
f760064ea = PR #10142 14:19:07Z cancelled (concurrency) 193,718
588380d54 = PR #10143 14:20:05Z cancelled (concurrency) 193,718
698090479 = PR #10146 14:22:48Z failure 193,718

⇒ the last green is the commit before #10142; the first completed run after it is red. The two runs in between were cancelled by the workflow's own concurrency, ⛔ not by a verdict.

What is actually failing — ⭐ every budget PASSES

From the failing job's log, verbatim in effect:

✅ Console eager closure is 3058.8 KB gzipped across 329 of 2309 chunks (budget: 3104.5 KB, headroom: 45.7 KB).
✅ Per-chunk eager budgets (4 chunks weighed)  — all four ✅
✅ Ceiling freshness: all 3 ceiling constants unchanged on `main` since this checkout's base
❌ 1 ceiling is EXHAUSTED — under 0.10x of one 89.0 KB regression
   ❌ chunk `i18n-locale-en`   40.0 KB measured / 48.8 KB ceiling (headroom 8.8 KB = 0.10x)

⇒ ⛔ NOT a size regression. The i18n-locale-en ceiling has run out of headroom, and the gate says why that matters in its own words:

A ceiling with no headroom left has stopped being a measurement of THIS bundle and become a measurement of the NEXT change: it passes today and reds whatever lands next, whether or not that diff is what grew.

⭐ And it names this exact history: 「i18n-locales sat at 398 bytes while the merge queue weighed two independent finished pull requests and turned red on whichever it happened to weigh SECOND, for the other one's bytes」 (objectui#8554).

That is now happening again: PR #10147 (objectui#10039) routes three fetch calls and adds ⛔ no locale key at all — and its Bundle Analysis is red, for #10142's bytes.

⛔ How it got in, and it is this seat's error

Bundle Analysis is not a required check. PR #10142 merged with its own Bundle Analysis already failure.

⚠️ This seat checked CI before flipping #10142 ready and read 「36 checks, 11 pending, failed: []」 — then flipped ready and armed auto-merge. ⛔ One of those 11 pending checks came back red, and nothing stopped it, because it is advisory.

⇒ ⭐ The charter line this breaks is its own: 「放行认门禁 job 的结论(completed: success),⛔ 不认聚合读数」. A reading with 11 checks still pending is not a set of conclusions. 说明 SS's 「flip EARLY」 is about when a re-triggered run is cheap; it is ⛔ not a licence to arm auto-merge over checks that have not reported.

Bleeding stopped, in this act

The remedy is a DECISION, ⛔ not a repair this lane may take

The gate states the only two routes: take the bytes out of the chunk this row names, or take a deliberate, authorised re-pin and say in the PR what the new headroom buys.

  • Bytes out ⇒ the en pack stops being wholly eager. A design change to how locale catalogues are chunked — ⚠️ and note the en pack is resident by design (check:eager-locale-catalogues: en resident, 9 deferred), so this is not a free move.
  • Re-pin ⇒ a gate-strength change, which is on the human floor — ⚠️ and one the gate pre-emptively refuses as a reaction to being full. An authorised re-pin needs a reason that is ⛔ not 「it went red」.

⇒ ⛔ This seat does not choose, and ⛔ does not touch either. ⚠️ Related but DISTINCT: objectui#10085 re-pins framework DOWN after a saving; this row is a different chunk and the opposite direction.

⚠️ What is NOT claimed

Acceptance

  • Bundle Analysis is green on main, by one of the gate's own two routes, with the choice recorded.
  • The 「how close was it before」 question is answered, so the next reader knows whether this was one PR's bytes or a row that had been terminal for a while.
  • ⭐ And the landing rule that let it through is fixed where it is read, ⛔ not remembered: ⛔ never arm auto-merge while any check is still pending — a PR is landed on conclusions, and an advisory red merges silently.

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

No one assigned

    Labels

    bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions