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>