Repository navigation
feat(desktop): add a merge button and trim the thread panel and header - #3792
Merged
Merged
Conversation
This was referenced Nov 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The thread header and right panel were built for someone driving git by hand. This pass is for people who let agents commit and open PRs, following the settings cleanup in #3789. The merge button follows T3 Code's single, state-driven button with a confirm-in-place step. The checks list follows Monocode's "headline first, passing ones folded".
Header defaults: status, plan, terminal and the panel toggle. Git ("Create Pull Request"), Project actions (⚡), Pull requests and Changes are hidden by default and stay in Settings › Chat › Thread header buttons. A saved layout is untouched (Reset applies the new default).
Pull request view: Merge. One main button that follows the PR's state:
The first press shows "Confirm merge?" and the second merges. It calls
_rustcode/pulls/merge, the same engine pathmerge_when_greenuses (squash, delete branch, advisory jobs ignored). While it waits, the button reads "Waiting for checks · Cancel", and that state survives closing the panel. The result is a toast.Pull request view: the rest (Open on GitHub, Ask an agent to review, Work on this in a thread, Write a review) moves behind a
…menu. "Review…" becomes "Write a review", which is what it is.Header line:
Open · 1 running · 64 files +9120 −12. The "X wants to merge A into B" sentence moves to a tooltip.Checks: a headline ("2 checks running · 4 passed"). Only checks that need attention are listed, and the passed ones open on click. Skipped matrix jobs no longer show
${{ matrix.name }}in their names.Overview › Properties: drops rows that only state a default: Status when idle, Effort when the harness picks it, Access when it's the app default.
Overview › Deliverables: hidden until there is something to show.
Overview › Execution log: the per-turn bar strip shows from 4 turns up. Unknown stats ("Spent —") are dropped. "N more behind the expand." becomes a "Show all N turns" pill.
Mock: a non-draft PR view with a matrix-template check, and a merge that takes 2.5 s.
Changelog
Merge a pull request from the thread panel (it waits for checks), with a tidier panel and a header that hides the hand-driven git buttons by default.
Testing
bun run check(typecheck, lint, 2796 unit tests, build). New tests:state/pullMerge.test.ts(merge control, check names, headline) and the header defaults. In the mock window: Overview on a thread with no turns, the PR view, and arming, confirming, waiting and merging.