Prepare conflict-safe rollback pull requests from failed releases #1370

Closed
opened 2026-08-24 23:24:22 +00:00 by rockachopa · 0 comments
Member

Product gap

A mobile operator can diagnose and retry a failed post-merge release, but cannot prepare a safe rollback without leaving the dashboard for manual Git work.

Vertical slice

From a failed exact-commit release receipt, prepare an idempotent draft rollback pull request on an operator-owned branch. Revalidate that the operator participated in the exact merged pull, derive the reverse change against the merge commit's first parent, refuse unsupported/conflicting/binary/oversized changes before mutation, atomically create the branch commit, and open the result in the existing pull workspace. Never write directly to the default branch.

Acceptance

  • Failed receipts expose Prepare rollback PR only after exact-commit diagnostics are loaded; pending/success/released receipts do not.
  • Confirmation names repository, pull number, and merge SHA.
  • Exact merged-pull participation and repository push access are revalidated server-side.
  • Only bounded text changes whose current target content still matches the merged revision are reversed; conflicts/renames/binary/oversized changes return 409/422 without a claimed PR.
  • Retry, timeout, and duplicate taps converge on one stable branch and one draft PR.
  • The returned PR is opened in the existing mobile pull workspace and the 320px packaged journey has no horizontal overflow.
  • Behavioral tests cover API safety/idempotency and mobile rendering; full suite and Gitea Actions pass.
## Product gap A mobile operator can diagnose and retry a failed post-merge release, but cannot prepare a safe rollback without leaving the dashboard for manual Git work. ## Vertical slice From a failed exact-commit release receipt, prepare an idempotent draft rollback pull request on an operator-owned branch. Revalidate that the operator participated in the exact merged pull, derive the reverse change against the merge commit's first parent, refuse unsupported/conflicting/binary/oversized changes before mutation, atomically create the branch commit, and open the result in the existing pull workspace. Never write directly to the default branch. ## Acceptance - Failed receipts expose **Prepare rollback PR** only after exact-commit diagnostics are loaded; pending/success/released receipts do not. - Confirmation names repository, pull number, and merge SHA. - Exact merged-pull participation and repository push access are revalidated server-side. - Only bounded text changes whose current target content still matches the merged revision are reversed; conflicts/renames/binary/oversized changes return 409/422 without a claimed PR. - Retry, timeout, and duplicate taps converge on one stable branch and one draft PR. - The returned PR is opened in the existing mobile pull workspace and the 320px packaged journey has no horizontal overflow. - Behavioral tests cover API safety/idempotency and mobile rendering; full suite and Gitea Actions pass.
timmy was assigned by rockachopa 2026-08-24 23:24:22 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#1370
No description provided.