diff --git a/.lsp.json b/.lsp.json index 5ccd0a7..a8c767a 100644 --- a/.lsp.json +++ b/.lsp.json @@ -1,7 +1,7 @@ { "idfkit": { "command": "uvx", - "args": ["--from", "idfkit-lsp", "python", "-m", "idfkit_lsp"], + "args": ["--from", "idfkit-lsp==0.2.0", "--prerelease=allow", "python", "-m", "idfkit_lsp"], "extensionToLanguage": { ".py": "python" } diff --git a/AGENTS.md b/AGENTS.md index a449c3e..879ffa6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -26,7 +26,7 @@ idfkit package, not here. | Slash commands | `commands/*.md` | Yes | | Context hooks | `hooks/hooks.json`, `scripts/*.sh` | Yes | | MCP server wiring | `.mcp.json` (`uvx idfkit-mcp@`, pinned) | Yes, by review | -| LSP wiring | `.lsp.json` (`uvx --from idfkit-lsp`, unpinned until idfkit-lsp publishes) | Yes, by review | +| LSP wiring | `.lsp.json` (`uvx --from idfkit-lsp== --prerelease=allow`, pinned) | Yes, by review | | Claude plugin / marketplace | `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json` | Yes | ## Discovery contract @@ -71,10 +71,12 @@ depending on `idfkit-mcp` and `idfkit-lsp`, and adopting in wave 2 after them. version: an unpinned `uvx idfkit-mcp` runs whatever is newest on the day, so a release would reach users unreviewed. The user still types no version; the level is committed here. The idfkit level follows from that release's own pin. -- **`.lsp.json` cannot be pinned yet.** idfkit-lsp has never been published to - PyPI, so today that entry resolves nothing on a clean machine. The register - records it as a `not-yet` lag on idfkit/idfkit-plugin#17. Pin it as - `uvx --from idfkit-lsp==X.Y.Z` in the change that follows the first release. +- **`.lsp.json` pins idfkit-lsp exactly** (`--from idfkit-lsp==X.Y.Z`), on the + same terms as `.mcp.json`. `--prerelease=allow` follows the pin while + idfkit-lsp depends on a pre-release of idfkit, because uv installs a + pre-release of an indirect dependency only when told to. Keep the flag after + the pin, so the level stays at `args[1]` where the consumer register reads it, + and drop it once idfkit-lsp depends on a stable idfkit. - **Both files are CODEOWNERS-reviewed**, because changing either changes what every user runs. - **The self-check.** The `consumer-register` job in `tests.yml` calls