You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feature]: Check that the target agent is runnable before claiming a Task #156
Refuse to start a Task whose target agent is not runnable on this host, before the Task is claimed. Today start, run, resume, the TUI and the Rivus task-start tool hand a Task to its targetAgent without asking discovery; a missing or broken agent command fails only when its process starts, after the Task was claimed and moved to 执行中.
Proposed Solution
Check the target agent's discovery status in TaskStartService, before the claim, through one discovery-id map shared with init (claude-code → claude, codex → codex). When the agent is not runnable, refuse with its id, status and evidence summary and leave the Task Backend unchanged. Skip agents discovery does not know.
Blocked on: how fresh discovery must be before a start: probe on every start, once per process, or a TTL cache with manual refresh. Version probes add start latency, so this must be decided first. No part ships usefully without it: the shared id map (plan Task 1) is only a refactor until the check exists.
Acceptance Criteria
A Task targeting a runnable agent starts as today.
A Task targeting a missing agent is refused before the claim: non-zero exit with the agent id, status and evidence; status and claim fields unchanged.
An agent whose command has no discovery provider is not blocked.
The check reads no config file contents and starts no agent session; task-start maps a refusal to a stable error without host paths.
Activity
PerfectPan commentedon Oct 18, 2026
Related, not blocking (from section 7 of the retired plan, marked "Decide independently of this plan"):
config_paths/mcp_config_pathsin the discovery JSON become objects withexists(this would change itsschema_version).missingand the start is refused.