Reported issues for agent-lsp
Pod holds 9 of 9 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to agent-lsp.
Most discussed
feat: Luau language support via custom extension routing
Problem
agent-lsp does not recognize .luau files. When opening a .luau file, all tool handlers default to languageID = "plaintext", which routes requests to the wrong language server (e.g. clangd for .c files). This means:
- No diagnostics for Luau code
- No go-to-definition or find-references across Luau files
Solution
1. LanguageIDForFile() on ServerManager and LSPClient
New method that checks the server config's extensions field first, then falls back to the built-i
Read the thread · 2026-08-27 · closed · outside contributor · 2 comments
macOS auto-watcher leaks one O_EVTONLY fd per workspace file (fsnotify kqueue): broker pegs kern.maxfilesperproc and causes machine-wide ENFILE
Summary
On macOS, agent-lsp's always-on auto-watcher (startWatcher in internal/lsp/client.go) consumes one file descriptor per file in the workspace — and keeps growing by one fd per file created in a watched directory, forever. On a workspace whose tree contains large non-code data directories (browser profiles, caches), the daemon-broker pegs kern.maxfilesperproc (245,760) and, together with any other process, exhausts the system-wide file table (kern.maxfiles), causing **m
Read the thread · 2026-08-25 · closed · external user · 2 comments
Server exits on a malformed JSON-RPC frame (denial-of-service)
Hello, and apologies for the unsolicited report.
Your MCP server io.github.blackwell-systems/agent-lsp (@blackwell-systems/agent-lsp) was included in an automated
conformance study of publicly registered Model Context Protocol servers. The study
installed and executed every eligible server in the official registry and drove it
through a set of protocol checks. One result looked worth reporting to you directly.
What we observed
**Server crashes or stops responding after a m
Read the thread · 2026-07-31 · open · external user · 3 comments
[feature request] Allow combining config with auto-detected servers
Hi, and thank you for sharing this useful tool.
As I understand it, in agent-lsp v0.16.0, using the --config command-line option disables auto-detection, so all servers must be listed explicitly in the provided JSON.
Could the JSON optionally be merged with the auto-detected servers instead? For example:
agent-lsp --merge-config /path/to/agent-lsp.json
This would preserve auto-detection while allowing custom servers to be added and, when needed, auto-detected servers to be ov
Read the thread · 2026-07-29 · closed · external user · 2 comments
agent-lsp 的 GCF 编码层会合并多个 TextEdit 导致文件损坏。
现在我理解了完整链路。关键问题在 GCF 编码。让我确认一下——rename_symbol 返回的 GCF 输出中 [1] 表示只有 1 条记录。但 ApplyWorkspaceEdit 在解析时用的是 json.Unmarshal 到 map[string][]textEdit,如果 GCF 输出只有 1 条记录,那 LLM 回传的 workspace_edit JSON 也只有 1 条。
让我验证——看看我之前传给 apply_edit 的 workspace_edit JSON:
回顾我之前的调用,我手动构造了: {"changes": {"file:///...": [{"newText": "...", "range": {"end": {"character": 32, "line": 337}, "start": {"character": 14, "line": 99}}}]}}
只有 1 个 TextEdit,range 是 99:14 → 337:32。这就是问题所在!
根因确认:gcf-go 的 EncodeGeneric 把 j
Read the thread · 2026-07-14 · closed · external user · 3 comments
start_lsp(scope=[...]) writes a malformed pyrightconfig.json include
start_lsp(scope=[...]) writes a malformed pyrightconfig.json include — double-encodes the list into a single string element, silently breaking all workspace queries (pyright/basedpyright)
Summary
Calling start_lsp with a scope array makes agent-lsp generate a pyrightconfig.json whose include is one element containing the JSON-stringified scope list, rather than the list's entries. pyright/basedpyright then matches zero files, so find_symbol, find_references, and
Read the thread · 2026-06-20 · closed · external user · 1 comment
Windows: C# diagnostics & code actions silently empty due to drive-letter casing mismatch
Windows: C# diagnostics & code actions silently empty due to drive-letter casing mismatch
Summary
On Windows with csharp-ls, all semantic tools return false-empty results because the tool layer and the language server normalize the file URI to different drive-letter casing.
csharp-lskeys documents/diagnostics under a lowercase drive letter:file:///c:/...- agent-lsp queries/opens under an uppercase drive letter:
file:///C:/...
The two are treated as different document
Read the thread · 2026-06-19 · closed · external user · 1 comment
inputSchema emits "type": ["null","array"] for 6 tools, breaking Gemini 2.5 Flash
Symptom
Gemini 2.5 Flash (Google generativelanguage API) rejects tools/list from agent-lsp because 6 tool inputSchemas contain "type": ["null","array"] for slice properties. Gemini's strict OpenAPI 3.0 subset only accepts "type": "array" (string scalar) with items at the same level.
Concrete error sample:
GenerateContentRequest.tools[0].function_declarations[X].parameters.properties[changed_files].items: field predicate failed: $type == Type.ARRAY
GenerateContentRequest.tools[
[Read the thread](https://github.com/blackwell-systems/agent-lsp/issues/2) · 2026-05-01 · closed · external user · 2 comments
## Most recent
### Support Luau language (luau-lsp)
Luau is a typed Lua dialect with its own language server ([luau-lsp](https://github.com/JohnnyMorganz/luau-lsp)), distinct from Lua's `lua-language-server`. agent-lsp doesn't recognize `luau` as a language ID, so `.luau` files get no LSP support.
**What I tried:**
- CLI arg `luau:luau-lsp,lsp` — silently ignored (unrecognized language ID)
- `--merge-config` with `{"servers": [{"language_id": "lua", "extensions": [".luau"], "command": ["luau-lsp", "lsp"]}]}` — lua override works but doesn't rout
[Read the thread](https://github.com/blackwell-systems/agent-lsp/issues/19) · 2026-08-26 · closed · outside contributor · 0 comments
The remaining reports are on [the project's issue tracker](https://github.com/blackwell-systems/agent-lsp/issues).