Skip to content

cli: the sub-agent spend pool's documented $2 ceiling is unreachable — every production installer passes None #1849

Description

@macanderson

Problem

crates/stella-cli/src/subagent.rs:169 documents DEFAULT_POOL_LIMIT_USD = 2.0 as the bound that stops 'a model looping on task'. It is dead:

  • install_for_session (:298-309) — the only production installer (command_deck.rs:354, agent.rs:248/734, fleet_cmd.rs:687, subsession.rs:675, agent/resume.rs:86, agent/goal.rs:28/219) — passes pool_limit_usd: None, and BudgetGuard::new(mode, None, None) is unlimited (budget.rs:155-168).
  • SessionSubAgents::with_pool_limit (:257-263) replaces the guard wholesale, so even the constant's own path discards any prior mode.
  • Children compound it: SubAgentSpec::default().budget_usd = None and carve(None, None) yields ceiling: None (budget.rs:373-378); install_for_session passes BudgetMode::Observed, so even a limit would only warn.

A session without --budget where the model wedges on delegation runs every child to max_steps with no dollar bound at any layer.

Fix direction

Wire DEFAULT_POOL_LIMIT_USD as the pool default in install_for_session (observed mode: it WARNS at $2, per the standing 'degradation warns, never disables' policy), overridable by settings; when the parent session runs an enforced budget, the pool should inherit enforced mode. The decision of warn-vs-stop at the pool ceiling is the maintainer's call — state both options in the PR.

Verify

Witness: install_for_session with no explicit limit yields a pool guard whose ceiling is 2.0 (and mode matches the session's); a child carve against it sees finite headroom.

Constraints

This becomes URGENT once PR #1836 lands: concurrent siblings can carve in parallel (overshoot = up to 7 extra child caps — see the corrected doc in that PR).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Important — next in linearea:clistella-cli — commands, flags, wiring

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions