Skip to content

direct merge after approve - #94

Merged
danielehrhardt merged 4 commits into
mainfrom
godmode/18-direct-merge-after-approve
Oct 6, 2026
Merged

danielehrhardt merged 4 commits into
mainfrom
godmode/18-direct-merge-after-approve

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

Clicking Approve on a ticket in review now merges its pull request on GitHub and then moves the ticket to Done. Each workspace also has a new switch, "Merge delivered tickets automatically", that merges an agent's pull request as soon as it's delivered, without asking. Core tests pass, but I couldn't type-check the phone app here.

Approve merges the pull request

  • When the ticket has an open pull request, the button reads Approve & merge and shows "Merging…" while it works. Underneath it says which branch the PR goes into (for example main). This works from the ticket panel, the board's right-click menu and the phone app.
  • It merges with a regular merge commit. If the repository doesn't allow those, it squashes instead (or rebases if only that is allowed).
  • If the merge fails, the ticket stays in review and you get the reason, with a Mark done anyway button. Conflicts, branch rules (required checks or reviews) and a branch that is behind main each get their own message.
  • If the repository uses GitHub's merge queue, the ticket stays in review until GitHub merges it, then moves to Done by itself.
  • Dragging a card to Done, or picking Done in the status menu, still only marks the ticket done and does not merge. Only an explicit Approve merges, so a stray drag can't merge anything.
  • Tickets without a pull request behave as before: Approve marks them done, with Undo.

Auto-merge setting

  • The switch is in Edit workspace, under the folders and repositories, and is off by default.
  • When it's on and an agent delivers a ticket with an open pull request, Godmode merges it and moves the ticket to Done right away. This applies both to the first delivery and to deliveries after a follow-up.
  • If the merge fails, the ticket stays in review with a note saying why, and you get a warning notification.
  • It only applies to repositories on GitHub, and it needs the GitHub CLI (gh) logged in on this Mac.

Checks

  • Type-checking passes for shared, core, desktop, cloud and website.
  • In core, the task tests pass (72 of 72), including new tests for approve and auto-merge.
  • The full core suite had 5 failures. One was mine: the new approve endpoint wasn't on the cloud access list yet, which I fixed. Three passed when re-run with two environment variables from my own session unset. The fifth, a folder-listing test, still fails but has nothing to do with this change.
  • A separate review pass found five problems, and I fixed all of them. The main one: dragging a card to Done would have merged silently.

Screenshots (from a separate local test copy of the app)

  • /Users/danielehrhardt/.godmode/agents/godmode/workspace/task-18/approve-and-merge.png
  • /Users/danielehrhardt/.godmode/agents/godmode/workspace/task-18/merging.png
  • /Users/danielehrhardt/.godmode/agents/godmode/workspace/task-18/merge-failed.png: I pointed the ticket at a repository that doesn't exist, so no real pull request was touched.
  • /Users/danielehrhardt/.godmode/agents/godmode/workspace/task-18/workspace-auto-merge.png

Things to know

  • The phone app couldn't be type-checked because its dependencies aren't installed in this copy. I checked those changes by reading them.
  • If the phone app talks to an older desktop version, Approve there falls back to just marking the ticket done.

There are three commits, authored as you. Main hasn't moved since the branch started, so there's nothing to merge in and no conflicts.


Task #18 · done by Godmode with Godmode Bot

…ts automatically

Approve (task sheet, board menu, drag to Done, phone) merges the ticket's open
pull request with gh before it moves to Done; when merging fails the ticket
stays in review and the reason is shown with a Mark done anyway action.
A new workspace setting merges a delivered ticket's pull request right away.
Dragging a ticket to Done or picking Done in its status menu no longer merges.
A pull request a merge queue takes stays in review until GitHub merges it,
branch-policy errors aren't reported as conflicts, and the watcher and an
approval can't both note the same merge.
…ge-after-approve

# Conflicts:
#	packages/core/src/db/migrations.ts
@danielehrhardt
danielehrhardt merged commit 5acdfa3 into main Oct 6, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant