Why this matters
agent start promises (tools/subagent/mod.rs:9526): "the worker reserves an allowance for one tools-disabled partial-report turn within those limits and falls back to recorded work when reporting is unavailable." In practice the reserve is computed against the same scope pool the worker's descendants spend from, so by the time a budget-exhausted worker wants its report turn, the reserve is already gone. The most expensive failure mode in the fleet: the parent gets nothing back from 200k–400k measured tokens — no partial result, no summary, not even a clean list of what was read.
Current behavior
- mod.rs:5506 — exhaustion is measured
including descendants, and the same pool funds the reserved report turn.
- Two live deaths today, both with no hand-back report:
agent_f47bc95d (single worker): 209,619 tokens, 12 steps — "No model hand-back report: the bounded report deadline expired", zero workspace changes.
agent_601841f0 (spawned 5 of its own children): shared pool hit 434,546/400,000 across 6 workers — all starved together, zero workspace changes, not even the skeleton of its deliverable.
Desired behavior
- The report-turn reserve is not shareable with descendants: a child's own reporting allowance is held out before descendants can spend, or accounted in a separate bucket the descendant pool cannot draw down.
- On budget death the parent reliably receives the child's recorded-work fallback (files written so far, findings so far) instead of silence.
Acceptance criteria
Related
Why this matters
agentstart promises (tools/subagent/mod.rs:9526): "the worker reserves an allowance for one tools-disabled partial-report turn within those limits and falls back to recorded work when reporting is unavailable." In practice the reserve is computed against the same scope pool the worker's descendants spend from, so by the time a budget-exhausted worker wants its report turn, the reserve is already gone. The most expensive failure mode in the fleet: the parent gets nothing back from 200k–400k measured tokens — no partial result, no summary, not even a clean list of what was read.Current behavior
including descendants, and the same pool funds the reserved report turn.agent_f47bc95d(single worker): 209,619 tokens, 12 steps — "No model hand-back report: the bounded report deadline expired", zero workspace changes.agent_601841f0(spawned 5 of its own children): shared pool hit 434,546/400,000 across 6 workers — all starved together, zero workspace changes, not even the skeleton of its deliverable.Desired behavior
Acceptance criteria
token_budgetwhose task forces it to spawn a descendant; when the pool exhausts, the parent still receives a partial report (not a bare budget error)Related