Repository navigation
fix(app-shell): register the console home blocks under the app-shell namespace - #13314
Merged
objectstack-fleet[bot] merged 1 commit intoOct 21, 2026
Merged
Conversation
…namespace The five console home blocks (hero, stat, usage-bar, checklist, tile-grid) registered with no namespace, so the registry logged a deprecation warning for each on every console boot. They now register under `app-shell`, like every other console registration; a bare `type: 'hero'` still resolves through the registry's bare fallback. KNOWN_SCHEMA_TYPES is regenerated with scripts/regenerate-known-schema-types.mjs and gains exactly the five `app-shell:` keys. objectui validate refuses them at `type`, so the bare key stays the one authorable spelling, and the NAMESPACED_REFUSED_AT_TYPE pin rises 302 -> 307 as a named stopgap for these five keys only (maintainer ruling 6312301934). Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB
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-13301-product-blocks-namespace
branch
October 21, 2026 11:07
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 #13301
Clause-②: no
What
The five console home blocks (
hero,stat,usage-bar,checklist,tile-grid) now register undernamespace: 'app-shell', as every other console registration does, so the registry no longer logsRegistering component "…" without a namespace is deprecatedfor each on every console boot. This is the maintainer's ruling B (comment 6312301934), executed in its dispatch shape:packages/app-shell/src/console/blocks/productBlocks.tsx: onenamespace: 'app-shell'line on each of the fiveComponentRegistry.registercalls. Nothing else in the file moves.packages/cli/src/utils/known-schema-types.ts: regenerated withnode scripts/regenerate-known-schema-types.mjs, not by hand. The diff adds exactlyapp-shell:checklist,app-shell:hero,app-shell:stat,app-shell:tile-gridandapp-shell:usage-bar, and nothing else;--checkexits 0 on the head.registered-types-validate-ratchet-10859.test.ts:NAMESPACED_REFUSED_AT_TYPE302 to 307. The docblock entry beside it names this card and the ruling, in the same form as the earlierobjectui#7611 PR-5named stopgap raise, and says the raise covers these five keys only.@object-ui/app-shelland@object-ui/cli(the regenerated list is publishedsrcof the CLI).Options A (
app-shell:arms in@object-ui/types) and C (apackages/coreRegistry policy change) are not touched. No spec or protocol change.Pins
productBlocks-namespace-13301.test.tsxrenders a node authoring baretypefor each of the five through the realSchemaRendererand finds its text, with no unknown-component panel. It also pins that the bare key and theapp-shell:key resolve to the same renderer.product-blocks-namespace-13301.test.ts(cli): for each block the bare key is claimed and theapp-shell:key is refused attype(aninvalid_unionat pathtype); end to end,objectui validatepasses a page with a barehero(exit 0) and fails the same page withapp-shell:hero(exit 1).console.warncapture invi.hoisted, before../productBlocksevaluates (thedomproject is isolated, so that evaluation is the file's own), and asserts none of the five is named in a deprecation line. A lit control registers a bare probe key and sees its line captured.ablation-replace.mjswith its blob-hash restore:objectui validate refuses 307 registered namespaced key(s) at type; the pin is 306.app-shell:probe-sixth-13301added to the generated list: red,refuses 308 ...; the pin is 307., with the probe named in the refused list.git diff HEADempty.Ablation
Fix committed first (6ccc16f).
ablation-replace.mjs --delete --expect 5on the fivenamespace: 'app-shell'lines: anchor 5 to 0, blob 2f944edbf050 to 4e044375ef7d (theorigin/mainblob). Result:Tests 2 failed | 6 passed (8). Red: the deprecation pin (c) and the same-renderer pin. Green: the five bare-key renders (a) and the capture control. Restore: blob after restore 2f944edbf050 equals HEAD,git diff HEADempty. Nodist/build is involved: the test imports../productBlocksfrom source.Verification (head 6ccc16f)
--maxWorkers=1, one package group at a time, under the shared lock. app-shell blocks: 3 files, 30 passed. cli + the generator pins (ratchet, new cli pin,known-schema-types-derivation-5115,report-namespace-agreement-6416): 4 files, 62 passed. Families naming the touched files: cli 5 files, 61 passed; types 4 files, 88 passed; plugin-report 1 file, 12 passed; scriptscheck-lucide-icon-record-names51 passed;examples/schema-cataloggallery render 588 passed.turbo run build --filter=@object-ui/app-shell^... --filter=@object-ui/cli^...: 28/28.type-checkfor@object-ui/app-shellexit 0 and@object-ui/cliexit 0; each new test is in a checked program (--listFilesOnlycount 1 each).eslint --no-inline-config --format jsonread 5 files, 0 errors, 1 warning (react-refresh/only-export-componentson an untouched line ofproductBlocks.tsx, pre-existing). The population is the repoeslint.config.js, which sets no type-awareparserOptionsproject, so this diff cannot move a verdict on any untouched file.check:phantom-deps,self-import,unreferenced-sources,doc-example-readers,handler-key-reads,side-effects-array,element-data-source-declaration,spec-symbols,action-forward-parity,designer-field-key-parity,icon-record-names,i18n-keys,i18n-drift,i18n-designer-parity,control-bytes,doc-types,registry-bare-names,prompt-keys,entry-guard,new-line-citations(0 new),check-hand-rolled-comment-mask,check-doc-expression-carriage,regenerate-known-schema-types --check,check-changeset-fixed,check-changeset-presence.check:spec-floorsexits 1 with six findings: fiveno-artifact(packages not built in this worktree,app-shellandcliamong them, since only their dependency closure was built) and onefloor-too-lowon@object-ui/types, a package this diff does not touch. Recorded per the order, not fixed; NOT MEASURED for this diff.packages/app-shell/andpackages/cli/directories (no whole-directory runs here).Acceptance notes
The implementing session is
https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB.Generated by Claude Code