从 #5730 的实施核对拆出(spec 车道 PM 立卡,session_011M7UwH25Unfi73UHim7ajY;dev 探针证据全文在 #5730 的复核评论 issuecomment-5225117067 与 PR #6616 正文)。建议分诊路由 repo:objectui。
事实(dev 探针实测,objectui HEAD)
#5730 原以为 record-details.tsx:193 的 s.title ?? s.label 是「容忍作者错拼写」—— 实测证伪:objectui 自己的运行时合成器是 title 的主上游 。deriveFieldGroupDetailSections()(buildDefaultPageSchema.ts:522)与 RecordDetailView 的 splitPrimarySecondary()(:1724)/grouped 分支(:1749)产出的 record:details 节点形状为 {name?, title?, icon?, description?, collapsible?, defaultCollapsed?, showBorder?, columns, fields: FieldDescriptor[]} —— 与 spec 声明的 {name?, label?, columns?, fields: string[]} 在六处 偏离(探针实测 SECTION KEYS = ['name','title','columns','fields'],fields 为 descriptor 对象)。那条 ?? 是两套形状的接缝;直接删除会让所有 fieldGroups 派生的默认详情页丢分区标题。
请裁(dev 三轴分析全文见 #6616 正文)
A 合成器收敛到 spec 区块形状(产 label、fields 退回 string[]、渲染器重新解析)—— 一套契约,?? 消失;代价:推翻「descriptor 避免重复解析」的既有性能决策,触及导出 API BuildPageOptions.sections / deriveFieldGroupDetailSections / resolveDetailSections + ~8 测试。
B(dev 推荐) 正式声明接缝:合成器产出即内部 DetailSection 形状,做成显式、具名、带类型的第二输入(独立节点类型或 branded 内部 prop),裸 ?? 消失;spec 侧零改动、无性能回退。ADR-0087 语义:要容忍就声明成转换层,never a bare ??。
C 只改名(合成器产 label)—— 满足 record:details 分区标题存在 title/label 双拼写:三个消费方都读 title ?? label,但 spec 只声明 label #5730 字面但五处偏离照旧,假统一比可见的 ?? 更隐蔽;⛔ dev 明确不推荐。
推荐 B (A 为维护者愿付重解析代价时的终点)。三轴同指:title 作为授权词汇零拉力(~12 处真实语料全写 label),有拉力的是合成路径本身;B 把「两套形状」写进代码可测可排期;对 AI 作者,B 让「这一支是机器合成输入」显式可读,掐断照渲染器学拼写的通道。
Refs #5730 (容忍读半边已由 PR #6616 解决)、#5611 、ADR-0087。
从 #5730 的实施核对拆出(spec 车道 PM 立卡,
session_011M7UwH25Unfi73UHim7ajY;dev 探针证据全文在 #5730 的复核评论 issuecomment-5225117067 与 PR #6616 正文)。建议分诊路由repo:objectui。事实(dev 探针实测,objectui HEAD)
#5730 原以为
record-details.tsx:193的s.title ?? s.label是「容忍作者错拼写」—— 实测证伪:objectui 自己的运行时合成器是title的主上游。deriveFieldGroupDetailSections()(buildDefaultPageSchema.ts:522)与RecordDetailView的splitPrimarySecondary()(:1724)/grouped 分支(:1749)产出的record:details节点形状为{name?, title?, icon?, description?, collapsible?, defaultCollapsed?, showBorder?, columns, fields: FieldDescriptor[]}—— 与 spec 声明的{name?, label?, columns?, fields: string[]}在六处偏离(探针实测 SECTION KEYS = ['name','title','columns','fields'],fields 为 descriptor 对象)。那条??是两套形状的接缝;直接删除会让所有 fieldGroups 派生的默认详情页丢分区标题。请裁(dev 三轴分析全文见 #6616 正文)
??消失;代价:推翻「descriptor 避免重复解析」的既有性能决策,触及导出 APIBuildPageOptions.sections/deriveFieldGroupDetailSections/resolveDetailSections+ ~8 测试。DetailSection形状,做成显式、具名、带类型的第二输入(独立节点类型或 branded 内部 prop),裸??消失;spec 侧零改动、无性能回退。ADR-0087 语义:要容忍就声明成转换层,never a bare??。title ?? label,但 spec 只声明 label #5730 字面但五处偏离照旧,假统一比可见的??更隐蔽;⛔ dev 明确不推荐。推荐 B(A 为维护者愿付重解析代价时的终点)。三轴同指:title 作为授权词汇零拉力(~12 处真实语料全写 label),有拉力的是合成路径本身;B 把「两套形状」写进代码可测可排期;对 AI 作者,B 让「这一支是机器合成输入」显式可读,掐断照渲染器学拼写的通道。
Refs #5730(容忍读半边已由 PR #6616 解决)、#5611、ADR-0087。