From 6afc0143f211153e7a84af8dfb84268b9ad7a825 Mon Sep 17 00:00:00 2001 From: Arul Sharma <31745423+arul28@users.noreply.github.com> Date: Fri, 31 Jul 2026 01:46:52 -0400 Subject: [PATCH 1/2] fix(work): restore grid session indicator --- .../components/terminals/SessionCard.test.tsx | 19 +++++++++++++++++ .../components/terminals/SessionCard.tsx | 21 +++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx b/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx index 9d8ecae77..c5c40e2fd 100644 --- a/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx +++ b/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx @@ -106,6 +106,25 @@ function row(container: HTMLElement): HTMLElement { } describe("SessionCard orchestration identity", () => { + it("shows grid membership immediately left of the status", () => { + const { container } = render( + , + ); + + const indicator = screen.getByLabelText("In the active grid"); + const status = container.querySelector("[data-session-status-slot]"); + expect(indicator).toBeTruthy(); + expect(status).toBeTruthy(); + expect(indicator.nextElementSibling).toBe(status); + }); + it("names the row with its orchestration role for assistive tech", () => { const { container } = render( ); + const gridIndicator = gridBadge ? ( + + + + ) : null; /* COMPACT ROWS ONLY. The full row carries lineage on line 1 now, and two lineage indicators on one row is exactly the duplication this pass removes. @@ -920,6 +935,7 @@ export const SessionCard = React.memo(function SessionCard({ {titleNode} {compactLineageGlyph} + {gridIndicator} {statusSlot} ) : ( @@ -935,6 +951,7 @@ export const SessionCard = React.memo(function SessionCard({ {part} ))} + {gridIndicator} {statusSlot} From 345f195e8f65686803660a29a422dfbb7654d267 Mon Sep 17 00:00:00 2001 From: Arul Sharma <31745423+arul28@users.noreply.github.com> Date: Fri, 31 Jul 2026 03:41:42 -0400 Subject: [PATCH 2/2] fix(work): expose grid indicator semantics --- .../src/renderer/components/terminals/SessionCard.test.tsx | 2 +- apps/desktop/src/renderer/components/terminals/SessionCard.tsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx b/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx index c5c40e2fd..4a137db34 100644 --- a/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx +++ b/apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx @@ -118,7 +118,7 @@ describe("SessionCard orchestration identity", () => { />, ); - const indicator = screen.getByLabelText("In the active grid"); + const indicator = screen.getByRole("img", { name: "In the active grid" }); const status = container.querySelector("[data-session-status-slot]"); expect(indicator).toBeTruthy(); expect(status).toBeTruthy(); diff --git a/apps/desktop/src/renderer/components/terminals/SessionCard.tsx b/apps/desktop/src/renderer/components/terminals/SessionCard.tsx index 613bdb1f3..ad17a56b7 100644 --- a/apps/desktop/src/renderer/components/terminals/SessionCard.tsx +++ b/apps/desktop/src/renderer/components/terminals/SessionCard.tsx @@ -821,6 +821,7 @@ export const SessionCard = React.memo(function SessionCard({ const gridIndicator = gridBadge ? (