Skip to content

feat!: raise the plugin floor to 0.13.0 and drop claude_session_id - #601

Merged
omartelo merged 1 commit into
mainfrom
feat/plugin-version-floor
Sep 13, 2026
Merged

omartelo merged 1 commit into
mainfrom
feat/plugin-version-floor

Conversation

@omartelo

Copy link
Copy Markdown
Collaborator

Task B, part C of three. This PR is stacked on #599. Do not merge it until lichdotdev/lich-plugin#24 is released as 0.13.0: until that release exists, every install would be marked unsupported and there would be no supported release to offer.

What changes

  • PluginVersionFloor goes from 0.3.0 to 0.13.0, the first plugin release that sends X-Lich-Plugin. A report with no header now counts as below the floor. It raises plugin-incompatible (with an empty version, which the window answers by re-reading the plugin status) instead of passing silently.
  • startRequest.LegacyClaudeSessionID is gone. This is the "install gate" transport.go was waiting for. claude_session_id is no longer read, so a plugin older than 0.3.0 gets its session-start refused and logged with plugin=absent. That user already gets the unsupported prompt at startup.
  • Docs follow: docs/hooks/session-start.md (field, server side, ceiling), fixtures/README.md, the two legacy fixture cases, the docs/ceilings.md bullet and docs/hooks/README.md on the missing header. CHANGELOG [Unreleased] is updated.

Tests changed

The contract changed. The legacy parser cases and fixture lines are removed, one case now asserts the alias is not read, and every test version moves inside the new floor (testVersion 0.8.0 to 0.13.0, the status tables to 0.13.x).

Test plan

  • gofmt, go vet ./..., go test ./..., cross-OS vet of terminal and agentplugin
  • After lich-plugin 0.13.0 ships: a session on it reports with no warning, and one on 0.12.0 gets the unsupported prompt
  • Plugin side: moving tests/lich-ref to the lich tag that carries this PR drops the legacy fixture cases there too. The plugin never sends the alias, so nothing breaks.

@omartelo
omartelo force-pushed the feat/plugin-version-compat branch from 6cf9065 to cbb1125 Compare September 13, 2026 19:26
@omartelo
omartelo force-pushed the feat/plugin-version-floor branch from 86b00eb to 193c5b3 Compare September 13, 2026 19:27
Base automatically changed from feat/plugin-version-compat to main September 13, 2026 19:41
0.13.0 is the first lich-plugin release that sends X-Lich-Plugin, so every
supported install now names the release a report comes from. A report without
the header is below the floor and raises plugin-incompatible like any other
out-of-range release; the startup gate offers the supported one.

The pre-0.3.0 claude_session_id alias on /session-start is no longer read: the
floor is past every plugin that sent it. Its two fixture cases and the parser
tests for it go with the contract.

Test versions move inside the new floor.
@omartelo
omartelo force-pushed the feat/plugin-version-floor branch from 193c5b3 to 97e26d4 Compare September 13, 2026 19:45
@omartelo
omartelo merged commit c09f63b into main Sep 13, 2026
7 checks passed
@omartelo
omartelo deleted the feat/plugin-version-floor branch September 13, 2026 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant