Changelog¶
All notable changes to this project are documented here.
The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
No release has been tagged yet, and the package is not on PyPI. Everything below is the
work leading to the first tagged release; pyproject.toml currently reads 1.6.0.
[Unreleased]¶
Added¶
- Claude Code plugin distribution —
claudectlinstalls as a plugin, with its bundled skills generated from the packaged templates and validated in CI. - Multi-repo worktrees board and repo discovery, including submodule and linked-worktree
classification read from the
gitdir:pointer rather than a subprocess. - Model failover proxy with TUI and GUI settings, so a dead model is retried instead of hanging the session.
- Desktop GUI overhaul: dashboard home, always-on account usage, a single 3D background stage, chassis skins and worlds, and an instrument dashboard.
- OmniRoute-aware dashboard and usage views, including free-tier session tagging.
- Resumable saved plans in Plan → Execute.
- Status line, installable per account.
- macOS and Linux support alongside Windows.
Changed¶
- TUI/GUI parity is enforced as a CI gate rather than reviewed by hand; the API reference
in
docs/api.mdis generated from the live route tables and checked for staleness. - Per-turn work moved off the hot path — the status line dispatches before the TUI is imported, and hooks no longer re-stream whole transcripts on every turn.
- Duplicated primitives consolidated into single implementations for transcript reading, process control, JSON storage and session paths.
- Default models updated to Opus 5.
- README rewritten around real screenshots.
Fixed¶
- Status line resolves the active account and project rather than the checkout it was installed from, and reports why an installed status line is not showing.
- Account-scoped settings writes no longer bind the config directory at import time, so every account is written correctly.
- Both local HTTP servers authenticate requests, with a host allowlist, browser fetch-metadata rejection and a per-run secret.
- State writes are atomic, and a file that exists but will not parse is quarantined instead of silently erased.
- Malformed requests return 400 instead of 500, and
cfgdiris validated against known accounts. - Session paths are resolved from the transcript's recorded
cwdrather than decoded from the encoded folder name, which had dropped UNC-path projects entirely. - Packaging: the skills templates glob now matches, so the wheel ships them; a CI job installs the built wheel and reads the data files back out of site-packages.