███╗   ███╗ ██╗   ██╗  ██████╗ ███████╗ ██╗
████╗ ████║ ╚██╗ ██╔╝ ██╔════╝ ██╔════╝ ██║
██╔████╔██║  ╚████╔╝  ██║      █████╗   ██║
██║╚██╔╝██║   ╚██╔╝   ██║      ██╔══╝   ██║
██║ ╚═╝ ██║    ██║    ╚██████╗ ███████╗ ███████╗
╚═╝     ╚═╝    ╚═╝     ╚═════╝ ╚══════╝ ╚══════╝
Star
Changelog
  • kernel
  • fix

Runs now stop when the work is done

A real invoice chase wrote its answer five minutes in. Everything the task asked for, correct. Then it spent twenty more minutes reading the same policy file again until a time limit killed it.

The run was recorded as failed. The customer would have been told their invoice chase did not work, while the finished answer sat in a sandbox we deleted a moment later.

The problem: the run ended when the agent said it was done. That is not the same question as whether the work is done. So the harness watches the file instead. When the result file is there and matches what the task promised to produce, the run ends. Nothing left to pay for.

Free runs also got faster and cheaper. Free was capped to the cheapest model. That model kept getting one tool call wrong and repeated the same broken call eleven times without ever getting it right. It is 4x cheaper per token and far more expensive per job, because it loops until a ceiling stops it — and the ceiling is where the bill lands. Free now reaches the standard model. Spend is still capped in dollars, which was the control doing this job all along.