Skip to content

v0.9.14: a worker's reserved report turn is spent by its own descendants — budget death returns nothing at all #6277

Description

@Hmbown

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

  1. 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.
  2. 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

  • Reproduction: parent spawns a worker with a small token_budget whose task forces it to spawn a descendant; when the pool exhausts, the parent still receives a partial report (not a bare budget error)
  • Unit/integration test over the budget accounting showing the reserve survives descendant spend
  • The mod.rs:9526 description matches the implemented behavior

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingreliabilityReliability, flaky behavior, retries, fallbacks, and robustnesssubagentsSub-agent orchestration, lifecycle, and completion handling

    Projects

    • Status
      Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions