A test suite with no dependencies beyond bash and the Python standard library, run by one command: scripts/test.sh (or: make test) scripts/test.sh --windows [host] adds the PowerShell suite over SSH - tests/static.sh: script syntax, JSON validity, VERSION against the widget manifest and CHANGELOG, providers.json against the kinds, probes and checks the code implements (and ids that would shadow a command), qmllint and shellcheck when installed. - tests/python: unit tests for cm-json.py - providers and the column contract bash depends on, the original three scaffolds byte for byte, every catalogue parser and the cache, session scan/dismiss/repair, rename, defaults, health, the cost guard. - tests/cli: the CLI in a sandbox with its own HOME, CM_ROOT, CLAUDE_CONFIG_DIR and a file-only vault, against fake Ollama, LM Studio, keyed-gateway and proxy servers - preflight, presets, models, doctor, a real switch, sessions, and the key helper under a rename race. - tests/windows: the same idea on a Windows host, with USERPROFILE pointed at a temp folder so the real install is never touched. Also: MIT licence, CHANGELOG.md reconstructed from history, .editorconfig and .gitattributes pinning LF everywhere (what the tree already is), and scripts/bump-version.sh, since the version lives in two files and drifted once before. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
Changelog
All notable changes to claude-mode. Versions follow semver:
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.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,
doctorreads 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 <provider> <name>chooses which presetclaude-mode <provider>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/passwdused 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
apiKeyHelperpath 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.