Skip to content

feat: release public LSP packages and apply authored synonyms in stock Zed - #976

Merged
AlexMikhalev merged 2 commits into
mainfrom
codex/public-lsp-crates
Oct 14, 2026
Merged

AlexMikhalev merged 2 commits into
mainfrom
codex/public-lsp-crates

Conversation

@AlexMikhalev

Copy link
Copy Markdown
Contributor

The public language server still used the older implementation and private dependency graph, preventing a reproducible public release of saved alternatives and synonym export. This imports the existing LSP/shared analysis core into a standalone public workspace, using the now-published Terraphim types, parser, automata, Alternatives and Lab packages.

Stock Zed's generic LSP command picker displays a returned WorkspaceEdit without applying it. The new explicit terraphim.alternative.add_and_apply command requests one versioned client edit and acknowledges success only after observing the expected document change. The original alternative.add API is preserved. Rejected edits, timeouts, stale versions, concurrent changes and document reopen are explicit outcomes; a late change is handled without issuing a second edit.

Release automation qualifies an exact package tag from public main, tests the extracted core package, and compares the downloaded crates.io archive with the qualified bytes. Existing crate names use trusted publishing; the new core name has a separate explicit first-publication bootstrap path. Only successful server-crate readback can call the six-target binary publisher, which retains immutable asset/resume rules and saves real protocol outputs for native lanes. Legacy publishing paths reject these reserved package names before credentials, while bundled server releases retain their existing LSP artifact paths.

Validation:

  • Final public-registry-only lock: 237 packages; only the two workspace members use local paths. All other sources and checksums come from crates.io.
  • 413 native tests and 20 doctests passed, plus 10 benchmark smoke cases; formatting, Clippy with warnings denied and core WASM check passed.
  • 121 publisher/binary/recovery contract tests passed, including malformed input, multiline input, real Git/Cargo fixtures and a real candidate protocol session. Six changed workflows pass actionlint.
  • Verified core cargo package and tests from its extracted archive passed; server package contents were inspected. Final server package verification follows publication of core 1.23.1 through this workflow.
  • A stock Zed 1.23.3 candidate run created an alternative through the native command picker, saved it, undid/redid it, reopened it and exported a graph with the same Risk/Concern ID. This is candidate verification; released default-download qualification follows publication.

The public versions are core 1.23.1 and server 1.22.0-rc.4. The source PR does not itself publish a crate or binary. macOS release binaries are unsigned, and cross-target artifacts explicitly retain their runtime-validation limits.

@github-actions

Copy link
Copy Markdown
Contributor

Documentation Preview

Your documentation changes have been deployed to:
https://30805cce.terraphim-docs.pages.dev

This preview will be available until the PR is closed.

@github-actions

Copy link
Copy Markdown
Contributor

Documentation Preview

Your documentation changes have been deployed to:
https://27b9b3a6.terraphim-docs.pages.dev

This preview will be available until the PR is closed.

@AlexMikhalev
AlexMikhalev merged commit 0a02ef0 into main Oct 14, 2026
9 checks passed
@AlexMikhalev
AlexMikhalev deleted the codex/public-lsp-crates branch October 14, 2026 13:09

This branch was successfully deployed

1 active deployment
docs-preview — f2bddbf2 Deployed Oct 14, 2026 by AlexMikhalev via Deploy Preview #309
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