Kavach 0.1.3: Stop one step before the crash and ask the service what it holds.
$ kavach replay null-amount.kavach --bin ./ledger --until 26 --probe …- probe 1
{"type": "withdraw", "account": "bob", "amount": 5000}ledger.rejections{"reason": "insufficient funds"} - probe 2
{"type": "deposit", "account": "bob", "amount": null}panic: nil pointer dereference - probe 3
{"type": "withdraw", "account": "bob", "amount": 10}ledger.entries{"delta": -10, "balance": 1640}
ok. The null deposit brings the same panic back from the held state.New
- Time-travel replay.
kavach replay <fixture> --bin <host> --until <seq>replays the fixture up to and including inputseq, then holds the service there with its state intact. A replay stopped before the recorded failure reportsok, since the failing step never ran. - Probe the held service. Each
--probe <input>is sent to the held service, and Kavach prints what it emitted, or how it failed, without changing the verdict. Probes see the last recorded clock, deterministic random bytes, and config as it stood at the step you stopped on. --holdreads probes from stdin, one per line, until end of file, so you can question the service interactively.kavach_time_travelover MCP. Agents get the same replay, withuntil,held_at_seqand each probe's outputs, decoded as text where they are UTF-8.
Fixed
- Benchmark images keep their
PATHin login shells. Tools installed in the image were missing from the agent's shell. - Invited trial runs no longer ask for a Turnstile check, and the widget's own errors are shown instead of a silent failure.
Benchmark
- A trial mode for the benchmark console. Visitors can run the benchmark with their own OpenRouter key and a Daytona or Modal key, or with an invite code. Keys are held in memory only and scrubbed from every log and response.
- An Events tab shows an attempt's OpenCode event log, and tool calls that are still running show up as steps.
- Attempts in Daytona and Modal follow the event log through each provider's stream.
- Every task sizes its own sandboxes, and an attempt without a patch says why.