Skip to content

docs(adr): ADR-0104 的 meta 广告位条款按实际落地修订(#3438 后续) - #4299

Merged
os-zhuang merged 1 commit into
mainfrom
claude/d1-d2-strict-default-flip-vbly5z
Jul 31, 2026
Merged

docs(adr): ADR-0104 的 meta 广告位条款按实际落地修订(#3438 后续)#4299
os-zhuang merged 1 commit into
mainfrom
claude/d1-d2-strict-default-flip-vbly5z

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

修订 ADR-0104 L826–833:os migrate meta「with their gate status」那半句

2026-07-30 addendum 的 rollout 条款写着 os migrate meta --from 16 收尾时列出两个数据迁移「with their gate status」。#4253 落地时有意没做加粗那半,但理由只活在它的提交说明里——决策记录本身仍在向下一个实现者开错误的处方,而且已经骗过一次:#4284 的第一稿就是照这句做的,后来在 PR 里论证撤回。

为什么修订 ADR 而不是补代码

那半句是这份 ADR 自己在两个 addendum 之前刚纠正过的范畴错误:2026-07-27(later)addendum 定了 evidence gate 是 per deployment 的事实(一条 sys_migration 行),而 meta 作用于源码——一份源码树对应零到 N 个部署,所以「its gate status」在 meta 时刻没有所指。main 上的 meta.ts:95 已经把这个区分打印成了字面:Then, against each deployment's database:(复数)。

补代码的变体(best-effort:数据库可达就显示)比不显示更糟:沉默变歧义(连不上库还是门已开?)、输出随环境摇摆破坏 e2e 确定性、只读命令多一条数据库不可达时挂死的路径。状态在数据库本来就打开的地方报告:两条迁移命令写任何东西之前先报,boot 行带活判定——#4284 之后只在成立时发声。

改法

按本 ADR 自己的修订惯例(L428 式带日期 inline 括注,原文保留)在 L833 之后加括注,把论证链写在现场(07-27 原则 → 无所指 → 状态归属何处),读者不必翻两个 PR 的提交说明。

空 changeset 按 adr-0104-attestation-adr-note 先例。Releases nothing。

验证

check:doc-authoring:215 files clean。改动为 1 个 ADR 文件 + 1 个空 changeset。

关联

#3438 收尾时留给「维护者定夺」的那一处;维护者已确认按此方向修订。本体实现见 #4253,缺陷修正见 #4284


Generated by Claude Code

…ly landed (#3438)

The 2026-07-30 addendum's rollout bullet says `os migrate meta --from 16` ends
by naming the two data migrations "with their gate status". The implementation
(#4253) deliberately names them without it, and the reasoning lived only in
that PR's commit message — so the decision record kept prescribing the wrong
half to the next implementer, and already misled one (#4284's first draft
built exactly what the sentence says).

The status half was a category error this ADR had already corrected two
addenda earlier: per the 2026-07-27 addendum the evidence gate is per
DEPLOYMENT, and `meta` acts on SOURCE, which deploys to zero-or-N deployments
— so "its" gate status has no referent at meta time. Best-effort status (show
it when a datastore happens to be reachable) would be worse than none:
silence goes ambiguous, output turns environment-dependent, and the command
gains a hang path on an unreachable database. Status is reported where a
datastore is actually open — each migration command reports before it writes,
and the boot line carries the live verdict, which after #4284 speaks only
where it is true.

Amended in place with the ADR's own convention (the L428-style dated inline
parenthetical), original text preserved. Empty changeset per the
adr-0104-attestation-adr-note precedent. Releases nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016zgA8CQMJeJbFEjnbib1Uv
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 31, 2026 4:42am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tooling size/s labels Jul 31, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review July 31, 2026 04:55
@os-zhuang
os-zhuang merged commit 38ec8a1 into main Jul 31, 2026
14 checks passed
@os-zhuang
os-zhuang deleted the claude/d1-d2-strict-default-flip-vbly5z branch July 31, 2026 04:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants