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 ? (