You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
[Decision] Should the eager-closure budget be tightened below today's payload — absolute ceiling, true ratchet, or per-chunk budgets? #5468
Follow-up owed by the seat that accepted #5324 / PR #5463…#5466. ⛔ Filed as the fork only — not a grading and not a recommendation adopted. Dedupe done before filing: repo-scoped listing of all open issues, three pages, regex over titles and bodies for ratchet.*budget / per-chunk budget / vendor-objectstack / tighten.*ceiling / performance budget — the only hits are #5324 itself, #5359 (a specific regression, pm:blocked) and #5382 (unrelated). No twin.
Context
#5324 landed the eager-closure gauge (PR #5466). Per its dispatch, the dev shipped a truthful current-state ceiling and did not lower it unilaterally: 3,960,000 gzipped bytes = today's 3,881,609 plus 2.02% headroom, deliberately narrower than the 89 KiB #5266 regression it exists to catch (a repeat fails by 12.4 KB). Both constraints are expect()s in scripts/__tests__/check-eager-closure-budget.test.ts, so widening the ceiling past the regression size fails a test.
The gap that ceiling records is the point of this card. 3.79 MB gzipped before first render is a bad payload. Where the mass actually is, measured:
B — convert to a true ratchet against main (the direction triage originally converged on). Sharper. ⚠️ Costs a main build per PR in CI, and carries a failure mode worth stating plainly: the merge queue rebuilds every PR on current main, so a strict ratchet turns any two concurrent size-adding PRs into a queue ejection neither author can see coming.
C — add per-chunk budgets on top of the aggregate, so vendor-objectstack cannot grow unnoticed inside an aggregate that still has headroom.
Dev's recommendation: A now, C next, B only if C proves insufficient — the shipped headroom (78,391 bytes) is already narrower than the regression it targets, so B's marginal value over A today is small relative to its queue cost, while C is the cheapest real tightening and points at where 38% of the mass sits.
Why this is a decision and not a seat's call
It sets how much friction CI imposes on every future PR, and B's failure mode lands on authors who did nothing wrong. Gate-strength policy is the maintainer's. ⛔ No seat should pick this.
Triage may re-grade the label; filing it in the decision inbox because the fork is already fully measured and there is nothing left to investigate before answering it.
Maintainer ruling (2026-08-21, live PM chat — recorded by the triage seat)
Verbatim (untranslated): 「其他接受」 — accepting the triage recommendation for this card: A now + C next; B rejected (the merge-queue double-ejection failure mode and per-PR main-build cost land on authors who did nothing wrong, for marginal value over the shipped ceiling).
Execution per the card's pre-written clause: the absolute ceiling stands as shipped (nothing to change = A); the C work card is filed as #5490 (pm:queue, S-size: per-chunk budgets, vendor-objectstack first). This decision card closes as completed — the ruling is recorded here and on #5490.
Closing as completed — the decision this card exists for is made and executed. Provenance: maintainer ruled A + C in the 2026-08-21 chat adjudication session (recorded on this card and in the triage seat post objectstack-ai/objectstack#6015 appendix, 03:54Z): keep the absolute ceiling now (A), and per-chunk budgets as the next tightening (C), with B only if C proves insufficient. The C work card exists as #5490. The close itself was owed from that session (blocked then by rate limiting) and is executed now by the triage seat, session session_01YCm6utUKLsQ7B6VStm3XUM.
Activity
os-zhuang commentedon Aug 21, 2026
分诊决策箱勤务:本卡入箱时缺标准四棱卡面块,补齐如下(卡内测量与 dev 建议为输入;维护者回一个字母即可)。
<!-- os-decision-facets -->
一句话问题
首屏渲染前要下载 3.79MB(gzip)——门禁已钉住"不再变得更糟",但要不要收得更紧、用哪种闸,决定了以后每个 PR 在 CI 里付多少摩擦。
选项 × 真实代价
vendor-objectstack(38% 质量所在)等单块设上限四轴(业务立场)
packages/fields/src/index.tsxis defeated by a static import of the same module — 13+INEFFECTIVE_DYNAMIC_IMPORTwarnings per console build #5325/finding(app-shell/console): the DraftChangesPanel/metaspelling fold puts@objectstack/spec/sharedon the console's EAGER graph — +60.1 KB gzipped that no budget weighs #5359)互补;B 的队列弹出税随并行度线性放大,伤多 agent 工作流。推荐 A 现在 + C 下一步(即 dev 建议);回退 B 仅当 C 实测不够。
置信缺口:本分析看不见
vendor-objectstack块内部的可拆性(未测量其构成),也看不见 #5325/#5359 路由切分的落地时间表 —— 若那两张卡近期落地,C 的分块线应在其后设定而非之前。裁后执行(你不用管)
回一个字母。A → 本卡关 not planned(现状即裁定),C 候补开工卡入队;C → 立
pm:queue工卡(分块预算,S 级);B → 立卡并注明队列弹出税已被知情接受。Generated by Claude Code
os-zhuang commentedon Aug 21, 2026
Maintainer ruling (2026-08-21, live PM chat — recorded by the triage seat)
Verbatim (untranslated): 「其他接受」 — accepting the triage recommendation for this card: A now + C next; B rejected (the merge-queue double-ejection failure mode and per-PR main-build cost land on authors who did nothing wrong, for marginal value over the shipped ceiling).
Execution per the card's pre-written clause: the absolute ceiling stands as shipped (nothing to change = A); the C work card is filed as #5490 (
pm:queue, S-size: per-chunk budgets,vendor-objectstackfirst). This decision card closes as completed — the ruling is recorded here and on #5490.Generated by Claude Code
os-zhuang commentedon Aug 21, 2026
Closing as completed — the decision this card exists for is made and executed. Provenance: maintainer ruled A + C in the 2026-08-21 chat adjudication session (recorded on this card and in the triage seat post objectstack-ai/objectstack#6015 appendix, 03:54Z): keep the absolute ceiling now (A), and per-chunk budgets as the next tightening (C), with B only if C proves insufficient. The C work card exists as #5490. The close itself was owed from that session (blocked then by rate limiting) and is executed now by the triage seat, session
session_01YCm6utUKLsQ7B6VStm3XUM.Generated by Claude Code
chore(deps): pin @objectstack/* to 17.1.0 and adapt the surfaces it m…
Pin @objectstack/* to 17.1.0 (objectstack-ai#5529)