mirror of
https://github.com/hanzoai/lsp.git
synced 2026-09-30 22:52:48 +00:00
ef9c3d1027011f804a1f3f9c2d9ad28709b8f333
hanzoai/ci derives an image version from the repo's own manifest — package.json, Cargo.toml, VERSION, pyproject.toml. A Go module is none of those, so with nothing declared and nothing yet in the registry `imgver` refuses the build: imgver: no version for ghcr.io/hanzoai/lsp. Declare one — a package.json/Cargo.toml/VERSION/pyproject.toml under '.', or IMGVER_VERSION. We don't ship shas. Which is the right refusal — restarting a series at 0, or publishing only a sha, is how an image ends up with no deployable tag — but it means this repo has to say the number itself, and hanzo.yml is the one place it can. 0.1.0 is a floor, not the output: ci publishes a declared number verbatim only while it is above everything in the registry, and otherwise the next patch above what is published. So this cannot mint a tag that already covers other bytes. Co-authored-by: Hanzo Dev <[email protected]>
lsp
The jailed language-server daemon. It holds immutable per-(org, repo, commit) working trees, runs a language server over each one inside a jail with no network, and answers position questions about them.
The answer it exists for is a definition that leaves the repository and lands in a dependency — which a static symbol index structurally cannot give you.
POST /root {org, repo, rev, files} → {ready, cold, langs}
POST /root/warm same body, only for a held repo
POST /ask {org, repo, rev, op, path, line, character, relation}
→ the answer, or 409 {"need":"tree"}
GET /healthz liveness
GET /readyz readiness — green only once the jail proved out on this host
Everything else — the wire contract in full, the two-phase security model, the deployment, and what phase 2 is — is in LLM.md.
Description
Jailed language-server daemon: immutable per-(org,repo,commit) roots, gopls behind a seccomp jail with no network. Backs /v1/code/lsp.
192 KiB
Languages
Go
93%
Dockerfile
7%