状态(2026-08-08,objectui 分片 PM):测量门未过,阻塞于上游。
Blocked-by: objectstack-ai/objectstack#6775
阶段 1 实测(报告见评论):conversion page-header-subtitle-alias 虽 live,其 page-component 走查面只有 pages[].regions[].components[] 一层(walk.ts:193 mapPageComponents),7 条绕过路径不被改写 ,含 spec-valid 的 slots.header(objectui 文档推荐写法)与容器嵌套 properties.children[] —— #3226 「现在删会静默丢副标题」的裁定原样成立 。阶段 2 未启动,零代码改动。上游 #6775(走查面与 lint 的 page-walk.ts 对齐)落地后须重新测量 再派发,不得复用本次测量。
以下为原正文:
跨仓跟进单(objectui 分片 PM 按 linkage-chore 规则代立,不认领)。#3226 PM 裁定「现在删 description 会让存量页面静默丢副标题」的前提是上游 conversion 未落地 —— 该前提已变化 :
上游现状(objectstack origin/main,2026-08-08 实读)
ADR-0087 D2 conversion 条目 page-header-subtitle-alias 已落地:docs/protocol-upgrade-guide.md:273 标 live — protocol 17 loader accepts the old shape ;
语义:加载期(defineStack / validate / lint)把 page.component.page-header.description 改写为 subtitle(spec CHANGELOG 089767f,objectstack#4827;#5509 已入 retired-keys 登记);
packages/lint/src/authoring-rules.ts:550 与 validate-component-props.test.ts:362 均以该改写为前提。
任务(测量门控 —— 先测后删,测不过即停)
测量 :核实 objectui 实际消费的 @objectstack/spec 版本包含该 conversion;枚举 objectui 侧所有 page-header 元数据进入渲染器的路径,确认每一条 都经过执行改写的 loader(若存在 raw JSON 直喂 ComponentRegistry、绕过 loader 的路径,逐一列出)。
测量通过则退役 :删 packages/layout/src/PageHeader.tsx 的 description prop(:36)与 :143 的 subtitle ?? description 回退;清 packages/layout/src/index.ts:41-49 注释里的退役条件;同步 content/docs/layout/page-header.mdx 的 legacy 段与 content/docs/guide/layout.md Schema API 中的 legacy 行(PR docs(layout): page-header 两处文档按组件实读收敛到 subtitle,删掉不存在的 breadcrumbs #3785 的措辞已指向本单)。追加 :packages/layout/README.md:49 也在教 <PageHeader description>,一并进 done-when;退役 pin(page-header-authorable-keys.test.tsx 末两测试)按其 SEQUENCING 注释与回退同一 change 删除。
发现绕过路径则停 :挂 needs_decision,附绕过面清单 —— 那时删除仍会静默丢副标题,page-header 与 page:header 对外声明了两套 authorable 键:description vs subtitle,消费端用 ?? 兜底 #3226 裁定继续有效。(2026-08-08:已触发,见状态头。)
语义化版本
删公开 prop 是 breaking:结合 check-changeset-no-major 门禁与仓内退役先例(PR #3793 :fixed-group 下 minor + 正文写明破坏面)定档;两难无解时上报,不许静默降档。
Refs
#3226 (原裁定)、#3267 / PR #3785 (文档面,本单的措辞锚点)、objectstack#4827 / #5509、ADR-0087 D2、objectstack#6775(阻塞项)。
状态(2026-08-08,objectui 分片 PM):测量门未过,阻塞于上游。
Blocked-by: objectstack-ai/objectstack#6775阶段 1 实测(报告见评论):conversion
page-header-subtitle-alias虽 live,其 page-component 走查面只有pages[].regions[].components[]一层(walk.ts:193 mapPageComponents),7 条绕过路径不被改写,含 spec-valid 的slots.header(objectui 文档推荐写法)与容器嵌套properties.children[]—— #3226「现在删会静默丢副标题」的裁定原样成立。阶段 2 未启动,零代码改动。上游 #6775(走查面与 lint 的page-walk.ts对齐)落地后须重新测量再派发,不得复用本次测量。以下为原正文:
跨仓跟进单(objectui 分片 PM 按 linkage-chore 规则代立,不认领)。#3226 PM 裁定「现在删
description会让存量页面静默丢副标题」的前提是上游 conversion 未落地 —— 该前提已变化:上游现状(objectstack
origin/main,2026-08-08 实读)page-header-subtitle-alias已落地:docs/protocol-upgrade-guide.md:273标 live — protocol 17 loader accepts the old shape;defineStack/validate/lint)把page.component.page-header.description改写为subtitle(spec CHANGELOG 089767f,objectstack#4827;#5509 已入 retired-keys 登记);packages/lint/src/authoring-rules.ts:550与validate-component-props.test.ts:362均以该改写为前提。任务(测量门控 —— 先测后删,测不过即停)
@objectstack/spec版本包含该 conversion;枚举 objectui 侧所有page-header元数据进入渲染器的路径,确认每一条都经过执行改写的 loader(若存在 raw JSON 直喂 ComponentRegistry、绕过 loader 的路径,逐一列出)。packages/layout/src/PageHeader.tsx的descriptionprop(:36)与:143的subtitle ?? description回退;清packages/layout/src/index.ts:41-49注释里的退役条件;同步content/docs/layout/page-header.mdx的 legacy 段与content/docs/guide/layout.mdSchema API 中的 legacy 行(PR docs(layout): page-header 两处文档按组件实读收敛到 subtitle,删掉不存在的 breadcrumbs #3785 的措辞已指向本单)。追加:packages/layout/README.md:49也在教<PageHeader description>,一并进 done-when;退役 pin(page-header-authorable-keys.test.tsx末两测试)按其 SEQUENCING 注释与回退同一 change 删除。page-header与page:header对外声明了两套 authorable 键:descriptionvssubtitle,消费端用??兜底 #3226 裁定继续有效。(2026-08-08:已触发,见状态头。)语义化版本
删公开 prop 是 breaking:结合
check-changeset-no-major门禁与仓内退役先例(PR #3793:fixed-group 下 minor + 正文写明破坏面)定档;两难无解时上报,不许静默降档。Refs
#3226(原裁定)、#3267 / PR #3785(文档面,本单的措辞锚点)、objectstack#4827 / #5509、ADR-0087 D2、objectstack#6775(阻塞项)。