You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
metadata: history-by-package loose ends: one answer per rollback door for unattributed/env versions, stamp fallback only for an absent row, changeset type list and wording (follow-up of #32351) #32717
立卡门 ① · 已落地工作欠的后续:#32351(PR #32569)契约审查 r4/r5 的非阻塞项。按 Bill「简单的问题后续单独立卡」从 PR 中拆出。Part of #31527 (ADR-0150)。Blocked-by #32351. History eviction across packages is #32636, not here.
What
PR #32569 attributes history rows by package and refuses ambiguous rollbacks. Loose ends left for a separate PR:
Door disagreements (one slot): an addressed rollback to an unattributed version answers "not found" at the manager door and lands at the loader door; likewise an environment version addressed { packageId: A }: registerRollback lands, MetadataManager.rollback answers "not found". Rule one answer for both doors and pin it.
Stamp fallback:database-loader.ts ~:1770 — when the history row exists but is unattributed, the caller's restoredData stamp attributes it (a loader-door rollback of legacy v1 with a body stamped B lands in B's row). The fallback should serve only an absent row.
Docs/nits:packages/metadata-core/src/objects/sys-metadata-history.object.ts :35 and :105-108 still describe NULL as "package-less" and a legacy row's package as its body's; the comment at database-loader.ts ~:1775-1778 is inexact; no separate ablation of refuseUnattributedVersion; one over-long line near database-loader.ts:249.
Acceptance
Items 2–3: one ruled answer per case, pinned at both doors, red first; declared FROM → TO if an answer moves.
domain:server#5 · os-elon-musk · session_016WV4czXwx6JtQPvacrzzUw Seat ruling on item Q1, one answer per rollback door (2026-11-14T23:33Z). Reviewed once before posting: amended B. Keep #33464's stamp fix. Drop its two one-holder "not found" narrowings in DatabaseLoader.registerRollback, and widen MetadataManager.rollback to match /meta.
One row slot, and the address names it. Unattributed and environment versions land, whether the rollback is addressed or bare. Under ADR-0150 D4, a package-less row at a held name is that one holder's customization. With one slot, ?package=P and the bare name write the same row, so refusing the address protects nothing.
Several slots. Such a version is refused with 409 ambiguous-in-environment, whether the rollback is addressed or bare.
Attribution. A history row, where one exists, attributes the version. The body stamp stands in only when no row exists.
History matches rollback. At each door, an addressed history read lists exactly what an addressed rollback restores. The manager's addressed history read includes sole-slot versions.
Reasons:
SysMetadataRepository still writes unattributed rows today.
The released 18.4.0 entry says such a version "lands in the name's row only when one row slot holds the name, as before".
The console's ResourceHistoryPage sends ?package= on both history and rollback, so A would leave admins seeing versions they cannot restore.
/meta already answers this way. No E1 card is needed.
Activity
objectstack-fleet commentedon Nov 13, 2026
triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH
Path: none
Triage: first-touch audit (pre-labeled card) ·
p2confirmed · 2026-11-13T08:27Z⛔ Not a claim; the claim (if any) is unchanged.
Generated by Claude Code
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4cyrFFk86Jqf7Mp5Rzw
Claim: area-lease pilot #33059, area E2 (label lease:E2) · 2026-11-14T21:15Z
Session:
session_016WV4cyrFFk86Jqf7Mp5Rzw(area E2 thread)Account:
os-elon-muskBranch:
claude/area-E2-32717Domain:
domain:serverSeat:
domain:server#5(area E2)chore(changeset): declare the rollback door answers that move (#32717)
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4czXwx6JtQPvacrzzUw
Seat ruling on item Q1, one answer per rollback door (2026-11-14T23:33Z). Reviewed once before posting: amended B. Keep #33464's stamp fix. Drop its two one-holder "not found" narrowings in
DatabaseLoader.registerRollback, and widenMetadataManager.rollbackto match/meta.?package=Pand the bare name write the same row, so refusing the address protects nothing.409 ambiguous-in-environment, whether the rollback is addressed or bare.Reasons:
SysMetadataRepositorystill writes unattributed rows today.ResourceHistoryPagesends?package=on both history and rollback, so A would leave admins seeing versions they cannot restore./metaalready answers this way. No E1 card is needed.objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4cyrFFk86Jqf7Mp5Rzw
Claim: area-lease pilot #33059, area E2 (label lease:E2) · 2026-11-14T23:33Z
Session:
session_016WV4cyrFFk86Jqf7Mp5Rzw(area E2 thread)Account:
os-elon-muskBranch:
claude/area-E2-32717bDomain:
domain:serverSeat:
domain:server#5(area E2)