fix(release): deduplicate rolling deadlock announcements #1243
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1243
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/1231-deadlock-dedup"
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?
Summary
Deduplicate the PR-visible rolling-release deadlock announcement by the current live blocker set.
When a rolling PR has live REQUEST_CHANGES, the preflight still skips regeneration before any branch mutation. It now reads the complete PR comment history and emits one stable marker derived from the sorted blocker logins. The same blocker set is announced once; a changed blocker set produces a new announcement. A comment-history read failure remains fail-closed.
Refs release-toolkit#1231
Controls
Verification
Exact head:
61aad034f3Base:
6c5f99f3a7Mutation evidence: disabling the marker match makes the duplicate-run arm fail; removing the review-ID fallback makes both no-timestamp ordering arms fail. Both mutations were restored. No release cut or merge action was performed. #1217 remains a separate tracker and is not included here.
Reviewed exact head
61aad034f3(base6c5f99f3a7). APPROVED.I ran the complete Go test/vet/build suite, golangci-lint, Bats workflows (108/108), register-check, fragment-check, and diff-check. Forgejo required contexts are terminal green (28/28 posted; 27 required).
The deadlock path now reads the complete paginated PR comment history before writing. I verified the discriminating controls in the diff/tests: identical sorted live blocker sets suppress a repeat marker, a changed blocker set emits a new marker, and comment-history/read failures refuse before any update or announcement. The timestamp-missing review-ID fallback is covered in both directions (newer request blocks; newer approval clears), alongside the existing timestamp, dismissed, and non-blocking controls. No content or merge blocker found.