Skip to content

feat(desktop): add a merge button and trim the thread panel and header - #3792

Merged
LHagfoss merged 4 commits into
mainfrom
feat/desktop-thread-panel-cleanup
Nov 15, 2026
Merged

LHagfoss merged 4 commits into
mainfrom
feat/desktop-thread-panel-cleanup

Conversation

@LHagfoss

Copy link
Copy Markdown
Owner

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:

    • Merge once checks passed.
    • Merge when checks pass while they run.
    • A disabled "N checks failed" when one failed.
    • Nothing for a draft or a merged PR.

    The first press shows "Confirm merge?" and the second merges. It calls _rustcode/pulls/merge, the same engine path merge_when_green uses (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.

@github-actions github-actions Bot added the feature New feature or request label Nov 15, 2026
@LHagfoss
LHagfoss merged commit f570f2d into main Nov 15, 2026
9 checks passed
@LHagfoss
LHagfoss deleted the feat/desktop-thread-panel-cleanup branch November 15, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant