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
两个 reviewer 判断都批准:双拼写都转(canonical 侧的 description 今天就是被扔在地上,同缺陷不同拼法)、不改写 type(开放命名空间上的 type 改写正是需要冲突守卫的那类动作,别名存废归 objectui);
反向验证的「见证者 vs 守卫」区分是本轮最有价值的方法论输出:场景 A 揭示逐条 fixture/chain-replay 测试在条目被摘时消失而非变红(for (const c of ALL_CONVERSIONS) 驱动),场景 B 证明登记完整性门与行为门互不替代;预测偏差(11 红 → 实际 4 红)如实报账;
Activity
os-zhuang commentedon Aug 5, 2026
认领:spec 车道第 2 批
会话:
session_018fxLGQdatPbBUvCgiVxg6D分支:
claude/issue-4827-page-header-subtitle-conversionWorktree:
objectstack-issue-4827域:
domain:spec文件面:
packages/spec/src/conversions/**(registry + 实现 + 测试)+ 生成物(spec-changes.json 等)。范围:仅登记 D2 conversion
page-header-subtitle-alias(description→subtitle,page-header 节点,加载期改写)。objectui 侧收尾(删??兜底)由 objectui 分片在本单落地后按其 #3226 的 Blocked-by 推进,不在本单。Generated by Claude Code
os-zhuang commentedon Aug 5, 2026
实现已推,draft PR:#5509。
顺带记一条给 objectui 侧收尾用的定价输入,不影响本单的完成判据,但会影响 objectui#3226 那一步的充分性判断:
本条目改写的是走 ObjectStack 加载路径的 page 元数据 ——
normalizeStackInput(defineStack/validate/lint)以及applyConversionsToStoredItem覆盖的sys_metadatapage 存量行。这两条路都覆盖到了(存量行那条有专门用例钉着)。但本单背景里说的「别名存在的全部理由是仓外消费者 schema」有一种形态是本条目够不着的:如果那些消费者 schema 是直接交给 objectui 的
SchemaRenderer渲染的 SDUI 文档,而不是作为 ObjectStack page 元数据入库/加载,那它们根本不经过 conversion 层,description也就不会被改写。对这一类消费者,删掉PageHeader.tsx的subtitle ?? description仍然会静默丢副标题 —— 正是本单开头要避免的那种失效形态。所以 objectui#3226 收尾前值得先答一个事实问题:那些仍在写
description的消费者 schema,是经 ObjectStack 元数据加载的,还是直接喂给 SchemaRenderer 的? 前者本单已解决;后者需要 objectui 侧另想办法(例如渲染器侧一次性的 conversion 等价物,或者干脆保留读一段时间)。我没有替 objectui 分片做这个判断,也没有为此另开单 —— 它属于 objectui#3226 的范围,记在这里让接手的人不必重新发现。
Generated by Claude Code
os-zhuang commentedon Aug 5, 2026
验收(spec 车道 PM,
session_018fxLGQdatPbBUvCgiVxg6D):ACCEPT → PR #5509(draft;CI 中 Temporal Conformance 的红已定因为纯基础设施抖动 —— mongodb-memory-server 二进制下载超时后,被弃下载流的ENOENT rename成为 unhandled rejection,282 用例 0 失败 —— 已原样重跑;全绿后转 ready 入队)。验收要点:
renameKey房规不发明 ✓;description今天就是被扔在地上,同缺陷不同拼法)、不改写type(开放命名空间上的 type 改写正是需要冲突守卫的那类动作,别名存废归 objectui);for (const c of ALL_CONVERSIONS)驱动),场景 B 证明登记完整性门与行为门互不替代;预测偏差(11 红 → 实际 4 红)如实报账;page-component-visibility-to-visibleWhen就地展开了 region→components 的 copy-on-write 走查,与新的mapPageComponents是两份同形代码 #5511(walk 双实现漂移风险,finding 持有)、build-schemas.ts 检查 (b) 用叶名匹配 conversion surface —— 无关簇的.type就能让一个 tombstone 冒充「已登记迁移」 #4659 追记(description进 endsWith 词表,既有缺陷不另立单)、以及给 objectui#3226 的关键警示(conversion 只覆盖走 ObjectStack loader/存量行的路径,不覆盖直喂 SchemaRenderer 的 consumer SDUI 文档 —— objectui 分片在删??前必须先回答仓外消费者属于哪一类)。第 4 笔已在本单评论区,objectui 分片按其 feat(security): ADR-0099 P1 — Layer 0 exemption reads the carried posture rung (#3211 M2) #3226 的 Blocked-by 流程会读到。Generated by Claude Code
feat(spec): register ADR-0087 D2 conversion `page-header-subtitle-ali…
fix(scripts): check-issue-citations reads a qualifier only when it na…
test(spec): contracts and conversions test titles state each cited de…