('.coding-status-bar')
+
+ expect(bar).not.toBeNull()
+
+ fireEvent.click(bar!)
+ expect(onOpen).not.toHaveBeenCalled()
+
+ fireEvent.click(screen.getByText('bb/hitbox'))
+ expect(onOpen).toHaveBeenCalledTimes(1)
+
+ fireEvent.click(screen.getByText('12').closest('button')!)
+ expect(onOpen).toHaveBeenCalledTimes(2)
+ })
+})
diff --git a/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx b/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx
index c4b1a56956cf5..ca51f842ff7a6 100644
--- a/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx
+++ b/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx
@@ -215,20 +215,25 @@ export const CodingStatusRow = memo(function CodingStatusRow({
// The base "where am I working" strip is part of the composer surface
// itself, so it inherits the composer's width and clipped top radius.
className="coding-status-bar min-h-7 rounded-t-[inherit] rounded-b-none border-b border-(--ui-stroke-tertiary) px-3.5 py-1.5 hover:bg-transparent"
- // Static branch glyph — never the loading spinner. This row only renders
- // once `status` exists, so a spinner here only ever fired on *refreshes*
- // of an already-loaded repo (window focus, turn settle), reading as an
- // annoying icon "blip" with no first-load value. Refreshes are silent.
- leading={}
- onActivate={onOpen}
>
-
- {branchLabel}
-
+
+
+
+ {branchLabel}
+
{/* Branch actions kebab — same pattern as the session/worktree rows.
ALWAYS laid out; only its opacity flips on hover/focus/open, so
@@ -246,14 +251,6 @@ export const CodingStatusRow = memo(function CodingStatusRow({
- {(status.ahead > 0 || status.behind > 0) && (
-
- {status.ahead > 0 && (
-
- ↑
- {status.ahead}
+ {/* The other half of the hit target: the counts describe what's in the
+ review pane, so clicking them opens it. */}
+ {(status.ahead > 0 || status.behind > 0 || hasLineDelta || untrackedOnly) && (
+
- )}
- {hasLineDelta ? (
-
- ) : untrackedOnly ? (
-
- {s.changed(status.untracked)}
-
- ) : null}
+ {hasLineDelta ? (
+
+ ) : untrackedOnly ? (
+
+ {s.changed(status.untracked)}
+
+ ) : null}
+
+ )}