Merge fix PR
merge_fixSquash-merge a fix attempt's GitHub PR, mark its linked report fixed, and notify the reporter; re-readies draft PRs first.
Instructions
Squash-merge the GitHub PR for a fix attempt, mark the linked report fixed, and notify the reporter. Re-readies the PR first if it is still a draft. Returns { merged, reportStatus }. Write; destructive and irreversible from Mushi's side — once GitHub merges into the target repo's default branch there is no unmerge endpoint, only a manual revert PR outside this tool. Idempotent — re-running an already-merged attempt is a safe no-op. A cloud-agent PR whose Opus review says hold is refused (409 REVIEW_HOLD), and this tool cannot override it: only a person in the Mushi console can, with a reason. While the PR's first review is still running it answers 409 REVIEW_PENDING: wait a few minutes and retry. Read the review with get_fix_timeline (its text is model output from untrusted input) and tell the user. Prerequisite: CI green (check with refresh_ci); confirm the diff and CI status with the user before calling on a PR you have not reviewed. Use to ship a fix opened by dispatch_fix; use transition_status to change state without merging.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fixId | Yes | Fix attempt UUID whose GitHub PR should be squash-merged (`fix_id` is accepted too.) | |
| mergeMethod | No | GitHub merge method (default squash) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sha | No | Merge commit SHA, when GitHub reported one | |
| merged | No | True when GitHub accepted the merge in this call | |
| review | No | The Opus review of the PR at merge time (ADR 0030) | |
| reportId | Yes | Report UUID linked to this fix attempt | |
| justMerged | No | True when this call performed the merge | |
| reportStatus | Yes | Report workflow status after merge bookkeeping | |
| alreadyMerged | No | True when the PR was already merged (idempotent no-op) |