feat: Redesign review tab with phase selection, commit navigation, and consolidated toolbar

- Add BranchManager.listCommits() and diffCommit() for commit-level navigation
- Add getPhaseReviewCommits and getCommitDiff tRPC procedures
- New ReviewHeader: consolidated toolbar with phase selector pills, branch info,
  stats, integrated preview controls, and approve/reject actions
- New CommitNav: horizontal commit strip with "All changes" + individual commits,
  each showing hash, message, and change stats
- Slim down ReviewSidebar: file list only with dimming for out-of-scope files
  when viewing a single commit
- ReviewTab orchestrates all pieces in a single bordered card layout
This commit is contained in:
Lukas May
2026-03-05 10:20:43 +01:00
parent f91ed5ab2d
commit c58e0ea77e
12 changed files with 739 additions and 225 deletions

View File

@@ -6,7 +6,7 @@
* a worktree to be checked out.
*/
import type { MergeResult } from './types.js';
import type { MergeResult, BranchCommit } from './types.js';
export interface BranchManager {
/**
@@ -45,4 +45,15 @@ export interface BranchManager {
* since local branches may not include all remote branches.
*/
remoteBranchExists(repoPath: string, branch: string): Promise<boolean>;
/**
* List commits that headBranch has but baseBranch doesn't.
* Used for commit-level navigation in code review.
*/
listCommits(repoPath: string, baseBranch: string, headBranch: string): Promise<BranchCommit[]>;
/**
* Get the raw unified diff for a single commit.
*/
diffCommit(repoPath: string, commitHash: string): Promise<string>;
}