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.
三个节点插槽直接崩。 给 sidebar/navbar/rightRail 一个 schema 对象,AppShell 把它当 ReactNode 渲染,React 拒绝:节点被换成渲染器错误框 Component "app-shell" failed to render — Objects are not valid as a React child (found: object with keys {type, value})。
Maintainer ruling (2026-08-16, recorded by PM session session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the evening decision-inbox report's recommendations in full, verbatim: 「8931 我已经处理了,其他接受你的所有建议。」 For this card:
Ruled: Option A — deregister the app-shell component key (ADR-0049 enforce-or-remove, the remove side).
AppShell stays a React composition primitive; app-schema-renderer remains the one JSON door for "render a whole shell from a schema" (it already declares inputs).
After removal, { "type": "app-shell" } gets the explicit "unregistered component" diagnostic instead of today's parse-succeeds-renders-nothing middle state.
Activity
os-zhuang commentedon Aug 16, 2026
Maintainer ruling (2026-08-16, recorded by PM session
session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the evening decision-inbox report's recommendations in full, verbatim: 「8931 我已经处理了,其他接受你的所有建议。」 For this card:Ruled: Option A — deregister the
app-shellcomponent key (ADR-0049 enforce-or-remove, the remove side).AppShellstays a React composition primitive;app-schema-rendererremains the one JSON door for "render a whole shell from a schema" (it already declaresinputs).{ "type": "app-shell" }gets the explicit "unregistered component" diagnostic instead of today's parse-succeeds-renders-nothing middle state.headerprop,而AppShellProps没有它 —— 照抄示例头部区永不渲染 #4817/app-shell.mdx 的导航示例 2/3 键错(label/icon 字符串)+ 教了一个被整个丢弃的 header prop + searchEnabled 下必抛 TypeError 的隐患 #4793 teach React composition only), so no teaching surface changes."type": "app-shell"usage first; a hit is a fork report, not a silent migration.First-touch grading completes: label flipped
needs-user-decision→pm:queuein the same stroke.Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
【认领】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt)批次 12 派发,os-dev 实施。分支:
claude/issue-4841-deregister-app-shell。按 2026-08-16 维护者裁定(评论 5307574602)执行:方案 A 撤销
app-shell组件键注册(ADR-0049 remove 侧)。AppShell保持 React 组合原语;app-schema-renderer仍是 JSON 整壳唯一入口。前置:扫 examples/catalog 的"type": "app-shell"用法,命中 ⇒ 停手回报,⛔ 静默迁移。撤除后{ "type": "app-shell" }得到明确的未注册诊断。文件面:
packages/layout/src/index.ts+ 测试 + changeset。与在飞四单零交集。Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
【实施完成】draft PR: #4859(分支
claude/issue-4841-deregister-app-shell)。按裁定(评论 5307574602)撤销
app-shell组件键注册;AppShell仍作为 React 组合原语导出,app-schema-renderer不动。前置扫描(裁定要求的"标准退役动作")结果:0 命中。
objectui@1ef236e18与objectstack@d491625c1两个仓的origin/main上,"type": "app-shell"(含紧凑、JS 单引号、YAML 三种写法)只出现在content/docs/guide/layout.md的说明性散文与 #4827 钉子的失败文案里,没有任何真实节点;examples / catalog / apps / e2e / skills 全零。负控制:同一套命令扫"type": "page"在examples/schema-catalog命中 5 个文件,证明扫描面确实覆盖 catalog 目录。所以不存在需要 fork report 的用法。撤除后的诊断读数(实测,新钉子逐字断言):
SchemaRenderer渲染出role="alert"红框,首行Unknown component type: app-shell,开发态附错误码OBJUI-001。一处与派发预期不同,说明如下:裁定说"文档已干净、无需改教学面",但文档实际必须改,且其中一处是机械强制的。
content/docs/guide/layout.md的 AppShell 小节有一整块「In a JSON node」,逐条陈述"app-shell已注册、节点确实解析到本组件、三个纯数据键生效"——这些是 content/docs/guide/layout.md 的 app-shell「Schema API」块教了 7 个 AppShellProps 从未声明的键(header/body/headerClassName/... ),照抄的 JSON 全部静默丢弃 #4827 实测写下的事实陈述,被本次改动直接证伪。content/docs/guide/layout.md 的 app-shell「Schema API」块教了 7 个 AppShellProps 从未声明的键(header/body/headerClassName/... ),照抄的 JSON 全部静默丢弃 #4827 让这一页不再引导任何人写这个节点(这点裁定说得对),但它同时留下了一段描述注册面现状的文字。app-shell,而guide-layout-sidebar-nav-doc.test.ts会把这句与index.ts的 register 调用机械比对——不改文档,这条钉子必红(实测确实红了)。packages/layout/README.md的 Registration 小节同样列举注册键表(已发布包的 README),一并改。三处都只是"把被本次改动证伪的事实改对",没有新增教学内容。
顺带记录(已另立单,不在本 PR 修):README 的这份键表是三处同源键表里唯一没有机械钉子的一处——guide 那份有 #4840 的钉子、
index.ts有本单新增的钉子,README 只能靠人读到。这正是它这次漂掉的原因。Generated by Claude Code
feat(layout)!: 撤销 app-shell 组件键注册 (objectstack-ai#4841) (objectstack-…
test(layout): pin the README Registration key list to registerLayout() (