---
status: open
parent: "[[027-pi-subagents-implementation-spec-task]]"
blocked-by:
  - "[[046-pi-subagents-minimal-tracer-bullet-task]]"
tags:
  - ticket/task/afk
---

# Add cancellation, timeout, and shutdown lifecycle controls

## Question

Extend the supervisor so cancellation, timeouts, process failures, and parent shutdown cleanup use the same tracked lifecycle path without leaking child processes.

## What to build

Make child lifecycle robust after the minimal spawn path exists.
The supervisor should own cancellation, startup and runtime timeout behavior, process failure handling, and shutdown cleanup.
Cancellation must be idempotent and should cooperate with Pi RPC before escalating to process-tree termination.

## Acceptance criteria

- [ ] Cancelling a running subagent is idempotent and reaches `cancelled`.
- [ ] Startup and runtime timeout paths reach `timed_out`.
- [ ] Child process exit before semantic settlement reaches a failure state with diagnostics.
- [ ] Parent session shutdown cancels supervised children.
- [ ] Lifecycle tests cover abort, process close, timeout, and repeated cancel calls.

## Implementation Notes

Use `agent_settled` as semantic completion.
Use process close for resource cleanup after settlement.
