Problem
vscode-neva currently needs to ship LSP binaries for multiple OS/arch targets, which makes every extension release large and tightly couples extension publishing cadence with backend binary updates.
This issue tracks how VSCode should obtain and run Neva LSP going forward.
Important clarification
This is not about moving LSP into neva CLI in the nevalang/neva repository.
- Canonical LSP source lives in
nevalang/neva-lsp.
- The question here is extension-side distribution/runtime strategy.
Goals
- Keep extension package small.
- Avoid shipping all platform binaries in every extension release.
- Keep UX simple for end users.
- Keep CLI / extension / LSP version compatibility manageable.
Candidate directions
- Extension-managed install (Go-style):
- extension downloads platform-specific
neva-lsp on demand
- verifies checksums/signatures
- stores binary in extension global storage
- supports update + rollback policy
- External tool management:
- user installs
neva-lsp separately (brew, scoop, apt, etc.)
- extension resolves from PATH and reports actionable diagnostics if missing
- Hybrid:
- prefer external
neva-lsp if present
- otherwise offer one-click managed install
Questions to resolve
- Version handshake policy: must LSP match CLI exactly, or tolerate a semver window?
- Who owns updates: extension auto-update vs explicit command (
Neva: Update Language Tools)?
- How to support air-gapped/corporate environments?
- Should we introduce a shared "tool manager" concept for future Neva tools (formatter, debugger, etc.)?
Acceptance criteria
- Chosen strategy documented in repo docs.
- Extension no longer bundles all LSP binaries.
- Clear install/update UX in VSCode.
- Compatibility and fallback behavior explicitly defined.
Related context
Problem
vscode-nevacurrently needs to ship LSP binaries for multiple OS/arch targets, which makes every extension release large and tightly couples extension publishing cadence with backend binary updates.This issue tracks how VSCode should obtain and run Neva LSP going forward.
Important clarification
This is not about moving LSP into
nevaCLI in thenevalang/nevarepository.nevalang/neva-lsp.Goals
Candidate directions
neva-lspon demandneva-lspseparately (brew, scoop, apt, etc.)neva-lspif presentQuestions to resolve
Neva: Update Language Tools)?Acceptance criteria
Related context
nevalang/nevaissue: Remove LSP binaries from VSCode-Neva and instead include to Neva-CLI neva#879