Skip to content

Commit 38ec8a1

Browse files
os-zhuangclaude
andauthored
docs(adr): ADR-0104's meta advertisement clause records how it actually landed (#3438) (#4299)
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. Claude-Session: https://claude.ai/code/session_016zgA8CQMJeJbFEjnbib1Uv Co-authored-by: Claude <noreply@anthropic.com>
1 parent a922a86 commit 38ec8a1

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
---
3+
4+
docs(adr-0104): amend the upgrade-path advertisement clause to record how it landed (#4253/#4284) — `os migrate meta` names the migrations without gate status, because gate status is per deployment (2026-07-27 addendum) while `meta` acts on source, which deploys to zero-or-N of them; status is reported where a datastore is actually open. Releases nothing.

docs/adr/0104-field-runtime-value-shape-contract.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,15 @@ os migrate value-shapes
830830
and a deployment booting ≥17 with covered fields and no
831831
`adr-0104-value-shapes` row logs one line at startup saying warn-mode is in
832832
effect and which command ends it. A gate nobody is told about is served by
833-
nobody.
833+
nobody. *(Amended as implemented, #4253/#4284: `meta` names the migrations
834+
**without** gate status. The status half was a category error this ADR had
835+
already corrected — per the 2026-07-27 addendum the gate is per
836+
**deployment**, and `meta` acts on **source**, which deploys to zero-or-N of
837+
them, so "its" status has no referent at meta time. Status is reported where
838+
a datastore is actually open: each migration command reports before it
839+
writes, and the boot line carries the live verdict — after #4284, only where
840+
that line is true: counting only fields a write would check, silent when an
841+
env switch already settled the posture.)*
834842

835843
### Fresh datastores attest at creation — both flags
836844

0 commit comments

Comments
 (0)