fix(dashboard): drop residual terminated-state refs lost in merger autostash

Recovers cleanups from stash@{2}/stash@{3} (FN-3530 merger autostashes)
that the merger never restored: 4 dead `[data-state="terminated"]`
selectors in AgentListModal.css, 3 CSS-class assertions in
agent-css-classes.test.ts targeting classes the runtime no longer emits,
and a `state: "terminated"` fixture in routes-agents.test.ts now flipped
to `paused` so the "invalid state transitions" test exercises a real
rejection (paused→paused is not in AGENT_VALID_TRANSITIONS).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-05 23:56:04 -07:00
parent 89fd7a9bf1
commit 24017b8353
4 changed files with 9 additions and 11 deletions

View File

@@ -0,0 +1,5 @@
---
"@fusion/dashboard": patch
---
Drop residual `terminated` AgentState references that the merger autostash dropped during FN-3530 cleanup: `[data-state="terminated"]` selectors in `AgentListModal.css`, `--terminated` CSS-class assertions in `agent-css-classes.test.ts`, and a `state: "terminated"` test fixture in `routes-agents.test.ts` (now `paused`, which is correctly rejected as paused→paused is not a valid transition).

View File

@@ -112,7 +112,6 @@ describe("Agent CSS classes", () => {
expect(hasClass(".agent-board-card--running")).toBe(true);
expect(hasClass(".agent-board-card--paused")).toBe(true);
expect(hasClass(".agent-board-card--error")).toBe(true);
expect(hasClass(".agent-board-card--terminated")).toBe(true);
expect(hasClass(".agent-board-header")).toBe(true);
expect(hasClass(".agent-board-icon")).toBe(true);
expect(hasClass(".agent-board-badge")).toBe(true);
@@ -121,7 +120,6 @@ describe("Agent CSS classes", () => {
expect(hasClass(".agent-badge--running")).toBe(true);
expect(hasClass(".agent-badge--paused")).toBe(true);
expect(hasClass(".agent-badge--error")).toBe(true);
expect(hasClass(".agent-badge--terminated")).toBe(true);
expect(hasClass(".agent-board-health")).toBe(true);
expect(hasClass(".agent-board-name")).toBe(true);
expect(hasClass(".agent-board-id")).toBe(true);
@@ -134,7 +132,6 @@ describe("Agent CSS classes", () => {
expect(hasClass(".agent-card--running")).toBe(true);
expect(hasClass(".agent-card--paused")).toBe(true);
expect(hasClass(".agent-card--error")).toBe(true);
expect(hasClass(".agent-card--terminated")).toBe(true);
expect(hasClass(".agent-card-header")).toBe(true);
expect(hasClass(".agent-card-body")).toBe(true);
expect(hasClass(".agent-card-actions")).toBe(true);

View File

@@ -160,8 +160,7 @@
border-top-color: var(--state-active-border);
}
.agent-list-modal .agent-board-card[data-state="paused"] { border-top-color: var(--state-paused-border); }
.agent-list-modal .agent-board-card[data-state="error"],
.agent-list-modal .agent-board-card[data-state="terminated"] { border-top-color: var(--state-error-border); }
.agent-list-modal .agent-board-card[data-state="error"] { border-top-color: var(--state-error-border); }
.agent-list-modal .agent-board-badge[data-state="idle"],
.agent-list-modal .agent-list-state-badge[data-state="idle"] {
@@ -187,9 +186,7 @@
}
.agent-list-modal .agent-board-badge[data-state="error"],
.agent-list-modal .agent-board-badge[data-state="terminated"],
.agent-list-modal .agent-list-state-badge[data-state="error"],
.agent-list-modal .agent-list-state-badge[data-state="terminated"] {
.agent-list-modal .agent-list-state-badge[data-state="error"] {
background: var(--state-error-bg);
color: var(--state-error-text);
border: 1px solid var(--state-error-border);
@@ -222,8 +219,7 @@
border-left-color: var(--state-active-border);
}
.agent-list-modal .agent-card[data-state="paused"] { border-left-color: var(--state-paused-border); }
.agent-list-modal .agent-card[data-state="error"],
.agent-list-modal .agent-card[data-state="terminated"] { border-left-color: var(--state-error-border); }
.agent-list-modal .agent-card[data-state="error"] { border-left-color: var(--state-error-border); }
.spin {
animation: spin 1s linear infinite;

View File

@@ -2034,7 +2034,7 @@ describe("Agent create/update routes", () => {
buildAgentApp(),
"POST",
`/api/agents/${agentId}/state`,
JSON.stringify({ state: "terminated" }),
JSON.stringify({ state: "paused" }),
{ "Content-Type": "application/json" },
);