You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Put a ceiling on what a stage can spend, and say which engine answered
Work item V1 of the M3 plan: spend safety first, before any more surface area.
Every engine call now carries --max-budget-usd from a new stageMaxBudgetUsd
setting, default 15 USD-equivalent. The flag was already plumbed through the
command builder and nothing had ever set it, so a runaway stage was bounded by
nothing at all. Per call rather than per review, because that is what the CLI
flag means. Zero disables it, which is a choice someone makes on purpose
rather than a default they fall into.
Every run also opens with a note naming the engine binary, the model and the
effort. That comes straight from the incident on this machine: a manual UI
test spent about 0.50 USD-equivalent because TRYSQUARE_CLAUDE_PATH did not
reach the server process, and the only way I noticed was that the token counts
looked like a real model rather than the fake's fixed numbers. A fake-versus-
real mixup should be readable from the run, not deduced afterwards.
Worktrees are now removed when a run settles cancelled or failed, which
nothing did before, so they accumulated. They stay while a run is paused,
interrupted or awaiting confirmation, because those will be read again: the
confirmation screen reads file context from the worktree. Cleanup is best
effort, and a failure to remove becomes a note rather than masking the outcome
that actually matters.
Two smaller defects from the shipped UI slice: the project name linked to
/projects/[id], which is an empty directory and a 404, so it is plain text
until V3 builds that page; and the review page grew its activity list without
bound, so it keeps the last two hundred lines and leaves the archive to the
event log.
Three mutations checked and all caught: dropping the budget pass-through,
keeping worktrees on cancel, and never writing the engine note.
0 commit comments