Factory builds now fail for the code's reasons, not the machine's. A machine fault no longer costs a card a try, every failure names its cause, builds get room to finish, and you can read and message a build while it runs.
What's new in v1.17.0
A fault on our side costs the card nothing. When the machine fails a build (an expired sign-in, a refused key, a crashed coding tool, a box too busy to test), the card keeps its try and its budget, and another machine picks it up.
Every failure names its cause.
GET /api/v1/factory/ratings/causeslists each model's failures by cause and keeps machine faults in their ownenv_faultscount, so a machine fault never lowers a model's pass rate.Builds get room to finish. Every builder now runs up to 230 minutes, and a builder that counts steps gets 600. A busy build is never stopped as stalled, and a build that reaches its limit is paused with its work saved.
Read a running build and talk to it.
opvs builds readshows a running build's current command, how long it has run, its last steps and its messages.opvs builds tellsends the build a message, or saves it on the card if the build has ended.
A desk settings change now reports whether the machine applied it, and answers "not applied" with the reason when it did not. On our own factory, failed builds fell from 38 to 22 per 100 in the week after these changes.
Read how a build fails and recovers at https://opvs.ai/docs/factory/fix-a-build and every release note at https://opvs.ai/changelog.