The whole premise is agents that run for hours, and the thing that actually ends a multi-hour run is mundane: you hit a provider's rate or usage window and the loop dies two hours of progress in. Because Sparra keeps all its state on disk, the fix was within reach. I added opt-in auto-restart. When a model hits a limit, the loop either waits the window out or falls back to a configured cross-provider model, then retries the same round from where it stopped, bounded by hard wait and restart caps so it can never spin forever.
This is the update that made unattended runs feel real rather than aspirational. The same day I also taught the exerciser about macOS apps, driving them through an XCUITest spine instead of the simulator path, so the judge can run a Mac app the way it already runs an iOS one. Resilience and reach are the two things that separate a demo that runs for ten minutes from a harness you can actually walk away from.