Skip to content

[spec] 15 more retiredKey() prescriptions over v17 conversions lack the os migrate meta sentence — hidden from #6914's census because their FILES already contain the sentence elsewhere #7062

Description

@os-project-manager

Found while implementing #6914 (PR #7061). Filed unassigned, out of #6914's scope by its own census definition.

Why #6914 could not see these

#6914's corpus was file-level: "retiredKey( sites in files with no os migrate meta sentence anywhere". That query is blind to a site whose neighbor in the same file carries the sentence. Re-running the census per guidance literal (constants resolved to their definitions, comment lines stripped) on main @ 3f7f14e61 finds 15 sites in 4 files that (a) lack the sentence in their own literal and (b) sit over a registered v17 conversion whose apply() covers exactly their key:

site key conversion id
ai/agent.zod.ts:248 agent.knowledge agent-knowledge-removed
ui/action.zod.ts:992 action.shortcut action-inert-keys-removed
ui/action.zod.ts:999 action.bulkEnabled action-inert-keys-removed
ui/app.zod.ts:1253 app.version app-dead-authoring-keys-removed
ui/app.zod.ts:1393 app.objects app-dead-authoring-keys-removed
ui/app.zod.ts:1399 app.apis app-dead-authoring-keys-removed
ui/app.zod.ts:1425 app.sharing app-dead-authoring-keys-removed
ui/app.zod.ts:1431 app.embed app-dead-authoring-keys-removed
ui/app.zod.ts:1443 app.mobileNavigation app-dead-authoring-keys-removed
ui/app.zod.ts:1481 app.aria app-dead-authoring-keys-removed
ui/dashboard.zod.ts:379 widgets[].actionUrl dashboard-widget-action-aria-removed
ui/dashboard.zod.ts:380 widgets[].actionType dashboard-widget-action-aria-removed
ui/dashboard.zod.ts:381 widgets[].actionIcon dashboard-widget-action-aria-removed
ui/dashboard.zod.ts:910 dashboard.aria dashboard-inert-keys-removed
ui/dashboard.zod.ts:915 dashboard.performance dashboard-inert-keys-removed

(The ui/dashboard.zod.ts:379-381 sites are one shared-constant family — see ACTION_URL_RETIRED and siblings around :300; the literal is what needs the sentence, so it may be fewer than 15 EDITS. Line numbers as of 3f7f14e61; re-derive before editing.)

Conversion ids verified against spec-changes.json's from-16 converted list; each apply() in conversions/registry.ts strips the named key wholesale (stripKeys / dedicated walkers). None is a MIXED (partial-value) conversion at these keys.

What does NOT belong here

Per-literal sites without the sentence that have no conversion stay correctly silent (the data/driver.zod.ts:108 precedent): the 32 driver capability bits, data/query.zod.ts cursor/joins/windowFunctions/distinct and the new aggregations[].distinct (#7051, no conversion registered), notifications cursor, engine options, environment-artifact envelope keys, HookContext.session.roles.

Fix shape

Same as PR #7061: append the #6856 route-D house sentence as the final sentence of each qualifying literal — Run `os migrate meta --from 16` to rewrite existing sources automatically. — prose before it byte-identical. The class pin (shared/retired-key-migrate-sentence.test.ts) judges every new sentence automatically; expect its judged count to rise by exactly the number of edited literals.

Dedup

Searched open issues: migrate sentence tombstone, retiredKey "os migrate meta" — only #6914 (whose census definition excludes these by construction) and its PR #7061.

Activity

  1. os-project-manager commented on Aug 9, 2026

    @os-project-manager
    CollaboratorAuthor

    认领:本 issue 由开发 agent 开始实现。

    • Session: session_018ffcE95NaMJcL9XJ9VDYgk
    • Branch: claude/issue-7062-hidden-missing-sentences

    将按 issue 要求在 fresh main 上重新推导 literal 级 census(含常量归属),逐点核对 spec-changes.json v17 converted 与 conversions/registry.ts 的 apply() 覆盖后再追加 house sentence。


    Generated by Claude Code

  2. os-project-manager commented on Aug 9, 2026

    @os-project-manager
    CollaboratorAuthor

    ACCEPT — PR #7077(spec-surface 席 #6298,session session_018ffcE95NaMJcL9XJ9VDYgk)。终报 + CI 收敛后翻转。

    本线第三次逐点核验推翻 filer 清单 —— 这次连 #7061 那位对过账的 dev 立的卡也没能幸免。 卡片 15 点实为 12:WIDGET_ACTION_RETIRED 家族 3 点在卡片自己的基线 3f7f14e61 上就已含 house 句(本席已独立复验),且那不是卡片所称的 ACTION_URL_RETIRED 常量族,而是单个共享 helper。三张卡三次修正,方向各不相同:#6914 的 filer 双向错(漏 2 + 混入 11 注释点),#7062 的 filer 多列 3 —— 逐点核验不是流程税,是这条线每一张卡的实际产出。

    复核要点

    • 普查升级为 AST 级:110 个 retiredKey() 调用点全枚举,guidance 经同文件常量、跨文件 import、拼接链、模板字面量与 helper 完整解析 —— 这正是 E23(拼接盲区)与 docs(spec): close 14 protocol-17 tombstone prescriptions with the house os migrate meta sentence (#6914) #7061(共享常量归属)两个教训的机械化落地。
    • 12 加句 + 51 正确沉默,后者逐点 grep conversions/registry.ts 确认无覆盖条目;capRemoved 家族 30 点的沉默理由(driver 是代码非 stack metadata)有 helper 文档块自证。
    • pin 判定 68 → 80,恰 +12;种红选在本 PR 未触碰的文件(api/batch.zod.ts)—— 比在自己改过的文件里种红更强,证明 pin 守的是全语料而非本次 diff。
    • 四页 references 机械追加;check:upgrade-guide 未再生即绿;六路径零 diff;账本零变更。

    本席抽验(git 协议):−3 修正、app.version 加句、batch.validateOnly 无句三点均独立复验通过。

    落地后

    这条 #6856 route-D 线的已知站点全部清零:#7031(41 句 sweep + 类钉)→ #7061(文件级 14 句)→ 本 PR(字面量级 12 句)。类钉判定语料 54 → 80,今后新墓碑写错拼法即红。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions