- `start_task` and `steer_task` now pre-flight the target's finishing state. If the in-process TaskAgent has already called `finished` (or been cancelled), the steer would race the terminal turn and silently drop. `start_task` handles this transparently: the public entrypoint waits up to `TASK_STEER_CLOSING_WAIT_SECONDS` (default 5s) for the slot to free, then retries the start cleanly — the LLM never sees the intermediate state. Explicit `steer_task` returns `error: "task_closing"` for the LLM to chain `start_task` itself. Personal and corp in-process ships symmetric; BYOA skips the check.
0 commit comments