Repository navigation
revert(app-shell): roll back objectui#11931 and objectui#11932 so the console's eager closure is under its ceiling again (objectui#11937) - #11956
Merged
objectstack-fleet[bot] merged 3 commits intoOct 8, 2026
Conversation
… rules, with the rule types under Advanced (part of objectui#11861) (#11931)" This reverts commit 19a7348. objectui#11937: Bundle Analysis is red on main. The 12 designer-table rows objectui#11931 added live in app-shell's metadata-admin/i18n.ts, which the console loads eagerly by design (its static importers include the register-builtins inspector path and runtime surfaces such as RuntimeDraftBar), so they count toward the eager-closure ceiling. Claude-Session: https://claude.ai/code/session_01MgfduSkFrfM3eorB3UGfAU Co-authored-by: Claude <noreply@anthropic.com>
…opens it on source plus live preview (objectui#11823 step 3) (#11932)" This reverts commit f3a0488. objectui#11937: with objectui#11931 reverted, main's console eager closure still measured 66 gzip bytes over its ceiling, because objectui#11932 added its own rows to the same eagerly loaded designer table. The seat ruled route A: roll back both, so main returns to f1781be's tree. Claude-Session: https://claude.ai/code/session_01MgfduSkFrfM3eorB3UGfAU Co-authored-by: Claude <noreply@anthropic.com>
…objectui#11931 and objectui#11932 Claude-Session: https://claude.ai/code/session_01MgfduSkFrfM3eorB3UGfAU Co-authored-by: Claude <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
objectstack-fleet
Bot
deleted the
claude/issue-11937-eager-closure-main-red
branch
October 8, 2026 10:32
os-support-ai
pushed a commit
that referenced
this pull request
Oct 8, 2026
Takes the eager-closure rollback (objectui#11937, #11956) so Bundle Analysis re-runs against the rolled-back base. No conflicts; no file of this branch is touched by the merged range. Claude-Session: https://claude.ai/code/session_01CGZy1BGCjdN5cXqL9cnvB8 Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #11937
Part of #11861
Rolls back objectui#11932 (objectui#11823, seat
domain:ui#3) as well: measured necessary, see the reportClause-②: no
mainis red onBundle Analysis: the console's eager closure is over its 3,386,364-byte gzip ceiling. This PR rolls back the two Studio changes whose strings pushed it over, somainreturns to the tree of f1781be, which measured under the ceiling. The route is the seat's ruling A, under the maintainer's ruling 6056819248 step 1:mainturns green by rollback or plugging, and the ceiling is not raised.Implemented by the os-dev agent of session
https://claude.ai/code/session_01MgfduSkFrfM3eorB3UGfAU(seatdomain:ui#2, claim comment 6056334737).What changed
git revert -m 1 19a7348(objectui#11931: Studio's validation "New" menu presets) andgit revert -m 1 f3a0488(objectui#11932: Studio Interfaces' page create step), one commit each..changeset/11937-eager-budget-rollback.md, a patch for@object-ui/app-shell. The two rolled-back PRs' unreleased changesets are removed with them, so the next release does not announce what is not in it.git diff f1781be HEAD --statprints only.changeset/11937-eager-budget-rollback.md | 5 +++++.MAX_EAGER_CLOSURE_GZIP_BYTESand every other ceiling,apps/console/vite.config.ts,.github/**.Measurement
These are local console builds (
CI=1 pnpm exec vite buildinapps/console, under the container's verify lock), read fromapps/console/dist/eager-closure.json. The ceiling is 3,386,364 B.i18nchunkmain)i18n-*.js: +413 B from 11931 and +460 B from 11932. Every other eager chunk moved by 7 B or less, which is minifier and hash churn.chunk-membership.jsonputs exactly one workspace module in that chunk: app-shell's designer string table,views/metadata-admin/i18n.ts.studioBuilderchunk. Only its 12 table rows are eager.Why rolling back 11931 alone is not enough, and why there is no leak to plug.
advancedChunksgroup matches its path, so it is not a chunk-group leak.apps/console/src/main.tsx→@object-ui/app-shell→views/metadata-admin/register-builtins.ts→inspectors/index.ts→inspectors/ObjectFieldInspector.tsx→metadata-admin/i18n.ts;views/ViewConfigPanel.tsxandviews/ReportConfigPanel.tsx→views/RuntimeDraftBar.tsx→metadata-admin/i18n.ts.Verification (head
b1e82226c)pnpm exec vitest run --maxWorkers=2 FILES. The set is 179 files: every test file that 11932's revert touches or that imports a module either revert changes (interfaceCreate,StudioDesignSurface, the metadata-admin i18n table), plus the remainingObjectValidationsPanel*suites andpackages/core/src/utils/__tests__/column-identity.ratchet.test.ts. batch 00: 'Test Files 44 passed (44)', 'Tests 489 passed (489)'; batch 01: 'Test Files 45 passed (45)', 'Tests 631 passed (631)'; batch 02: 'Test Files 45 passed (45)', 'Tests 221 passed (221)'; batch 03: 'Test Files 45 passed (45)', 'Tests 641 passed (641)'. Total 179 files and 1982 tests passed.pnpm --filter @object-ui/app-shell run type-check(tsc --noEmit && tsc -p tsconfig.test.json) exited 0. The dependency closure was built first (--filter '@object-ui/app-shell^...' run build, exit 0).check:i18n-keys,check:i18n-designer-parity,check:i18n-drift,check:unreferenced-sources,check-changeset-presence("this change declares 1 changeset(s)"),check-changeset-no-major,check:changeset-claims,check:pending-changeset-literals,check-changeset-fixed,check:control-bytes,check:new-line-citations.check-changeset-overwriteis report-only. It lists the two removed changesets as its case 3, superseded in the same change.pnpm exec eslinton the 8 touched source and test files: 0 errors and 19 react-hooks warnings. All 8 files are byte-identical to their f1781be blobs.Bundle Analysison this PR re-measures.os-dev report
{ "issue": 11937, "status": "done", "branch": "claude/issue-11937-eager-closure-main-red", "pr": "this pull request (draft; the relay forces draft)", "session": "session_01MgfduSkFrfM3eorB3UGfAU", "premise_still_valid": true, "summary": "Route A, as the seat ruled under the maintainer's ruling 6056819248 step 1. objectui#11931 (19a7348) and objectui#11932 (f3a0488) are rolled back with git revert -m 1, one commit each, and an app-shell patch changeset is added. The tree equals f1781be's except for that changeset, and f1781be's tree measured 3,385,951 eager gzip bytes, 413 under the 3,386,364 ceiling. Reverting 11931 alone measured 66 B over, because 11932 added its own rows to the same eager designer table. No ceiling, chunk config or workflow is touched.", "route": "(2) widened to A: reverting 11931 alone is insufficient (+66 B on f3a0488), and there is no leak for route (1). The designer table views/metadata-admin/i18n.ts is the only module in the automatic eager i18n chunk, and 8 eager chunks import it statically: the register-builtins inspector path (eager by design, ruling A 6054102412) and runtime surfaces (RuntimeDraftBar, RecordDetailView).", "tests": "Head b1e82226c. Union of the test files that 11932's revert touches or that import a module either revert changes (git grep of interfaceCreate, StudioDesignSurface and the metadata-admin i18n table), plus the remaining ObjectValidationsPanel suites and packages/core/src/utils/__tests__/column-identity.ratchet.test.ts: 179 files, run in 4 batches under the lock with repo-root `pnpm exec vitest run --maxWorkers=2 FILES`: batch 00: 'Test Files 44 passed (44)', 'Tests 489 passed (489)'; batch 01: 'Test Files 45 passed (45)', 'Tests 631 passed (631)'; batch 02: 'Test Files 45 passed (45)', 'Tests 221 passed (221)'; batch 03: 'Test Files 45 passed (45)', 'Tests 641 passed (641)'. Total 179 files and 1982 tests passed. No ablation applies: the change is two reverts.", "gates": [ "app-shell type-check, `pnpm --filter @object-ui/app-shell run type-check` (echoes `tsc --noEmit && tsc -p tsconfig.test.json`) under the lock, after `pnpm --filter '@object-ui/app-shell^...' run build` (lock VERDICT command-exit 0): VERDICT command-exit 0.", "check:i18n-keys exit 0: 'Every in-scope call-site key resolves against the en pack (3304 keys), …'", "check:i18n-designer-parity exit 0: 'Every en row has a zh row, and every shared row carries the same placeholders.'", "check:i18n-drift exit 0: 'Every changed designer-table en value was followed by its zh row.'", "check:unreferenced-sources exit 0: 'OK Every shipped source file in every covered package is reachable.'", "check-changeset-presence exit 0: '11 source file(s) of 1 released package(s) changed, and this change declares 1 changeset(s): .changeset/11937-eager-budget-rollback.md.'", "check-changeset-no-major exit 0: 'No changeset declares a `major` bump.'", "check:changeset-claims exit 0: 'No pending changeset names a file this change touches.'", "check:pending-changeset-literals exit 0: 'No test source names a pending changeset.'", "check-changeset-fixed exit 0: 'privatePackages declared: version=true, tag=false.'", "check-changeset-overwrite exit 0, report-only: it lists the deletion of the two rolled-back PRs' unreleased changesets (11823-page-create.md, 11861-validation-presets.md). That is its case 3, superseded in the same change, and intended: the next release must not announce features that are not in it.", "check:control-bytes exit 0; check:new-line-citations exit 0 ('0 new citation(s)').", "eslint (`pnpm exec eslint --format json`) on the 8 touched .ts/.tsx files: exit 0, 0 errors, 19 warnings (react-hooks rules). Every file is byte-identical to its f1781be blob, so this PR adds none of them.", "Eager closure: no console build on this head, as the PM directed. The tree equals f1781be's (git diff f1781be HEAD --stat shows only the changeset), and f1781be's build measured 3,385,951 B (local `check:eager-closure` inputs, emit-eager-closure-report line '3385951 bytes gzipped (3306.6 KB)'). CI's Bundle Analysis on this PR re-measures.", "head: b1e82226c (git rev-parse --short HEAD after the last commit)." ], "files_changed": [ ".changeset/11937-eager-budget-rollback.md (added)", ".changeset/11861-validation-presets.md, .changeset/11823-page-create.md (deleted, the rolled-back PRs' unreleased changesets)", "content/docs/guide/console.md", "packages/app-shell/src/views/metadata-admin/i18n.ts", "packages/app-shell/src/views/studio-design/ObjectValidationsPanel.tsx, validationPresets.ts (deleted), ObjectValidationsPanel.presets-11861.test.tsx (deleted), ObjectValidationsPanel.test.tsx, ObjectValidationsPanel.newRuleWaits-11820.test.tsx, ObjectValidationsPanel.whenKey.test.tsx", "packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx, interfaceCreate.tsx, interfaceCreate.test.tsx, StudioDesignSurface.interfacesCreatePage-11823.test.tsx (deleted)" ], "deviations": [ "The PR is a draft. The PM's correction says so, and the relay forces draft anyway.", "objectui#11932's files are outside the claim's file surface. The PM's message assigns recording that amendment to the seat.", "The two reverts are separate commits made with `git revert -m 1 --no-commit` and then `git commit -F -`, so that each carries the model-free trailer pair. Each tree is the plain revert's.", "There is no os-dev-report comment this round, because of the PM's write-budget instruction. The report is in this body and in the hand-back.", "Round 1, for the record: the blocked report comment 6056966795 on the card holds the full four-build measurement." ], "mcp_calls": "0", "api_writes": "this round: 1 pr_create (relay) + 1 label-write for the PR assignee, after the PR exists, recorded in the hand-back. Round 1: 1 comment (6056966795). Git pushes are not REST writes.", "open_questions": [], "out_of_scope_findings": [ "carrier: objectui#11942 (the seat's objectui#6795-order follow-up) · the eager designer-table chunk i18n-*.js weighs 105,029 B gz on f3a0488, about 3.1% of the eager closure, and every Studio-only row added to views/metadata-admin/i18n.ts lands in it eagerly · noted, not filed" ] }Generated by Claude Code