Skip to content

v0.4.0

Choose a tag to compare

@hamzahamidi hamzahamidi released this 18 Aug 03:25
· 38 commits to main since this release
df4d8c7

Highlights

  • Replaces cic.sh with a zero-dependency Node.js 22+ CLI and publishes it as claude-in-chrome-cli, with cic as the installed command.
  • Fixes the MCP lifecycle: initialization is negotiated in order, protocol versions are checked before dispatch, and replies are read as they arrive instead of after a fixed sleep.
  • Freezes meaningful exit codes: 0 success, 1 tool error, 2 outcome unknown after dispatch, 3 transport failure before dispatch, and 64 usage error. --json gives machine callers a stable one-line error envelope.
  • Drains large output before exit, handles closed pipelines without an EPIPE stack trace, rejects malformed top-level replies, and terminates and reaps misbehaving bridge children without hanging on inherited pipes.
  • Bundles the Node CLI inside the Claude plugin while also supporting global npm installation; both paths are exercised by install-level tests.

Install

npm install -g claude-in-chrome-cli

The Claude plugin continues to bundle its own entry point at node ${CLAUDE_PLUGIN_ROOT}/bin/cic.js; plugin users do not need the global npm install.

Breaking change

cic.sh is removed. Existing copies remain usable and the script stays available from the v0.2.x and v0.3.x tags, but upgrades should move to cic list and cic call <tool> [json-args]. See the README migration table for every previously documented invocation.

Known limits

  • Initialize replies do not yet use the same exact result-or-error validator as tool replies.
  • Tool result arrays are required, but their members and optional isError type are not fully validated; JSON-RPC error codes are checked as numbers rather than integers.

These affect hostile or broken server replies, not well-formed results, and are planned as post-0.4.0 hardening.

Validation

139 offline checks pass: 53 parser, 13 chrome-tabs handshake, 64 cic contract, and 9 installation checks. The npm tarball contains four files and no bundled dependencies.

Full changelog: v0.3.1...v0.4.0