fix(KB-181): preserve active-agent glow during soft-pause

- Replace combined engineStopped prop with globalPaused to decouple hard stop from soft pause
- Thread globalPaused through Board, Column, WorktreeGroup, and TaskCard components
- Active-agent glow now only suppressed on hard pause (globalPaused), not soft pause (enginePaused)
- Update tests to verify soft-pause preserves glow and hard-pause suppresses it
- Add changeset for patch release
This commit is contained in:
Dustin Byrne
2026-03-28 17:26:49 -04:00
parent 6ff64597d8
commit acb246a659
8 changed files with 46 additions and 32 deletions

View File

@@ -27,10 +27,10 @@ interface TaskCardProps {
queued?: boolean;
onOpenDetail: (task: TaskDetail) => void;
addToast: (message: string, type?: ToastType) => void;
engineStopped?: boolean;
globalPaused?: boolean;
}
export function TaskCard({ task, queued, onOpenDetail, addToast, engineStopped }: TaskCardProps) {
export function TaskCard({ task, queued, onOpenDetail, addToast, globalPaused }: TaskCardProps) {
const [dragging, setDragging] = useState(false);
const [fileDragOver, setFileDragOver] = useState(false);
@@ -91,7 +91,7 @@ export function TaskCard({ task, queued, onOpenDetail, addToast, engineStopped }
const isFailed = task.status === "failed";
const isPaused = task.paused === true;
const isAgentActive = !engineStopped && !queued && !isFailed && !isPaused && (task.column === "in-progress" || ACTIVE_STATUSES.has(task.status as string));
const isAgentActive = !globalPaused && !queued && !isFailed && !isPaused && (task.column === "in-progress" || ACTIVE_STATUSES.has(task.status as string));
const isDraggable = !queued && !isPaused;
const cardClass = `card${dragging ? " dragging" : ""}${queued ? " queued" : ""}${isAgentActive ? " agent-active" : ""}${isFailed ? " failed" : ""}${isPaused ? " paused" : ""}${fileDragOver ? " file-drop-target" : ""}`;