rolling-PR metadata recovery: automate close+reopen when a wrong-target mutation has already landed #279
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#279
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Sibling axis of #274
Released as the follow-up tracker per the Set D dispatch (Bosun
b1c3ratified, operator (a)-authorized 2026-07-02). #274's fix in PR #277 — client-side head-ref filter inforgejo_find_pr_by_head— prevents future wrong-target mutations (the workflow won't PATCH a feature PR's title/body ever again). This tracker addresses the complementary axis: recovery when a wrong-target mutation has already landed (the empirical case: tmux-tell PR #711 is currently still showingchore(release): v0.29.0as its title + assembled changelog body, even though its head isi/708-healthscan-adapter-resolverand it merged 2026-07-01 22:43).Problem shape
After a wrong-target PATCH lands:
chore(release): vX.Y.ZPRs, one closed and one open.git log, tags, and release page are all correct — the mutation is Forgejo-PR-object-metadata only.Proposed fix direction — the "auto close+reopen" mechanism
Two dispositions worth considering (issue is deliberately scoped to file-the-tracker-for-discussion, not lock in a mechanism yet):
head.labeldoesn't matchrelease-prep/rolling(defensive-in-depth on top of the client-side filter). If detected mid-flight, either close+reopen the target PR to reset its metadata to Forgejo's git-side truth, OR fetch the PR's original title/body from an audit log + re-PATCH to restore. Which specific mechanism is TBD — hence "close+reopen" as a naming placeholder pending mechanism design.Recommendation — file for triage after the #274 fix in PR #277 lands and gets some empirical bake time. If no further wrong-target mutations happen (client-side filter holds), (A) is fine. If a recovery need surfaces, (B) or (C) become worth building.
Acceptance criteria
Refs
Anchor
Set D 2026-07-02 morning arc close, QM stewardship (alcatraz-infra QM task #658).