-
v1.2.0 — the Live panel Stable
released this
2026-08-26 19:15:37 -04:00 | 135 commits to main since this releaseevilcode v1.2.0 — the Live panel
The headline of this release is the Live panel: the side split is now a real second viewport that shows whole files, scrolls under the mouse, and can follow the agent as it works. The release also restores full context on resumed sessions, makes reasoning effort work for models the name heuristic doesn't recognize, and switches the default theme.
What changed
The Live panel (split view upgrade)
- Whole files, not truncated diffs. Clicking a write/edit block opens the entire file in the side pane with the change marked in the gutter — added lines numbered with
+, deleted lines inserted where they were removed — centered on the first hunk. Unreadable or binary files fall back to the diff alone. - Ctrl+L live view. The split follows the agent: every read/write/edit tool result opens the touched file in the pane — whole file with the diff marked for edits, highlighted source for reads — scrolled to the change, updating as each edit streams in. A green
livetag sits bottom-left while active. Clicking a file or closing the split turns live view off; scrolling the pane away pauses the follow and scrolling back to the top resumes it. Ctrl+L is a true toggle: off → on opens the pane, on → off closes it. - Wheel scrolls the side under the mouse. The wheel drives the pane when the pointer is over it and the transcript when it is not, with the panel scrolling independently instead of truncating. Wheel direction is natural (up = toward the top of the file).
- ctrl+q closes the split. Plain
qis an ordinary letter again and types even while the split is open; ctrl+q closes the split (quick view first, then the panel and live view) regardless of composer state. The pane footer and the help overlay show the bindings. - Numbered read views. Read quick views (and live view's read tracking) show line numbers like the diff views, so a read and an edit of the same file line up.
- No more per-frame lag. The pane body is cached across frames (keyed by content identity, path, diff, mode, width, and palette), so a warm frame costs ~1.2ms instead of ~50ms per wheel notch on a 1000-line file. A guard test pins that the wheel frame cost does not grow with session length.
- Footer stays put. The panel footer stays on the last visible row when the chat overflows, and the pane only auto-updates in live view.
Resumed sessions keep their context
Resuming a session (or viewing it from another window) dropped half of every tool row: bash rows said "bash" with no command or output, and edits had no diff. Tool blocks are now rebuilt from both halves of the conversation — the tool call and its result — so resumed sessions re-render the command, output, target, path, token estimate, and the diff a write/edit produced, including the +/- counts and the whole-file quick view on click. The session picker and start-page previews show real tool rows too.
Reasoning effort works for unrecognized models
Setting a reasoning effort on a model the name heuristic doesn't match (e.g.
deepseek-v4-flash:0731,kimi-k2.6,minimax-m3) was rejected with "reasoning effort not supported" even though the model advertises thinking. The daemon now enriches via the model's/api/showcapability when the heuristic misses, so the offered levels match what the client picker shows. The heuristic still serves matched families without a network call; an unreachable endpoint behaves as before.Default theme: catppuccin-frappe (mauve)
The default theme is now catppuccin-frappe with mauve accents instead of dracula. Syntax highlighting uses chroma's frappe style so code matches the chrome, and the no-op fast path is frappe. Existing configs that state their own theme are untouched.
Install or update
Fresh install:
curl -fsSL https://evileko.dev/evilcode | shExisting installations can update in place:
evilcode updateSource builds require Go 1.26 or newer. This release publishes the Linux/amd64 binary
evilcode-linux-amd64.Verification
go build ./...go test ./internal/...go vet ./...
SHA-256 for
evilcode-linux-amd64:485dbf746bbc435d6220e45053cbc9b2692388e25c61b2d49e3919de184b748fDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Whole files, not truncated diffs. Clicking a write/edit block opens the entire file in the side pane with the change marked in the gutter — added lines numbered with