diff --git a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts index c3d33e7f08e..a40b6840038 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.test.ts @@ -150,6 +150,27 @@ describe('selectLiveAgentStatusEntriesForWorktree', () => { expect(selectLiveAgentStatusEntriesForWorktree(state, 'wt-1')).toEqual([childEntry]) }) + + it('does not use worktree attribution for a completed row whose tab is gone', () => { + const closedEntry = makeEntry(PANE_KEY_1, 1000, { + state: 'done', + worktreeId: 'wt-1', + tabId: 'tab-1', + agentType: 'pi' + }) + const state = { + tabsByWorktree: { + 'wt-1': [makeTab('tab-live')] + }, + agentStatusByPaneKey: { + [PANE_KEY_1]: closedEntry + }, + migrationUnsupportedByPtyId: {}, + retainedAgentsByPaneKey: {} + } + + expect(selectLiveAgentStatusEntriesForWorktree(state, 'wt-1')).toEqual([]) + }) }) describe('selectRuntimeAgentOrchestrationForWorktree', () => { diff --git a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts index 8fe9290ba9f..567454f45cc 100644 --- a/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts +++ b/src/renderer/src/components/sidebar/worktree-agent-row-selectors.ts @@ -97,7 +97,9 @@ function getLiveEntriesByWorktree(state: WorktreeAgentRowsState): Map