From 6c213378ef30211d6470788b3a87e468fd3d46d9 Mon Sep 17 00:00:00 2001
From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com>
Date: Wed, 29 Jul 2026 16:59:22 -0700
Subject: [PATCH] fix(dashboard): remove per-worktree status dot from agent
cards
---
.../dashboard-popout/AgentKanbanCard.test.tsx | 4 ++--
.../dashboard-popout/AgentKanbanCard.tsx | 20 -------------------
2 files changed, 2 insertions(+), 22 deletions(-)
diff --git a/src/renderer/src/components/dashboard-popout/AgentKanbanCard.test.tsx b/src/renderer/src/components/dashboard-popout/AgentKanbanCard.test.tsx
index e875c2a919b..24394cae866 100644
--- a/src/renderer/src/components/dashboard-popout/AgentKanbanCard.test.tsx
+++ b/src/renderer/src/components/dashboard-popout/AgentKanbanCard.test.tsx
@@ -144,7 +144,7 @@ describe('AgentKanbanCard', () => {
expect(onOpenTerminal).toHaveBeenCalledTimes(1)
})
- it('labels one subagent and the workspace status accessibly', () => {
+ it('labels one subagent accessibly and never renders a workspace-status dot', () => {
renderCard({
card: card({
workspaceStatusId: 'in-review',
@@ -156,7 +156,7 @@ describe('AgentKanbanCard', () => {
})
expect(screen.getByRole('button', { name: '1 subagent' })).toBeInTheDocument()
- expect(screen.getByRole('img', { name: 'In review' })).toBeInTheDocument()
+ expect(screen.queryByRole('img', { name: 'In review' })).not.toBeInTheDocument()
})
it('tints attention amber and done green, leaving every other state neutral', () => {
diff --git a/src/renderer/src/components/dashboard-popout/AgentKanbanCard.tsx b/src/renderer/src/components/dashboard-popout/AgentKanbanCard.tsx
index e4b18fff93a..556d5f563c1 100644
--- a/src/renderer/src/components/dashboard-popout/AgentKanbanCard.tsx
+++ b/src/renderer/src/components/dashboard-popout/AgentKanbanCard.tsx
@@ -17,7 +17,6 @@ import { cn } from '@/lib/utils'
import type { DashboardCard } from '../../../../shared/dashboard-snapshot'
import type { RepoIcon } from '../../../../shared/repo-icon'
import { translate } from '@/i18n/i18n'
-import { getWorkspaceStatusVisualMeta } from '../sidebar/workspace-status'
/** Compact "started N ago" (the card is glanceable — coarse units are fine). */
function formatStartedAgo(startedAt: number, now: number): string {
@@ -93,9 +92,6 @@ function sameCard(a: DashboardCard, b: DashboardCard): boolean {
a.leafId === b.leafId &&
a.repoName === b.repoName &&
a.worktreeName === b.worktreeName &&
- a.workspaceStatusId === b.workspaceStatusId &&
- a.workspaceStatusLabel === b.workspaceStatusLabel &&
- a.workspaceStatusColor === b.workspaceStatusColor &&
a.hasReview === b.hasReview &&
a.review?.number === b.review?.number &&
a.review?.state === b.review?.state &&
@@ -200,14 +196,6 @@ export const AgentKanbanCard = memo(
}: AgentKanbanCardProps): React.JSX.Element {
useTranslation()
const [subagentsOpen, setSubagentsOpen] = useState(false)
- const workspaceStatusMeta =
- card.workspaceStatusId && card.workspaceStatusLabel
- ? getWorkspaceStatusVisualMeta({
- id: card.workspaceStatusId,
- label: card.workspaceStatusLabel,
- color: card.workspaceStatusColor
- })
- : null
// Why: the two outcomes worth scanning for get a tinted card — amber for
// "answer me", green for "finished, look at it". Everything else stays
// neutral so the tint keeps meaning something.
@@ -322,14 +310,6 @@ export const AgentKanbanCard = memo(
onClick={() => onOpenTerminal(card)}
className="flex w-full items-center gap-2 rounded-md text-left text-[11px] text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none"
>
- {workspaceStatusMeta ? (
-
- ) : null}