Skip to content

chore(spec): raise MIGRATION_SUPPORT_FLOOR from 10 to 16 — upgrades are supported from protocol 16 onward #19056

Description

@os-steve

维护者裁决,2026-09-18,直接下达给 domain:spec#4 席位(session_01AmH9bKvGoLjiY86Q4Z3og2)。原话:

升级只需要支持从 16.0版本开始。

MIGRATION_SUPPORT_FLOOR(packages/spec/src/migrations/registry.ts:48)由 10 抬到 16

⛔ 本卡由席位代录,⛔ 席位不是裁决人;裁决归维护者,记录在案是为了让它不停留在 chat(结论只在 chat 是半状态)。

口径

PROTOCOL_VERSION = '17.0.0'(kernel/protocol-version.ts:18),@objectstack/spec 包版本 17.4.0,step18 是在研大版本。⇒ 「16.0」读作协议大版本 16,与 MIGRATION_SUPPORT_FLOOR 同单位。⚠️ 该口径已回呈维护者确认,未被否定前按此执行。

变更内容

下限为 16 ⇒ --from 16 必须可用 ⇒ 需要 step17(16→17)与 step18(17→18)。step11step16 成为死代码。

处置
MIGRATION_SUPPORT_FLOOR 1016
step11step16 及其在 MIGRATIONS_BY_MAJOR 的登记 删除
entries/ 下前缀 11. 12. 13. 15. 16. 的条目文件(共 10 个;major 14 为 0) 删除后重新生成,⛔ 不在 <os-generated> 标记间手改
RETIRED_KEYS_BY_MAJOR / RETIRED_DEFS_BY_MAJOR 中 11–16 的行 ⚠️ 先测再决定 —— 见下方未决项
低于 16 的重放夹具 随链删除(migrations.test.ts 从最老受支持大版本重放全链)

⭐ 一个必须先测的未决项,⛔ 不要顺手删

RETIRED_KEYS_BY_MAJOR / RETIRED_DEFS_BY_MAJOR 记录「某个可授权键在哪个大版本被立墓碑」。这两张表是否只服务于迁移链,还是也被 schema 里的 retiredKey() 墓碑或 build-schemas.ts 读作独立事实? 已知 packages/spec/scripts/build-schemas.ts:113 就 import 了这两个符号。

⚠️ registry.ts 头部写明:两张表都按集合消费,一次丢掉条目的改动在任何地方都不报错,被声明的退役就静默失效(#6957,613 行手工冲突的教训)。⇒ 删 11–16 的行之前,必须先证明没有任何读者把它们当作「这个键已退役」的事实来源。测不出来就保留,并在卡上说明。

席位实测的爆炸半径(2026-09-18T14:4xZ,origin/main)

step 行数 registry.ts
step11 61 0.4%
step12 41 0.2%
step13 104 0.6%
step14 27 0.2%
step15 45 0.3%
step16 54 0.3%
step11–16 合计 332 1.9%
step17 4,708 27.5%
step18 12,041 70.2%

entries/ 共 598 个条目文件,按大版本前缀:11=2 · 12=1 · 13=5 · 14=0 · 15=1 · 16=1 · 17=159 · 18=429。

所以:本卡不是一张"瘦身"卡。 文件体积的 98.1% 是 step17+18,而它们必须留下。席位此前向维护者建议「抬下限可显著瘦身」是未经测量的错误建议,在此更正;本卡的价值在支持承诺收窄(6 条永久可重放链不再需要维护、夹具与 CI 重放缩短),⛔ 不在行数。

代价,须写进 changeset

MIGRATION_SUPPORT_FLOOR@objectstack/spec公开导出(migrations/index.ts:23)。抬高后 applyMetaMigrations(doc, N) 对 N ∈ 10..15 抛 MigrationFloorError(chain.ts:73-74)。停在协议 10–15 的用户失去一条命令直升的路径。

Clause-②: yes(收窄已发布面),达档合约复核;changeset @objectstack/spec major 或 minor 由施工方按仓库口径判定,正文写明支持下限变更与受影响版本区间。

已知读者(按符号取,⛔ 非文件名)

migrations/index.ts:23(公开导出)· migrations/chain.ts:18,73,74 · migrations/migrations.test.ts:15,56,387,445,493 · packages/spec/scripts/build-spec-changes.ts:65,194,198,213,214 · packages/spec/scripts/build-upgrade-guide.ts:24,40,60 · packages/spec/scripts/build-schemas.ts:113(读两张退役表)

查重词

MIGRATION_SUPPORT_FLOOR · migration support floor · migrate meta --from · MigrationFloorError · RETIRED_KEYS_BY_MAJOR

⛔ 立卡席不查重(本席只附词);分诊按词查自有列表,零命中须控制词背书。


Generated by Claude Code


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions