From f75d21f588e44d3646f1bef785fb2a5b28e50c9e Mon Sep 17 00:00:00 2001 From: BlitzOS Upstream Prep Date: Wed, 2 Sep 2026 00:25:16 +0000 Subject: [PATCH] fix(components): render the worktree glyph on SessionList rows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `SessionRowWorktreeIndicator` is exported and rendered by `loro-app-sidebar.tsx` and `sidebar-updated-session-list.tsx`, but not by `SessionList` — although its rows already carry `isWorktree` from the session meta. A worktree session listed by `SessionList` therefore never shows the indicator. Render it in the row's metric cluster, in the same position `loro-app-sidebar.tsx` uses: to the left of the PR icon and to the right of the line diff. The cluster's render condition gains the same term, so a worktree row with no PR and no diff reaches it instead of falling to the time-only branch. The indicator renders null for a falsy `isWorktree`, so nothing changes for a non-worktree row. Model: claude-opus-5[1m] --- packages/components/src/components/session-list.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/components/src/components/session-list.tsx b/packages/components/src/components/session-list.tsx index e1fa43fd7..4da2740fa 100644 --- a/packages/components/src/components/session-list.tsx +++ b/packages/components/src/components/session-list.tsx @@ -83,6 +83,7 @@ import { SessionPrIcon, SessionRowAuthorAvatar, SessionRowLeadingSlot, + SessionRowWorktreeIndicator, SidebarRowArchiveButton, SidebarRowEndSlot, SessionMergeablePill, @@ -811,6 +812,7 @@ const SessionGroupSection = memo(function SessionGroupSection({ prStatus !== 'merged' && prStatus !== 'closed'; const showMergeablePill = isMergeable && !isSelected; + const showWorktreeIcon = session.isWorktree === true; const canArchive = typeof onArchiveSession === 'function'; const showInlineArchive = canArchive && !isMobile; const isChatSession = group.kind === 'chat'; @@ -1001,7 +1003,7 @@ const SessionGroupSection = memo(function SessionGroupSection({ className="text-xs text-muted-foreground" /> - ) : hasPr || hasChanges || showMergeablePill || isMobile ? ( + ) : hasPr || hasChanges || showMergeablePill || showWorktreeIcon || isMobile ? ( -{session.deletedLines} ) : null} + {hasPr ? ( ) : null}