Path: ② the capabilities an end user meets in the app — view rendering | 缺项 | P2
Split by the triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01AavokzJ5DndAwitDXvKy4U from objectui#11672 (the 2026-10-06 console dogfood sweep, showcase, framework ce577ec4), item 8. Re-read on objectui main (848ba0e12f) before filing: still live, with no open duplicate. ⛔ Not a claim, ⛔ not a dispatch.
Triage: lands in packages/components/src/renderers/placeholders.tsx (about :137–:141) and packages/components/src/registry/Registry.ts (about :576–:588, and lazyStubFullType) ⇒ domain:ui; rationale: the placeholder's guard asks get(), which ignores pending lazy stubs.
What happens
Every full load logs the registry's own race detector: Component "view:calendar" bare-name fallback is being overwritten by "protocol-placeholder:view:calendar", which a pending lazy stub already claims for "view:view:calendar" (and the same for view:timeline). The message also doubles the namespace (view:view:…).
Done when
- A placeholder never claims a slot that a registered lazy stub owns. The guard checks pending stubs as well as loaded components.
lazyStubFullType stops adding the namespace a second time.
- Pin: a full load logs no race warning, and an authored
view:calendar resolves to the same component whether or not its chunk has loaded.
Generated by Claude Code
Path: ② the capabilities an end user meets in the app — view rendering | 缺项 | P2
Split by the triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01AavokzJ5DndAwitDXvKy4Ufrom objectui#11672 (the 2026-10-06 console dogfood sweep, showcase, frameworkce577ec4), item 8. Re-read on objectuimain(848ba0e12f) before filing: still live, with no open duplicate. ⛔ Not a claim, ⛔ not a dispatch.Triage: lands in
packages/components/src/renderers/placeholders.tsx(about:137–:141) andpackages/components/src/registry/Registry.ts(about:576–:588, andlazyStubFullType) ⇒domain:ui; rationale: the placeholder's guard asksget(), which ignores pending lazy stubs.What happens
Every full load logs the registry's own race detector:
Component "view:calendar" bare-name fallback is being overwritten by "protocol-placeholder:view:calendar", which a pending lazy stub already claims for "view:view:calendar"(and the same forview:timeline). The message also doubles the namespace (view:view:…).Done when
lazyStubFullTypestops adding the namespace a second time.view:calendarresolves to the same component whether or not its chunk has loaded.Generated by Claude Code