Tests, licence, and the tooling to keep the repo consistent
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>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# 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.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 <provider> <name>` chooses which preset
|
||||
`claude-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/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.
|
||||
Reference in New Issue
Block a user