• v1.1.4 04b17c1508

    evileko released this 2026-08-26 04:15:38 -04:00 | 157 commits to main since this release

    evilcode v1.1.4 — accurate percents, queued prompts, and hardening

    This patch release fixes the display bugs found in day-to-day use and
    completes the codex-review memory-safety item D2.

    Highlights

    Progress figures are now exact

    • The docked Todos widget and the todo card's group headers previously
      showed the model's confidence score as the percent — 4/4 done could read
      94% or 96%. The percent is now computed from item statuses: ●●○○ 1/4 done · 25%, and an all-closed group reads 100% no matter what the
      honest scores say.
    • The context meter rounds to the nearest percent and prefers the
      provider-reported window, so it no longer systematically under-reads.
    • The KV-cache hit rate uses the same rounding.

    Queued prompts wait where they belong

    • Sending a prompt while a turn is running used to draw it in the transcript
      immediately, even though the daemon only delivers it when the turn ends.
      Queued prompts now wait in a strip above the composer and enter the
      transcript when their turn actually starts. Rejected queued inputs (queue
      full) drop off the strip instead of lingering.

    Multi-line composer navigation

    • Up/Down arrows now move the caret between lines of a multi-line prompt
      (column-preserving, clamped to shorter lines). Previously they did nothing
      once the composer had text.

    Cloud Usage widget is Ollama-only

    • The widget now fetches and renders only while an Ollama provider (local or
      cloud) is active — it scrapes the Ollama settings page, which says nothing
      about a Codex, OpenAI-compatible, or mock session.
    • A bare __Secure-session token is base64 and often ends in = padding; it
      was mistaken for a full Cookie: header line, so the request carried no
      usable cookie and the widget said "session expired" even though the session
      was live. Bare tokens are now wrapped correctly (a ; or a cookie-name
      prefix still passes a full header through).

    Argument repairs teach the model

    • Tool arguments repaired by the alias layer (command→cmd, …) were only
      flagged in the UI row, which the model never sees — so a model that emits
      command did it on every call and every row carried the note. The repair is
      now also surfaced in the tool result the model reads, so it adopts the
      canonical names and the repairs stop.

    Session hardening (D2 completed)

    • The daemon's replay ring is byte-bounded (16 MiB budget; the oldest events
      are evicted) in addition to its 4096-event count cap, and Result.Diff is
      capped at 1 MiB separately from model-visible output.

    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 vet ./...
    • Probe suite (go test -tags probe ./probe/...) green, goldens refreshed

    SHA-256 for evilcode-linux-amd64:

    01396e81572c8f2f8ed23c6ed05f54307fabde6b48060c93ec8d05de5a7c88f8
    
    Downloads