diff --git a/.story_kit/work/2_current/83_story_remove_active_work_list_from_agents_panel.md b/.story_kit/work/2_current/83_story_remove_active_work_list_from_agents_panel.md new file mode 100644 index 0000000..2223dfe --- /dev/null +++ b/.story_kit/work/2_current/83_story_remove_active_work_list_from_agents_panel.md @@ -0,0 +1,20 @@ +--- +name: "Remove active work list from Agents panel" +test_plan: approved +--- + +# Story 83: Remove active work list from Agents panel + +## User Story + +As a user, I want the Agents panel to only show the agent roster (with lozenges) and not a separate list of active work items, since the flying lozenges already indicate which agents are working on which stories. + +## Acceptance Criteria + +- [ ] The Agents panel no longer displays the list of active work items / agents-at-work section +- [ ] The agent roster with availability lozenges remains visible and functional +- [ ] Flying lozenge animations continue to work as before + +## Out of Scope + +- TBD diff --git a/frontend/src/components/AgentPanel.test.tsx b/frontend/src/components/AgentPanel.test.tsx index ef4aafa..8dd10b5 100644 --- a/frontend/src/components/AgentPanel.test.tsx +++ b/frontend/src/components/AgentPanel.test.tsx @@ -66,6 +66,7 @@ describe("AgentPanel active work list removed", () => { expect( container.querySelector('[data-testid^="agent-entry-"]'), ).not.toBeInTheDocument(); +<<<<<<< HEAD }); }); @@ -140,73 +141,3 @@ describe("RosterBadge availability state", () => { }); }); -describe("RosterBadge availability state", () => { - beforeAll(() => { - Element.prototype.scrollIntoView = vi.fn(); - }); - - beforeEach(() => { - mockedAgents.getAgentConfig.mockResolvedValue(ROSTER); - mockedAgents.listAgents.mockResolvedValue([]); - }); - - it("shows a green dot for an idle agent", async () => { - render(); - - const dot = await screen.findByTestId("roster-dot-coder-1"); - // JSDOM normalizes #3fb950 to rgb(63, 185, 80) - expect(dot.style.background).toBe("rgb(63, 185, 80)"); - expect(dot.style.animation).toBe(""); - }); - - it("shows green badge styling for an idle agent", async () => { - render(); - - const badge = await screen.findByTestId("roster-badge-coder-1"); - // JSDOM normalizes #3fb95015 to rgba(63, 185, 80, 0.082) and #3fb950 to rgb(63, 185, 80) - expect(badge.style.background).toBe("rgba(63, 185, 80, 0.082)"); - expect(badge.style.color).toBe("rgb(63, 185, 80)"); - }); - - it("shows a blue pulsing dot for an active agent", async () => { - const agentList: AgentInfo[] = [ - { - story_id: "81_active", - agent_name: "coder-1", - status: "running", - session_id: null, - worktree_path: null, - base_branch: null, - }, - ]; - mockedAgents.listAgents.mockResolvedValue(agentList); - - render(); - - const dot = await screen.findByTestId("roster-dot-coder-1"); - // JSDOM normalizes #58a6ff to rgb(88, 166, 255) - expect(dot.style.background).toBe("rgb(88, 166, 255)"); - expect(dot.style.animation).toBe("pulse 1.5s infinite"); - }); - - it("shows blue badge styling for an active agent", async () => { - const agentList: AgentInfo[] = [ - { - story_id: "81_active", - agent_name: "coder-1", - status: "running", - session_id: null, - worktree_path: null, - base_branch: null, - }, - ]; - mockedAgents.listAgents.mockResolvedValue(agentList); - - render(); - - const badge = await screen.findByTestId("roster-badge-coder-1"); - // JSDOM normalizes #58a6ff18 to rgba(88, 166, 255, 0.094) and #58a6ff to rgb(88, 166, 255) - expect(badge.style.background).toBe("rgba(88, 166, 255, 0.094)"); - expect(badge.style.color).toBe("rgb(88, 166, 255)"); - }); -});