Skip to content

PR review workflow, commit history view, and diff tooling upgrades - #57

Merged
Raeedzz merged 9 commits into
mainfrom
Raeedzz/diff-syntax-colors
Jul 6, 2026
Merged

PR review workflow, commit history view, and diff tooling upgrades#57
Raeedzz merged 9 commits into
mainfrom
Raeedzz/diff-syntax-colors

Conversation

@Raeedzz

@Raeedzz Raeedzz commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add a full "PRs" right-panel tab: list open PRs, view PR diffs, checkout a PR into the worktree (with automatic stash/restore), and merge with conflict resolution handed off to an agent (pr_list, pr_diff, pr_checkout, pr_checkout_return in src-tauri/src/pr.rs, src/git/PrsView.tsx, src/git/PrDiffView.tsx, src/git/conflictAgent.ts).
  • Add a commit history view with a rendered commit graph and per-commit detail panel (src/git/HistoryView.tsx, src/git/history-graph.ts, src/git/CommitDetailView.tsx).
  • Add "Ask" and "Fix" workflows on diff hunks so changes can be explained or auto-fixed inline (src/git/DiffAsk.tsx, src/git/DiffFix.tsx).
  • Add a customizable "New worktree" dialog (name, color, icon) (src/shell/CreateWorktreeDialog.tsx).
  • Extract app state into a standalone reducer with tests, shrinking AppState.tsx substantially (src/state/reducer.ts, src/state/reducer.test.ts).
  • Rework syntax/diff coloring (variables, properties, functions), icon set (icons.tsicons.tsx), and design tokens (src/design/cm6-theme.ts, src/design/icons.tsx, src/git/diff-highlight.tsx, src/design/tokens.css).
  • Overhaul terminal input/selection handling: composing-IME detection, alt-screen scroll glue via content matching, and drag-to-select primitives (src/terminal/inputModeDecision.ts, src/lib/pointerDrag.tsx, src/lib/dragPoint.ts, native warpui selection/window changes).
  • Slim tab bars to single-line labels and add spacing below the diff "Fix N changes" bar.
  • Add a browser skill for driving the in-pane headless Chrome daemon.

Why

These changes round out the git-centric workflow inside the app: reviewing and merging PRs, browsing commit history, and asking/fixing diffs no longer require dropping out to a terminal or GitHub in the browser. The terminal and state-management work fixes long-standing input/selection glitches and pays down complexity in AppState.tsx ahead of further feature work.

Test plan

  • bun test (reducer, agentActivityStore, DiffFix, history-graph, inputModeDecision, dragPoint suites)
  • cargo test in src-tauri (PR list/diff/checkout/return commands, stash matching)
  • Manually verify: open a PR from the PRs tab, check it out, resolve a conflict, and merge
  • Manually verify: browse commit history, open a commit's detail view
  • Manually verify: Ask/Fix a diff hunk end-to-end
  • Manually verify: create a worktree via the new dialog with custom name/color/icon
  • Manually verify: terminal selection/IME composition behave correctly in an alt-screen app (e.g. vim)

Raeedzz added 9 commits July 1, 2026 16:50
Editor theme, tokens, and commit diff highlighter previously
rendered all identifiers in near-white text; now variables/properties
get a soft light-blue and functions/calls get a warm gold, shared
via new --syntax-* CSS tokens.
Replace the wheel-count-based `term_native_selection_scrolled` command
with `detect_scroll_shift`, which diffs consecutive grid snapshots by
row text to measure the actual scroll offset and re-glues the active
selection accordingly. This tracks apps (vim, less, htop) that scroll
more than one row per wheel notch, where the old heuristic drifted.
Lets users attach change requests to individual diff hunks and send them as one composed prompt to the worktree's agent terminal.
- Drop the tab subtitle/summary line and shrink tab heights
  (36→30px strip, 32→26px MainColumn tabs, 28→24px RightPanel tabs).
…r truncated diff shown in the prompt), so I have enough context. Providing the commit message based on the diff I already saw.

Add 3-pane main-column split support to warp_term

Extend PANES from 2 to 3 slots (main, side, main2) so a main-column
split renders both halves natively, and clip wide alt-screen grids
to their pane's width so full-width TUIs stop bleeding into
neighboring React panels.
Replace ⌘N's auto-created landmark-named worktree with a dialog for
choosing the name, sidebar color, and icon before creation.
Lift the floating fix bar off the panel's bottom edge using --space-4.
Registers gh CLI-backed PR listing/diff/checkout in the backend, with
tagged auto-stash/restore around checkout so uncommitted work is
never lost.
Introduces pr_review_enter/pr_review_restore to stage a PR's diff via
merge-base soft-reset so it renders in the normal changes UI, and adds
a self-review guard preventing pr_checkout from clobbering the
worktree's own branch.
@Raeedzz
Raeedzz merged commit b2b1db1 into main Jul 6, 2026
1 check 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