v0.0.53 — maxPrs caps PR packaging, never how much work a run does
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.
maxPrsnow defaults to unbounded. The Planner sizes the plan to the goal.--max-prs 0/AITM_MAX_PRS=0are 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