diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 6e10c61..0144232 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "lich", "description": "Claude Code plugin for the lich harness", - "version": "0.18.0", + "version": "0.18.1", "author": { "name": "omartelo" } diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 520723c..9373fd9 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "lich", - "version": "0.18.0", + "version": "0.18.1", "description": "Codex CLI plugin for the lich harness", "author": { "name": "omartelo" diff --git a/CHANGELOG.md b/CHANGELOG.md index 9913154..2a04bd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.18.1] - 2026-10-08 + ### Fixed - **A Claude Code card stops spinning when an API error ends the turn.** A usage @@ -609,7 +611,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 plugin is safe to install globally. Requests time out after ~1s and errors are swallowed — the hook never blocks or fails the turn. -[Unreleased]: https://github.com/omartelo/lich-plugin/compare/v0.18.0...HEAD +[Unreleased]: https://github.com/omartelo/lich-plugin/compare/v0.18.1...HEAD +[0.18.1]: https://github.com/omartelo/lich-plugin/compare/v0.18.0...v0.18.1 [0.18.0]: https://github.com/omartelo/lich-plugin/compare/v0.17.0...v0.18.0 [0.17.0]: https://github.com/omartelo/lich-plugin/compare/v0.16.0...v0.17.0 [0.16.0]: https://github.com/omartelo/lich-plugin/compare/v0.15.1...v0.16.0 diff --git a/hooks/mod-control.js b/hooks/mod-control.js index 622c3fe..a688bbc 100644 --- a/hooks/mod-control.js +++ b/hooks/mod-control.js @@ -13,7 +13,7 @@ // a module that hands `$` to a nested function. // Sent as X-Lich-Plugin on every request; bumped at release (CLAUDE.md, Release). -const PLUGIN_VERSION = "0.18.0" +const PLUGIN_VERSION = "0.18.1" const SETTLE_WHEN_IDLE = new Set(["prompt", "command"]) diff --git a/hooks/mod-status.js b/hooks/mod-status.js index ce0fda0..91898f7 100644 --- a/hooks/mod-status.js +++ b/hooks/mod-status.js @@ -12,7 +12,7 @@ import { setStatusPart } from "./status-line.js" // Sent as X-Lich-Plugin on every request; bumped at release (CLAUDE.md, Release). -const PLUGIN_VERSION = "0.18.0" +const PLUGIN_VERSION = "0.18.1" // The contract asks for a read at most every few seconds; the worker count in // agent-cards.js polls lich on the same period. diff --git a/hooks/mod-usage.js b/hooks/mod-usage.js index 91301f1..a7a09e6 100644 --- a/hooks/mod-usage.js +++ b/hooks/mod-usage.js @@ -12,7 +12,7 @@ // refuses a module that hands `$` to a nested function. // Sent as X-Lich-Plugin on every request; bumped at release (CLAUDE.md, Release). -const PLUGIN_VERSION = "0.18.0" +const PLUGIN_VERSION = "0.18.1" /** * @typedef {import('claude-code').EngineInterface} Engine diff --git a/hooks/report-session-start.sh b/hooks/report-session-start.sh index 175602f..8dc9795 100755 --- a/hooks/report-session-start.sh +++ b/hooks/report-session-start.sh @@ -7,7 +7,7 @@ [ -n "$LICH_PORT" ] && [ -n "$LICH_TOKEN" ] && [ -n "$LICH_SESSION_ID" ] || exit 0 # Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -plugin_version=0.18.0 +plugin_version=0.18.1 provider=${1:-claude} # Parse session_id from the stdin payload. Prefer jq; fall back to sed so the # hook works on Windows, where jq is usually absent but sed (Git Bash) is not. diff --git a/hooks/report-state.sh b/hooks/report-state.sh index c15d98c..1df60f9 100755 --- a/hooks/report-state.sh +++ b/hooks/report-state.sh @@ -7,7 +7,7 @@ [ -n "$LICH_PORT" ] && [ -n "$LICH_TOKEN" ] && [ -n "$LICH_SESSION_ID" ] || exit 0 # Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -plugin_version=0.18.0 +plugin_version=0.18.1 state=$1 body="{\"session_id\":\"${LICH_SESSION_ID}\",\"state\":\"${state}\"}" diff --git a/hooks/report-title.sh b/hooks/report-title.sh index 58a9541..d050b89 100755 --- a/hooks/report-title.sh +++ b/hooks/report-title.sh @@ -11,7 +11,7 @@ [ -n "$LICH_PORT" ] && [ -n "$LICH_TOKEN" ] && [ -n "$LICH_SESSION_ID" ] || exit 0 # Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -plugin_version=0.18.0 +plugin_version=0.18.1 command -v jq >/dev/null 2>&1 || exit 0 # Checked before stdin is read, because it is the whole point: finding a title diff --git a/hooks/report-tool.sh b/hooks/report-tool.sh index c7f3a9d..3faf46c 100755 --- a/hooks/report-tool.sh +++ b/hooks/report-tool.sh @@ -11,7 +11,7 @@ [ -n "$LICH_PORT" ] && [ -n "$LICH_TOKEN" ] && [ -n "$LICH_SESSION_ID" ] || exit 0 # Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -plugin_version=0.18.0 +plugin_version=0.18.1 here=$(dirname "$0") payload=$(cat) diff --git a/hooks/report-touched.sh b/hooks/report-touched.sh index 83ddfee..5b85696 100755 --- a/hooks/report-touched.sh +++ b/hooks/report-touched.sh @@ -6,7 +6,7 @@ [ -n "$LICH_PORT" ] && [ -n "$LICH_TOKEN" ] && [ -n "$LICH_SESSION_ID" ] || exit 0 # Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -plugin_version=0.18.0 +plugin_version=0.18.1 curl -s -o /dev/null --max-time 1 \ -X POST "http://127.0.0.1:${LICH_PORT}/session-touched?token=${LICH_TOKEN}" \ diff --git a/hooks/worker-answer.js b/hooks/worker-answer.js index e7d1aaa..f0facb3 100644 --- a/hooks/worker-answer.js +++ b/hooks/worker-answer.js @@ -22,7 +22,7 @@ // refuses a module that hands `$` to a nested function. // Sent as X-Lich-Plugin on every request; bumped at release (CLAUDE.md, Release). -const PLUGIN_VERSION = "0.18.0" +const PLUGIN_VERSION = "0.18.1" // The value lich spawns a `--subagent` session with. const CARDS_OFF = "off" diff --git a/omp/lich.js b/omp/lich.js index ab97005..66117fc 100644 --- a/omp/lich.js +++ b/omp/lich.js @@ -24,7 +24,7 @@ // environment is read per report rather than at import, so a module loaded // outside lich stays a no-op instead of a cached decision. // Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -const PLUGIN_VERSION = "0.18.0" +const PLUGIN_VERSION = "0.18.1" function report(path, body) { const port = process.env.LICH_PORT diff --git a/opencode/lich.js b/opencode/lich.js index fdee98d..de5cc5f 100644 --- a/opencode/lich.js +++ b/opencode/lich.js @@ -11,7 +11,7 @@ // environment is read per report rather than at import, so a module loaded // outside lich stays a no-op instead of a cached decision. // Sent as X-Lich-Plugin on every report; bumped at release (CLAUDE.md, Release). -const PLUGIN_VERSION = "0.18.0" +const PLUGIN_VERSION = "0.18.1" function report(path, body) { const port = process.env.LICH_PORT