# Changelog All notable changes to claude-mode. Versions follow [semver](https://semver.org): a minor version adds behaviour, a patch fixes it. The version lives in `VERSION` and in the bar widget's `omarchy/smoido.claude-mode/manifest.json`, and `scripts/bump-version.sh` changes both. ## 1.13.0 — 2026-09-15 Maintainability; no change in what the tool does. - **Tests.** `scripts/test.sh` (or `make test`) runs static checks, a Python unit suite for `cm-json.py`, and sandboxed CLI suites against fake Ollama, LM Studio, keyed-gateway and proxy servers. `--windows [host]` adds the Windows suite on a remote host, in a `USERPROFILE` sandbox. - **Docs.** A short README; the detail lives in `docs/` (providers, live sessions, design, bar widget, architecture, development) and `CONTRIBUTING.md`. MIT licence. - **Modules.** The POSIX CLI is split into `linux/lib/*.sh`, the Windows script into `lib\*.ps1`, and the bar panel into one QML file per stage. The installers copy the modules and clear stale ones. - `scripts/bump-version.sh` keeps `VERSION` and the widget manifest in step. - Removed: the Arkylx Index packaging (`linux/bootstrap.sh`, `scripts/build-package.ps1`). - Fixed: the per-project session listing used `awk`, which minimal images lack. ## 1.12.0 — 2026-09-15 - **Providers are data.** Every gateway provider is an entry in `providers.json`: its endpoint, auth, model-list format, pre-switch probe, setup, doctor checks and presentation. The bash CLI, the Windows build and the bar widget all read it, and a provider that reuses existing behaviour needs no code. - **Ollama** mode: local server, one model for every tier, `doctor` reads the context each loaded model actually runs with (Ollama defaults to 4096 tokens and truncates silently). - **Custom** mode: any Anthropic-compatible endpoint; refused until it has an address; a proxy with no model list is not treated as broken. - Preflight refuses a preset with no server address. The Windows build gains the no-address and no-models guards it never had. ## 1.11.0 — 2026-09-15 - Preset editor in the bar panel: edit a tier from a searchable, cached model list; create, duplicate, rename and delete presets. - `claude-mode preset default ` chooses which preset `claude-mode ` picks (`defaults.json`). - `models --preset/--refresh/--json`, and a model cache every fetch keeps fresh. - A tier edit to the active preset re-applies without the running-sessions prompt (it moves neither endpoint nor key). - Preset names are validated (`preset show ../../etc/passwd` used to print it). - The key helper reads the active preset in one open, so renaming it cannot catch a running session mid-lookup. - The panel moved to `KeyboardPanel`: no text field in the old popup could ever receive typing. ## 1.10.0 — 2026-09-14 - Dismiss a broken session (`repair-session --ignore`), and hide broken ones untouched for 7 days; hidden ones are always counted, never silently dropped. - The panel offers Ignore beside Repair, with a collapsed hidden section. ## 1.9.3 — 2026-09-13 - `set-key [ref] [key]` takes the ref it was given, and a key inline; the Windows build builds the SecureString for an inline key too. ## 1.9.2 — 2026-09-12 - Transcript lookup uses the project directory Claude Code actually uses: every non-alphanumeric character becomes a dash, and the physical path is slugged. ## 1.9.1 — 2026-09-12 - Runs on macOS: bash 3.2, arrow keys, honest session reporting without `/proc`. - The `apiKeyHelper` path is quoted, and the helper says why it failed. ## 1.9.0 — 2026-09-01 - One-line installs from the repository (`irm | iex`, `curl | bash`). ## 1.8.x and earlier — 2026-08-30 to 2026-08-31 - Linux port with a theme-aware TUI, switch preflight and session control. - Omarchy bar widget: shows the active provider and switches from the bar. - Asks before switching while sessions are live; repairs sessions a switch broke, keeping the cut turns as Markdown and handing them back. - One preset per mode, with a first-run setup that fills it in.