Skip to content

Release notes

Release notes land here, newest first. Two things ship on their own cadence, so each release entry says which one it covers.

Platform releases

What changed in the product itself: new surfaces, behavior changes, and anything that alters a documented flow.

Runner releases

What changed in the self-hosted runner: installer, containment, adapters, and the commands you run day to day.

The platform updates itself, so there is nothing to do on your side. Upgrading a runner means re-running its installer, which keeps your pairing and rolls back by itself if a release cannot stay up. See upgrades and uninstall.

The platform has not cut a numbered release yet, so every entry below is a runner release. Platform entries will interleave into the same list.

Self-hosted runners stay online across socket drops, and survive you logging out.

  • Lingering is enabled on Linux. A user service is torn down when your last session ends, so a runner installed over SSH used to stop the moment the shell closed and then read as offline. The installer now enables lingering for your own user, needs no privilege to do it, and reports the result in its final message.
  • A safety-net heartbeat while the socket is up. A runner holding a live control-plane socket now keeps reporting in on a slower cadence rather than stopping entirely, so a socket that closes without warning can no longer leave the runner looking offline across the gap.
  • A wrong-family model fails loudly instead of being swapped. Asking a coding agent for a model from another provider’s family now stops before the tool is launched and says so, rather than quietly running something else. Every result also reports which model actually ran.
  • Adapters are re-advertised on every heartbeat, so what a runner can execute cannot go stale between restarts.

Upgrade by re-running the installer on that machine:

Terminal window
sh install.sh --server https://your-commandchain

A containment fix. Upgrade from 0.1.0, which is withdrawn.

  • The runner grants its own binary, not the directory holding it. A compiled runner used to grant contained agents read and execute on the whole directory its binary lived in. With the binary in ~/.local/bin or directly in your home directory, that pulled neighbouring paths such as ~/.ssh inside the sandbox. The runner’s own re-exec target is now granted as a single file. Verified on real Apple Silicon and Linux hardware: a secret sitting beside the binary is unreadable from inside the boundary, and doctor passes with the binary placed directly in your home directory.
  • macOS installs refuse cleanly when there is no graphical login session, before writing anything, rather than installing a service that cannot be supervised. See install a runner.
  • macOS release binaries are signed, and were executed on real Apple Silicon both natively and under Rosetta.

Verify any download against the release’s SHA256SUMS. The installer does this for you before it runs anything.