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

Closed

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. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 9, 2026
  2. 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

  3. 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

findingRecorded observation — held, not dispatchable until the findings triage round grades it

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions