red action — because it touches your main repository.
The preview
Opening the dialog firesworktree_merge_preview before anything else. It shows:
merge-tree is the point: TYBA knows whether there will be a conflict without doing the merge, without a checkout, without a stash, without touching your working directory.
The three locks
The Merge into base button stays off, with the reason spelled out, in three cases:There is nothing to merge. Nothing to merge: no commits beyond the base. Or the session is on the base branch itself, and then there is nothing to do.
Strategy
The core accepts a custom message, but the dialog has no field for it. Today the message is always the automatic one.
Confirm
Two clicks. The first arms it (Confirm merge?, the button turns red), the second executes. And what executes is notgit merge:
merge-tree. The commit is created directly and the base moves forward by fast-forward. If the base changed between the preview and the click, --ff-only fails and you see The base branch moved during the merge — nothing changed, try again.
The base is never left half-merged. Either the fast-forward goes through, or nothing happened. There is no intermediate state for you to clean up.
Materialize: when there is a conflict
With the merge locked by a conflict, the dialog offers Resolve with agent. It does the thing backwards — and on purpose:materialize brings the base into the session’s worktree and lets the merge stop at the conflict. The conflicted files stay there, with markers, and TYBA sends the resolution prompt to that session’s agent.
Your checkout is not touched at any point. Once the conflict is resolved in the session, the local merge runs clean.
After the merge
The dialog gives way to Delivered — what about the worktree?:- Keep — the worktree stays, the session stays.
- Remove worktree and close session — two clicks, and it’s gone.
What does not exist
See also
Pull requests
The other way out — the one that goes through the forge.
Worktrees
Where the base was pinned, and what’s left after removing.