mirror of
https://github.com/hanzoai/lsp.git
synced 2026-09-30 22:52:48 +00:00
LLM.md: all nine answer, and how the two that did not got there
0.1.6 served eight languages and logged `spawn EPERM` for TypeScript and JavaScript once per root. 0.1.7 serves all nine, verified on the gVisor node. Keeping the failure in the record rather than only the result: it is the clearest evidence the graceful-degrade design works, and the next language to need a jail change will look exactly like it. Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
@@ -397,12 +397,16 @@ BINARY and a self-exec'd test suite proves nothing.
|
||||
`python-sdk/pkg/hanzo-tools-lsp`) with `repo`/`rev` parameters — a file goes
|
||||
to the local stdio server, a repo goes to `/v1/code/lsp/*`. Not a new tool.
|
||||
4. **More languages** = install the server in the Dockerfile and add its entry.
|
||||
DONE for the nine above, and verified on the gVisor node at 0.1.6: Go,
|
||||
Python, Rust, C, C++, Java, PHP and Ruby all answered `locate definition`
|
||||
jailed, Ruby into the interpreter's own library with `external: true`.
|
||||
TypeScript and JavaScript did not, for the `socketpair` reason above — one
|
||||
language's server failing is one language, which is the graceful-degrade
|
||||
design doing its job and the reason the other eight shipped anyway.
|
||||
DONE, and verified on the gVisor node: all nine answer `locate definition`
|
||||
jailed — Go, TypeScript, JavaScript, Python, Rust, C, C++, Java, PHP, Ruby —
|
||||
with Ruby resolving into the interpreter's own library at `external: true`.
|
||||
|
||||
It took two images to get there, and the failure is worth keeping. At 0.1.6
|
||||
TypeScript and JavaScript were the only two that did not answer: `spawn
|
||||
EPERM`, because `socketpair` was denied (see the invariant above). Every
|
||||
other language kept working and the daemon logged the reason per root, which
|
||||
is the graceful-degrade design earning its keep — one server failing cost one
|
||||
language, not the service.
|
||||
|
||||
Two things a repo needs before its dependencies resolve, neither a bug:
|
||||
`cargo fetch --locked` wants a committed `Cargo.lock`, and `npm ci` wants a
|
||||
|
||||
Reference in New Issue
Block a user