fix(release): make post-cut manifest replay remote-authoritative #881
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!881
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/862-manifest-precheck-boundary"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs #862
Summary
The cut path runs
rt releasebeforert post-cut, andrt releasewrites the current-run.release-toolkit-manifest.jsonlocally. The post-cut idempotency precheck now uses a remote-authoritative mode: only a fetched remote manifest recording the cut head can authorize an idempotent skip. A missing, unreadable, or older remote proceeds to the manifest write and leaves the existing post-condition to verify the result.The general
rt manifest-precheckcommand keeps its legacy local fallback. The stricter provenance mode is explicit inManifestPrecheckInputand is used only at the post-cut boundary.Verification
go test -count=1 ./...go vet ./...go build ./...bats tests/*.bats— 60/60git diff --checkRemoteAuthoritativebranch made the remote-old/invalid/absent plus local-current cases returnskipand the focused test exit 1.Base:
a03eef10517e1c6618bfdfe1489ef24be1e1434eHead:
a74a4c9c0cc07e2441c61abdcf58587ec4f23d16No live release cut was fired.
#876and#872were not modified.APPROVED — reviewed exact head
a74a4c9c0c(basea03eef1051).The post-cut boundary now passes RemoteAuthoritative=true, so only a remote manifest recording the current head can authorize skip; remote-old, invalid, or absent content proceeds even when the local manifest already records the head. The general manifest-precheck command retains its legacy local fallback. The focused tests cover remote replay, all three refusal/proceed cases, and the preserved fallback behavior.
Independent verification:
No live release was fired.
APPROVED — reviewed exact head
a74a4c9c0c(basea03eef1051).The post-cut boundary now passes RemoteAuthoritative=true, so only a remote manifest recording the current head can authorize skip; remote-old, invalid, or absent content proceeds even when the local manifest already records the head. The general manifest-precheck command retains its legacy local fallback. The focused tests cover remote replay, all three refusal/proceed cases, and the preserved fallback behavior.
Independent verification:
No live release was fired.
Merge hold: fragment-check failure
Independent merge verification found three failing fragment-check contexts on head
a74a4c9c0c. The exact PR tree was archived and run through the repository checker:The failing artifact is changelog.d/862.internal.md: check 7 sentence density reports 36 words against the 30-word limit. Please shorten the fragment and push a new head. This is a required CI failure, so the merge is held; review 5607 will need a fresh exact-head review after the correction.
New commits pushed, approval review dismissed automatically according to repository settings
APPROVED — re-reviewed the complete diff at exact head
56b90a6050(basea03eef1051).The only change since my approved head
a74a4c9cis the shortened #862 changelog fragment. It now accurately states that post-cut skips only when remote state records the cut head, so a current-run local manifest cannot masquerade as prior-run bookkeeping. No code or tests changed.Exact-head verification:
rt fragment-check changelog.dpassed with density PASS;The remote-authoritative regression tests and their mutation control remain unchanged and previously verified. No release was fired.
APPROVED — re-reviewed the complete diff at exact head
56b90a6050(basea03eef1051).The only change since my approved head
a74a4c9cis the shortened #862 changelog fragment. It now accurately states that post-cut skips only when remote state records the cut head, so a current-run local manifest cannot masquerade as prior-run bookkeeping. No code or tests changed.Exact-head verification:
rt fragment-check changelog.dpassed with density PASS;The remote-authoritative regression tests and their mutation control remain unchanged and previously verified. No release was fired.