从 #5337(PR #5796)的实现中记录的越界发现。未在该 PR 中修复,按 Prime Directive #10 独立记录。
现象
packages/spec/CHANGELOG.md:86–90(## 17.0.0-rc.2 段落里,由 ad047d2 即 .changeset/app-area-fail-open-gates-removed.md 生成的那条)仍写着:
**One caveat the prescription carries rather than hides:** per-item gating
_inside_ an area is enforced by the shell only, because the server does not walk
`areas`. Anything that must never reach the browser belongs in the app's
top-level `navigation` tree, or in its own app.
#4722 之后这句已不成立(filterAppForUser 对每一棵 areas[].navigation 跑同一个 filterNav,packages/rest/src/rest-server.ts 的 filterAreas),这正是 #5337 在 registry.ts / 生成的升级指南 / 未发布 changeset 三处订正掉的同一句。
为什么单独记而不是顺手改
仓库处于 changesets pre 模式(.changeset/pre.json 的 mode: "pre"),所以:
净结果:同一个 CHANGELOG.md 文件里会同时存在两种说法 —— rc.2 段落说「服务端不走 areas」,GA 段落说「#4722 已关闭该边界」。读者按段落时间线读能自洽,但只搜关键词落到 rc.2 段落的读者会被劝去做一次不必要的导航树重构。
判为 observation-class(finding,不带 pm:queue)的理由
- 用户今天不会因此出错到功能层面 —— 这是文档口径,不是行为缺陷;
- 改一段已发布的 changelog 与仓库「发布说明集中在发布时写」的惯例有张力,处置方式需要判断:是 (a) 就地加一行
> 更正:见 #4722 / v17 GA 段落 的前向注记、(b) 原地改写 rc.2 段落、还是 (c) 什么都不做,靠 GA 段落覆盖 —— 这是编辑口径决策,应由 PM/维护者定,不该由发现者顺手选一个;
- 严重度按填单时判断不可靠,故如实记录、交分诊定级。
先例:#5781 同属「已发布 changelog 的事实更正」这一类,说明本仓确实把这类记为可处理项,而非纯噪声。
⛔ 边界提醒:任何处置都不得改 content/docs/releases/(任何 PR 都不许碰该目录)。
证据
Generated by Claude Code
从 #5337(PR #5796)的实现中记录的越界发现。未在该 PR 中修复,按 Prime Directive #10 独立记录。
现象
packages/spec/CHANGELOG.md:86–90(## 17.0.0-rc.2段落里,由ad047d2即.changeset/app-area-fail-open-gates-removed.md生成的那条)仍写着:#4722 之后这句已不成立(
filterAppForUser对每一棵areas[].navigation跑同一个filterNav,packages/rest/src/rest-server.ts的filterAreas),这正是 #5337 在registry.ts/ 生成的升级指南 / 未发布 changeset 三处订正掉的同一句。为什么单独记而不是顺手改
仓库处于 changesets pre 模式(
.changeset/pre.json的mode: "pre"),所以:.changeset/app-area-fail-open-gates-removed.md仍留在.changeset/里、仍是 v17 GA 发布说明的法定输入 —— PR fix(spec): protocol-17 rationale 改述 area 项级门禁的现状 —— #4722 已关闭「服务端不走areas」那条 caveat (#5337) #5796 已按 protocol-17 的 migration rationale 仍写着「the server does not walkareas」,并投影进生成的升级指南 #5337 的 PM 裁定订正了它;## 17.0.0-rc.2这一段是已经落盘的历史,GA 时changeset version会新增一个## 17.0.0段落(携带订正后的措辞),不会回头重写 rc.2 段落。净结果:同一个
CHANGELOG.md文件里会同时存在两种说法 —— rc.2 段落说「服务端不走areas」,GA 段落说「#4722 已关闭该边界」。读者按段落时间线读能自洽,但只搜关键词落到 rc.2 段落的读者会被劝去做一次不必要的导航树重构。判为 observation-class(
finding,不带pm:queue)的理由> 更正:见 #4722 / v17 GA 段落的前向注记、(b) 原地改写 rc.2 段落、还是 (c) 什么都不做,靠 GA 段落覆盖 —— 这是编辑口径决策,应由 PM/维护者定,不该由发现者顺手选一个;先例:#5781 同属「已发布 changelog 的事实更正」这一类,说明本仓确实把这类记为可处理项,而非纯噪声。
⛔ 边界提醒:任何处置都不得改
content/docs/releases/(任何 PR 都不许碰该目录)。证据
packages/spec/CHANGELOG.md:86–90(本单主体).changeset/pre.json→"mode": "pre"packages/spec/src/migrations/registry.ts(protocol-17 step rationale)、docs/protocol-upgrade-guide.md(生成物)、.changeset/app-area-fail-open-gates-removed.md—— 均在 PR fix(spec): protocol-17 rationale 改述 area 项级门禁的现状 —— #4722 已关闭「服务端不走areas」那条 caveat (#5337) #5796packages/spec/src/ui/app.zod.ts处方 +packages/spec/liveness/app.json的areas.navigation记录Generated by Claude Code