• v1.1.0 5af6964885

    evileko released this 2026-08-20 07:56:48 -04:00 | 196 commits to main since this release

    evilcode v1.1.0 — persistent daemon, detached TUI, in-TUI start page

    This is the first feature release on the 1.x line. The agent loop, tool surface, and session model are unchanged; what changed is how a session is hosted and how you reach it. The daemon now owns long-running sessions and the TUI is a thin client that attaches, detaches, and re-attaches to them.

    What changed

    A persistent daemon, separate from the TUI

    • The daemon owns the session and any running turn; the TUI is a client that attaches to it. Quitting or detaching a client leaves the agent running — you re-attach later and the turn is still going.
    • Remote attach state is synced to late-joining clients, and hidden prompts are tracked across the client/server protocol, so a client that attaches mid-turn sees the same state as one that was there from the start.
    • evilcode serve hosts sessions on a socket; evilcode attach [session] connects a TUI to one; evilcode run --remote "…" submits into a running daemon. The standalone evilcode / evilcode run -local path still works without a daemon.
    • The protocol display version is shared by both frontends from a single buildinfo package.

    In-TUI start page

    • The resume window is replaced by an in-TUI start page. It lists recent and running sessions with a live preview of the selected session's most recent turns, a real message count, and stable ordering; selection follows the session you launch.
    • The empty greeting packs at the top so the composer hugs it and the rows below stay blank — which is where the slash palette floats when it opens.

    Ctrl+C detaches without stopping the agent

    • Two Ctrl+C presses detach this window from the server: the client quits and the session (and any running turn) keeps going on the daemon. A single press only arms the second; Esc or typing clears it. Esc remains the way to stop a runaway agent.

    TUI and operational polish

    • Opening the slash palette never moves the transcript — the overlay splices in below the composer rather than being forced above it and covering the status line (plan.md §5.2 invariant, guarded by TestPaletteReservesNoLayoutHeight).
    • Probe coverage and terminal goldens were refreshed for the v1.1.0 server/client header, the new start page, and the daemon/TUI separation, so visual regressions stay easy to catch.

    Install or update

    Fresh install:

    curl -fsSL https://evileko.dev/evilcode | sh
    

    Existing installations can update in place:

    evilcode update
    

    Source builds require Go 1.26 or newer. This release publishes the Linux/amd64 binary evilcode-linux-amd64.

    Verification

    • go test ./...
    • go test -race ./...
    • go test -tags probe ./probe/...
    • go vet ./...

    SHA-256 for evilcode-linux-amd64:

    04c645dd8d73686353594baef198dd0adf21dfd1c4583f36acc9905c5ca8b476
    
    Downloads