Skip to content

v0.3.0 — install helper & coverwise 1.2.0 features

Choose a tag to compare

@libraz libraz released this 26 Jun 01:29
· 10 commits to main since this release

Feature release: surfaces the new coverwise 1.2.0 test-design capabilities through the MCP server and adds a one-command install helper for using the server outside the Claude Code plugin. No breaking changes.

What's new

coverwise 1.2.0 features exposed

The MCP input schema now accepts the test-design primitives added upstream in coverwise 1.2.0:

  • Boundary value expansion — declare type ("integer" / "float"), range: [min, max], and optional step on a parameter and the engine injects the off-by-one neighbours (min-1, min, min+1, max-1, max, max+1) instead of you hand-bucketing them.
  • Equivalence classes — tag interchangeable values with a shared class name (e.g. every 4xx is client_error); the result gains a classCoverage block (totalClassTuples / coveredClassTuples / classCoverageRatio) so you can argue "all categories covered" without testing every value.
  • @libraz/coverwise bumped to ^1.2.0.

Install helper (npx)

For using the server outside the Claude Code plugin (Codex CLI, Cursor, Cline, Claude Desktop, …):

npx -y github:libraz/claude-coverwise init        # write the mcpServers.coverwise entry
npx -y github:libraz/claude-coverwise uninstall   # remove it again
  • Interactive writer/remover for Claude Code user (~/.claude.json), project (.mcp.json), and Codex CLI (~/.codex/config.toml) configs.
  • Merges into existing config — preserves every other server and key — and previews the impact ((new) / (merge) / (replace coverwise)) before writing.
  • New bin (claude-coverwise) dispatches init / uninstall / --help / --version, and boots the stdio MCP server with no arguments.

Fixes

  • Structured error payloads (CoverwiseError) now keep their human-readable message (and detail). They were previously dropped because Error.message is non-enumerable and got stripped by JSON.stringify. This is more visible in 1.2.0, where malformed constraint syntax is now a hard CONSTRAINT_ERROR rather than a warning.
  • CI: synced the bin entry into yarn.lock (the --immutable install failed without it) and migrated the JS actions onto the Node 24 runtime (actions/checkout v5, volta-cli/action v5). Tested Node baseline is unchanged.

Docs & tests

  • README / README_ja document the install helper; the bundled skill and /cover-gen command document boundary expansion and equivalence classes.
  • Added tests/init.test.mjs plus CLI-boot and new-feature regression tests (29 tests total).

Compatibility

Drop-in upgrade from 0.2.x. Existing generate / analyze_coverage / extend_tests / estimate_model calls are unchanged; the new parameter fields are all optional. Requires Node ≥ 22.