diff --git a/apps/desktop/src/lib/trpc/routers/changes/status.ts b/apps/desktop/src/lib/trpc/routers/changes/status.ts index 2916e06098b..1b58be237ee 100644 --- a/apps/desktop/src/lib/trpc/routers/changes/status.ts +++ b/apps/desktop/src/lib/trpc/routers/changes/status.ts @@ -25,22 +25,23 @@ export const createStatusRouter = () => { const git = simpleGit(input.worktreePath); const defaultBranch = input.defaultBranch || "main"; + // First, get status (needed for subsequent operations) const status = await git.status(); const parsed = parseGitStatus(status); - const branchComparison = await getBranchComparison(git, defaultBranch); - const trackingStatus = await getTrackingBranchStatus(git); - - await applyNumstatToFiles(git, parsed.staged, [ - "diff", - "--cached", - "--numstat", + // Run independent operations in parallel + const [branchComparison, trackingStatus] = await Promise.all([ + getBranchComparison(git, defaultBranch), + getTrackingBranchStatus(git), + applyNumstatToFiles(git, parsed.staged, [ + "diff", + "--cached", + "--numstat", + ]), + applyNumstatToFiles(git, parsed.unstaged, ["diff", "--numstat"]), + applyUntrackedLineCount(input.worktreePath, parsed.untracked), ]); - await applyNumstatToFiles(git, parsed.unstaged, ["diff", "--numstat"]); - - await applyUntrackedLineCount(input.worktreePath, parsed.untracked); - return { branch: parsed.branch, defaultBranch,