Skip to content

v0.0.53 — maxPrs caps PR packaging, never how much work a run does

Choose a tag to compare

@sebyx07 sebyx07 released this 25 Jul 20:14
· 22 commits to main since this release

Fixed

maxPrs defaulted to 5 and was injected into every Planner prompt as a budget, while the Planner's guidance argued only against splitting and never required the groups to span the goal. The result: aitm start "do full implementation" on a greenfield repo planned one PR group covering the first component and silently dropped the rest. Nothing re-plans the remainder, so what was left out was never built — and the run reported success.

  • maxPrs now defaults to unbounded. The Planner sizes the plan to the goal. --max-prs 0 / AITM_MAX_PRS=0 are explicit unbounded.
  • The maxPrs: prompt line is injected only when you set a cap, so an unbounded run never sees a PR budget to plan to.
  • Coverage invariant added to the Planner prompt: the groups must together deliver the whole goal; a plan implementing a subset is invalid.
  • An over-cap plan is now rejected with an actionable error, not truncated into the first N groups plus a remainder: task no Worker ever executes. capGroups() and its dangling-dep remapping are deleted.

A count cap now shapes packaging only — never total work, which matches how step limits and subagent fan-out already behave. Bound a run with maxCostUsd / maxTotalTokens.

Compatibility: state files written by older versions still parse (maxPrs accepts a number or null).

Full diff: #321