diff --git a/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx b/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx index 784564cfd3..caed69b2a0 100644 --- a/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx +++ b/src/browser/components/ProjectSidebar/ProjectSidebar.test.tsx @@ -942,6 +942,7 @@ describe("ProjectSidebar multi-project completed-subagent toggles", () => { expect(view.getByTestId(agentItemTestId("parent"))).toBeTruthy(); const groupRow = view.getByTestId("task-group-best-of-demo"); expect(groupRow.textContent).toContain("Best of 3"); + expect(groupRow.textContent).toContain("0/3"); expect(view.queryByTestId(agentItemTestId("child-1"))).toBeNull(); expect(view.queryByTestId(agentItemTestId("child-2"))).toBeNull(); expect(view.queryByTestId(agentItemTestId("child-3"))).toBeNull(); @@ -1287,9 +1288,13 @@ describe("ProjectSidebar multi-project completed-subagent toggles", () => { // One header per run, even though beta-1 interleaves between the alpha tasks. const alphaHeader = view.getByTestId("task-group-wfr_alpha"); - expect(view.getByTestId("task-group-wfr_beta")).toBeTruthy(); + const betaHeader = view.getByTestId("task-group-wfr_beta"); + expect(betaHeader).toBeTruthy(); // The stamped workflow name reaches the header label. expect(alphaHeader.textContent).toContain("review-pipeline"); + // Workflow rows keep the live status text but omit the compact completed/total fraction. + expect(betaHeader.textContent).toContain("1 running"); + expect(betaHeader.textContent).not.toContain("0/1"); // Active workflow groups default to expanded (D6), so members render as // group members without an explicit toggle. diff --git a/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx b/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx index 80b147ac2a..5c9619d598 100644 --- a/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx +++ b/src/browser/components/ProjectSidebar/TaskGroupListItem.tsx @@ -48,6 +48,7 @@ export function TaskGroupListItem(props: TaskGroupListItemProps) { const statusDescriptionId = `task-group-status-${props.groupId}`; const paddingLeft = getSidebarItemPaddingLeft(props.depth); const KindGlyph = props.kind === "workflow" ? Workflow : Layers3; + const showProgressFraction = props.kind !== "workflow"; const statusParts: string[] = []; if (props.runningCount > 0) { statusParts.push(`${props.runningCount} running`); @@ -109,7 +110,12 @@ export function TaskGroupListItem(props: TaskGroupListItemProps) { />
-
+
- - {props.completedCount}/{props.totalCount} - + {showProgressFraction && ( + + {props.completedCount}/{props.totalCount} + + )}