Repository navigation
feat: name the plugin release on every report - #24
Merged
Merged
Conversation
Every hook script and both modules send X-Lich-Plugin with the release they ship in; the contract suite asserts it on every report against the Claude Code manifest, and a new test holds the Codex manifest to the same version. opencode: send_to_session and wait_for_answer treat lich's exit 2 (timed out, ticket handed back) and 3 (errand over, no answer) as results and return stdout, since lich#595 made those codes outcomes rather than errors. Fixtures are refreshed at the lich release in tests/lich-ref instead of main. At v0.50.0 that adds the kiro provider, so the provider enumeration test moves with the contract. The release rule now says a contract change bumps the minor, anything else the patch, and lists the version constants to bump.
1 of 3 tasks
…eader # Conflicts: # CHANGELOG.md
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task B, part B of three. It follows omartelo/lich#599, the lich side that reads the header. That PR tolerates a missing header, so the two can merge in either order. Release this one as 0.13.0, because the header is a contract change.
What changes
X-Lich-Pluginheader on every report:plugin_versionin eachhooks/report-*.sh(these serve Claude Code, Codex, Antigravity, Crush and Kiro, and Cursor through Claude Code's install) andPLUGIN_VERSIONinopencode/lich.jsandomp/lich.js.assertContractHonouredchecks the header against.claude-plugin/plugin.jsonon every case, so a copy that drifts goes red. A new test holds.codex-pluginto the same version.send_to_sessionandwait_for_answertreat exit 2 (timed out, ticket) and exit 3 (errand over, no answer) as results and return stdout. Other commands still treat anything non-zero as a failure. I greppedomp/,hooks/andskills/: nothing else checks the exit code oflich sendorlich wait.tests/refresh-fixtures.shnow readstests/lich-ref(v0.50.0) instead ofmain, and CI diffs against that tag. The refresh adds lich'skirosession-start case, so the provider enumeration test gainskiro: the contract changed.CLAUDE.md: a contract change bumps the minor, anything else bumps the patch. It also lists the version constants to bump (they are still 0.12.0 here), which the suite enforces.CHANGELOG.md[Unreleased]is updated.Not fixed here: a pre-existing flake
<script> posts an accepted payloadcan fail withsent 0 requests, expected 1when the CPU is saturated. It reproduced onmain(1 of 4 runs with 60 busy loops on 20 cores) and in 0 of 76 runs without load. Root cause: the scripts'curl --max-time 1gives up before the stub answers, and the test assumes a report always lands. This deserves its own change.Test plan
node --test tests/*.test.mjs: 198 passfixtures-driftgreen atv0.50.0