diff --git a/src/app/projects/[projectId]/sessions/[sessionId]/components/SessionPageMain.tsx b/src/app/projects/[projectId]/sessions/[sessionId]/components/SessionPageMain.tsx
index 83f47b0..65e4763 100644
--- a/src/app/projects/[projectId]/sessions/[sessionId]/components/SessionPageMain.tsx
+++ b/src/app/projects/[projectId]/sessions/[sessionId]/components/SessionPageMain.tsx
@@ -1,6 +1,7 @@
import { Trans } from "@lingui/react";
import { useMutation } from "@tanstack/react-query";
import {
+ GitBranchIcon,
GitCompareIcon,
LoaderIcon,
MenuIcon,
@@ -17,6 +18,7 @@ import { Badge } from "../../../../../../components/ui/badge";
import { honoClient } from "../../../../../../lib/api/client";
import { useProject } from "../../../hooks/useProject";
import { firstUserMessageToTitle } from "../../../services/firstCommandToTitle";
+import { useGitCurrentRevisions } from "../hooks/useGit";
import { useSession } from "../hooks/useSession";
import { useSessionProcess } from "../hooks/useSessionProcess";
import { ConversationList } from "./conversationList/ConversationList";
@@ -39,6 +41,7 @@ export const SessionPageMain: FC<{
const { currentPermissionRequest, isDialogOpen, onPermissionResponse } =
usePermissionRequests();
const [isDiffModalOpen, setIsDiffModalOpen] = useState(false);
+ const { data: revisionsData } = useGitCurrentRevisions(projectId);
const abortTask = useMutation({
mutationFn: async (sessionProcessId: string) => {
@@ -122,6 +125,15 @@ export const SessionPageMain: FC<{
{project.meta.projectPath ?? project.claudeProjectPath}
)}
+ {revisionsData?.success && revisionsData.data.currentBranch && (
+
+
+ {revisionsData.data.currentBranch.name}
+
+ )}
{/* Permission Dialog */}
diff --git a/src/app/projects/[projectId]/sessions/[sessionId]/components/diffModal/DiffModal.tsx b/src/app/projects/[projectId]/sessions/[sessionId]/components/diffModal/DiffModal.tsx
index d4e3e7b..4ae65cd 100644
--- a/src/app/projects/[projectId]/sessions/[sessionId]/components/diffModal/DiffModal.tsx
+++ b/src/app/projects/[projectId]/sessions/[sessionId]/components/diffModal/DiffModal.tsx
@@ -25,8 +25,7 @@ import { cn } from "@/lib/utils";
import {
useCommitAndPush,
useCommitFiles,
- useGitBranches,
- useGitCommits,
+ useGitCurrentRevisions,
useGitDiff,
usePushCommits,
} from "../../hooks/useGit";
@@ -141,6 +140,7 @@ export const DiffModal: FC = ({
projectId,
defaultCompareFrom = "HEAD",
defaultCompareTo = "working",
+ revisionsData: parentRevisionsData,
}) => {
const { i18n } = useLingui();
const commitMessageId = useId();
@@ -158,11 +158,10 @@ export const DiffModal: FC = ({
// Commit section collapse state (default: collapsed)
const [isCommitSectionExpanded, setIsCommitSectionExpanded] = useState(false);
- // API hooks
- const { data: branchesData, isLoading: isLoadingBranches } =
- useGitBranches(projectId);
- const { data: commitsData, isLoading: isLoadingCommits } =
- useGitCommits(projectId);
+ // API hooks - use parent data if available, otherwise fetch
+ const { data: fetchedRevisionsData, isLoading: isLoadingRevisions } =
+ useGitCurrentRevisions(projectId);
+ const revisionsData = parentRevisionsData ?? fetchedRevisionsData;
const {
mutate: getDiff,
data: diffData,
@@ -173,9 +172,9 @@ export const DiffModal: FC = ({
const pushMutation = usePushCommits(projectId);
const commitAndPushMutation = useCommitAndPush(projectId);
- // Transform branches and commits data to GitRef format
+ // Transform revisions data to GitRef format
const gitRefs: GitRef[] =
- branchesData?.success && branchesData.data
+ revisionsData?.success && revisionsData.data
? [
{
name: "working" as const,
@@ -187,21 +186,35 @@ export const DiffModal: FC = ({
type: "commit" as const,
displayName: "HEAD",
},
- ...branchesData.data.map((branch) => ({
- name: `branch:${branch.name}` as const,
- type: "branch" as const,
- displayName: branch.name + (branch.current ? " (current)" : ""),
- sha: branch.commit,
- })),
- // Add commits from current branch
- ...(commitsData?.success && commitsData.data
- ? commitsData.data.map((commit) => ({
- name: `commit:${commit.sha}` as const,
- type: "commit" as const,
- displayName: `${commit.message.substring(0, 50)}${commit.message.length > 50 ? "..." : ""}`,
- sha: commit.sha,
- }))
+ // Add base branch if exists
+ ...(revisionsData.data.baseBranch
+ ? [
+ {
+ name: `branch:${revisionsData.data.baseBranch.name}` as const,
+ type: "branch" as const,
+ displayName: `${revisionsData.data.baseBranch.name} (base)`,
+ sha: revisionsData.data.baseBranch.commit,
+ },
+ ]
: []),
+ // Add current branch if exists
+ ...(revisionsData.data.currentBranch
+ ? [
+ {
+ name: `branch:${revisionsData.data.currentBranch.name}` as const,
+ type: "branch" as const,
+ displayName: `${revisionsData.data.currentBranch.name} (current)`,
+ sha: revisionsData.data.currentBranch.commit,
+ },
+ ]
+ : []),
+ // Add commits from current branch
+ ...revisionsData.data.commits.map((commit) => ({
+ name: `commit:${commit.sha}` as const,
+ type: "commit" as const,
+ displayName: `${commit.message.substring(0, 50)}${commit.message.length > 50 ? "..." : ""}`,
+ sha: commit.sha,
+ })),
]
: [];
@@ -397,10 +410,7 @@ export const DiffModal: FC = ({