Skip to content

v0.36.0 — the evolve UX says what's happening

Choose a tag to compare

@vkurenkov vkurenkov released this 23 Sep 00:03
· 104 commits to main since this release
2105c6c

Three things about running nethackers evolve were measured and fixed.

Switching operators shows its check. Picking a different coding agent re-probes it inside the sandbox — 2.5s for claude, 3.4s for codex, 9.4s for opencode2 — and used to do that in total silence, with the old version line still on screen. It now says ⠹ checking codex in the sandbox… Ns while the model and effort pickers show as loading, and a probe that fails clears them.

Start answers immediately. It used to freeze the UI for 4 seconds typically and 13 at worst. The button now reads Starting… while a step line ticks ✓ Docker · ✓ sandbox · ⠹ preparing run…, every check runs off the UI thread, and a failure keeps you on the form instead of half-opening a monitor. The operator version the form already probed is reused, so Start no longer re-runs two emulated containers to learn it again.

The monitor says what is happening. It opens on Logs, a step list per iteration in plain words, under a line that always says what the run is doing right now. The iteration list names outcomes — improved, no gain, failed test, agent failed, error — and follows the live iteration until you pick another. After the first finished iteration you get · at this pace ~Xm left, computed from this run's own timings. Progress says what each identity is waiting on (waiting for the agent…, smoke test…, 0.23 11/15 games ▲ new best), explains its marks in a legend, and shows BEST OVERALL's candidate so the "or the best average" half of the keep rule is visible. The per-seed detail reads avg, not x̄.

The wording is held to what the run actually did: an errored iteration never reads as a win, a crash reads as a failure rather than as your Stop, a batch cut short shows the games it really played, and the keep-rule bar shown is the one the archive uses. A gh that does not answer within 10 seconds now has its own state instead of being reported as "not logged in", which pointed at the wrong fix.

Also: logging in from inside the TUI now reaches Start (it used to keep the credentials it was built with, so the next run went out offline), and the iterations field defaults to 100.

Sandbox images are re-pinned; the arena rebuild is classified at major 2 — no scoring-path change, so the verified corpus carries over.