refactor(agents): remove terminated AgentState; collapse to paused/error
Drops "terminated" from AGENT_STATES. The agent lifecycle now runs through idle | active | running | paused | error. paused (carrying a pauseReason) absorbs every former terminated use case — manual stop, heartbeat run termination, spawned-child cleanup. Run status (agentRuns.status) is unchanged: "terminated" stays a valid run-status value. AGENT_VALID_TRANSITIONS allows direct any→idle transitions so resetAgent no longer needs the intermediate hop. Stack-wide: - core/agent-store: lastError clearing + resetAgent simplified. - engine/agent-heartbeat, executor, in-process-runtime: terminated state writes → paused; halt-state listener fires on paused/error. - dashboard: AgentsView/AgentListModal/AgentDetailView lose the Terminated badge/option/state-block; agent pickers no longer filter terminated; agentHealth drops the Terminated branch; routes/state cast widened to the new AgentState union. Tests across core and engine updated to assert paused for AgentState and left "terminated" intact for run-status assertions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
7
.changeset/remove-terminated-agent-state.md
Normal file
7
.changeset/remove-terminated-agent-state.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@runfusion/fusion": minor
|
||||
---
|
||||
|
||||
Remove the `terminated` AgentState. The agent lifecycle now runs through `idle | active | running | paused | error`, with `paused` (carrying a `pauseReason`) absorbing every former `terminated` use case (manual stop, heartbeat run termination, spawned-child cleanup). Run status is unchanged — heartbeat runs still report `terminated` independently of the agent state.
|
||||
|
||||
Migration: existing `agents` rows where `state = 'terminated'` are rewritten to `state = 'paused'` with `pauseReason: 'migrated-from-terminated'` on first store init (`__meta` key `removeTerminatedAgentState`). The dashboard "Terminated" filter option, badge, and CSS rules are gone; "Stop" buttons now transition the agent to `paused`. The `dashboard.READMEs` "Terminated agent filtering" behavior in the agents list is also dropped — paused/error agents are visible by default, and AgentListModal/AgentsView no longer hide them in "All States."
|
||||
Reference in New Issue
Block a user