发现于 #5027 的普查(那一单在 span 的 register meta 旁边路过这个键),不在该 PR 处理 。observation-class:今天没人因此看到错的东西,只是一整条声明面是惰性的 —— 按填报纪律打 finding,不打 pm:queue。
读数(仓内全文,排除 node_modules / dist / CHANGELOG)
声明面 4 处:
packages/core/src/registry/Registry.ts:106 —— defaultChildren?: SchemaNode[]; // Default children when dropped(紧邻的 defaultProps 注释是 // Default props when dropped)
packages/types/src/base.ts:508
packages/types/src/plugin-scope.ts:155
packages/types/src/zod/base.zod.ts:250 —— describe('Default children')
生产面 11 处:packages/components/src/renderers/navigation/sidebar.tsx(10 处)、packages/components/src/renderers/basic/span.tsx:138。
已发布的插件作者文档 1 处:skills/objectui/guides/plugin-development.md:80 把它列进 register meta 的表格(| defaultChildren | SchemaNode[] | Default child schema |)。
消费面 0 处。 拖放路径读的是它的孪生键:packages/plugin-designer/src/PageDesigner.tsx:173 —— props: paletteItem?.defaultProps ?? {},没有对应的 children: 一行。对 defaultChildren 的全仓搜索只命中上面那些声明与字面量,没有任何读取。
影响
从调色板把一个声明了 defaultChildren 的类型拖进设计器,不会带出声明的默认子节点(拖 span 本应带出 { type: 'text', content: 'Inline text' },拖 sidebar 的 10 个类型同理)。用户看到的是一个空节点而不是错的节点,所以属于"声明了但不生效",不是可见回归。
可能的处置(交裁定,本单不做)
在 PageDesigner 的拖放里读它(children: paletteItem?.defaultChildren ?? [])—— 让声明生效;要顺带裁一下它落到哪个子节点键上(kind:'html' tier 里 span 标签的内容被静默丢弃 —— span.tsx 只读 schema.body,而 parser 产出 children #5027 已把 span 的规范键钉成 children,A component type has THREE declared surfaces that disagree (TS schema type / registry meta inputs / renderer prop reads), and nothing reconciles or enforces them #4631 是那张类问题)。
按 ADR-0049 enforce-or-remove 把这个键连同 11 处声明与 skills 文档那一行一起删掉。
无论哪条,skills/objectui/guides/plugin-development.md 那一行要跟着走 —— 它是插件作者今天能读到的、当真会照着写的表格。
关联:#5027 (发现场景)、#4631 (声明面与读取面互不一致的类问题,pm:on-hold)
发现于 #5027 的普查(那一单在
span的 register meta 旁边路过这个键),不在该 PR 处理。observation-class:今天没人因此看到错的东西,只是一整条声明面是惰性的 —— 按填报纪律打finding,不打pm:queue。读数(仓内全文,排除 node_modules / dist / CHANGELOG)
声明面 4 处:
packages/core/src/registry/Registry.ts:106——defaultChildren?: SchemaNode[]; // Default children when dropped(紧邻的defaultProps注释是// Default props when dropped)packages/types/src/base.ts:508packages/types/src/plugin-scope.ts:155packages/types/src/zod/base.zod.ts:250——describe('Default children')生产面 11 处:
packages/components/src/renderers/navigation/sidebar.tsx(10 处)、packages/components/src/renderers/basic/span.tsx:138。已发布的插件作者文档 1 处:
skills/objectui/guides/plugin-development.md:80把它列进 register meta 的表格(| defaultChildren | SchemaNode[] | Default child schema |)。消费面 0 处。 拖放路径读的是它的孪生键:
packages/plugin-designer/src/PageDesigner.tsx:173——props: paletteItem?.defaultProps ?? {},没有对应的children:一行。对defaultChildren的全仓搜索只命中上面那些声明与字面量,没有任何读取。影响
从调色板把一个声明了
defaultChildren的类型拖进设计器,不会带出声明的默认子节点(拖span本应带出{ type: 'text', content: 'Inline text' },拖 sidebar 的 10 个类型同理)。用户看到的是一个空节点而不是错的节点,所以属于"声明了但不生效",不是可见回归。可能的处置(交裁定,本单不做)
PageDesigner的拖放里读它(children: paletteItem?.defaultChildren ?? [])—— 让声明生效;要顺带裁一下它落到哪个子节点键上(kind:'html'tier 里 span 标签的内容被静默丢弃 —— span.tsx 只读schema.body,而 parser 产出children#5027 已把span的规范键钉成children,A component type has THREE declared surfaces that disagree (TS schema type / registry meta inputs / renderer prop reads), and nothing reconciles or enforces them #4631 是那张类问题)。无论哪条,
skills/objectui/guides/plugin-development.md那一行要跟着走 —— 它是插件作者今天能读到的、当真会照着写的表格。关联:#5027(发现场景)、#4631(声明面与读取面互不一致的类问题,pm:on-hold)