v2.17.0

Released August 14, 2026 · View on GitHub →

A redesigned agent view: a live PLAN → READ → EDIT → VERIFY timeline with changed files and checks in a side rail, a persistent header, and energy/water estimates beside cost. Plus a self-migrating model catalogue.

Added

timeline — PLAN → READ → EDIT → VERIFY → SUMMARY — with the active stage highlighted, a per-stage one-line summary, the current tool target, and a progress bar against the iteration budget. On terminals ≥132 columns a context rail on the right lists the files touched (A/M/D), the verification commands and their pass/fail state, and the project + branch. Terminals below that width get the same timeline without the rail.

branch now sit on a fixed top line instead of only being reachable through /status. Segments drop out progressively as the terminal narrows, so the line never wraps.

show an estimated energy and water range for the session's token count (src/utils/resourceImpact.ts). These are explicitly labelled ranges derived from published inference benchmarks — 0.3–1.5 J/token and 0.27–1.08 L/kWh — never presented as provider measurements.

fetches its free-tier catalogue for your token instead of showing a single hardcoded id, falling back to the built-in entry if the fetch fails.

low · high · max on K3; the global medium tier collapses to high, and the status chip shows the level the model will actually run.

Changed

- New Qwen Token Plan provider (qwen-token-plan) for sk-sp-… subscription keys, defaulting to qwen3.8-max-preview. - Qwen's hosted line moves to 3.5–3.8: qwen3.8-max-preview, qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.6-flash, qwen3.5-plus — replacing the qwen3-coder-* aliases. - Kimi K3 consolidates to a single kimi-k3 id on the pay-per-use endpoints (the -code, -code-highspeed and -thinking splits are gone); the Kimi Code subscription keeps k3 / k3-256k. - Gemini 3.5 / 3.6 Flash (plus 3.5 Flash Lite) replace the 3.1 Flash entries. - OpenRouter now defaults to openrouter/auto. - Context-window and pricing tables were refreshed in lockstep, and providers.test.ts now enforces that every curated model has both a context entry and a pricing row (or a documented exemption).

Grok grok-code-fast-1 and grok-4-fast-reasoning aliases, the Kimi K3 variants, GLM-5 / 5.1 and the qwen3-coder-* ids are rewritten to their supported replacements on first launch — and now also when you load a saved profile with /profile load. Dynamic OpenRouter, Ollama and custom ids are never rewritten.

Fixed

session totals to the append-only dashboard endpoint, so a three-prompt session was stored as 1× + 2× + 3× its real usage; shutdown then reported the whole session once more. Each turn now reports only its own delta, and the shutdown re-report is gone. Dashboard token counts and costs are accurate again.

the resource-impact estimate and the hint shared one slot and the estimate always won. The hint now owns the right edge and the estimate uses whatever gap is left. The reasoning-effort chip is shown in the wide footer too.

name was long enough to need truncating — the truncation budget didn't account for the separator and label, so the segment always failed its own fit check.

and broke the divider: width budgeting measured String.length while the screen advances by display columns.

startup; the header branch is resolved on first use and re-read after an agent run, so it no longer goes stale when the agent switches branches.

Downloads

Install with npm install -g codeep@2.17.0 or brew install vladoivankovic/codeep/codeep.