What happened?
I registered rumdl 0.2.64 (Markdown linter with a built-in LSP) under lsp.servers and turned on lsp.diagnostics_on_edit:
Observations on 0.55.1, OpenCode 1.18.27, linux x64:
aft_inspect reports lsp_start (producer: rumdl) and lsp_quiescence (producer: rumdl), so the binary spawns the server. But it reports zero diagnostics for .md files that rumdl check flags with 14 issues.
- Every edit of a
.md file reports LSP server(s) did not respond in time: rumdl. Bash and yaml built-ins respond normally in the same sessions.
- The server itself is healthy. A minimal stdio client against
rumdl server gets initialize in 7ms and full publishDiagnostics 5ms after didOpen, against the same file in the same repo.
- Nothing mentioning rumdl appears in
aft-plugin.log or the bridge log, so the failure is silent.
My read: the post-edit wait in crates/aft/src/lsp/manager.rs never sends textDocument/didOpen to ServerKind::Custom clients, or drops their publishDiagnostics on the freshness check. Built-ins work end to end, so the custom kind is where the path diverges. Happy to test a fix or gather more data (a wrapper binary logging the protocol would show whether didOpen ever goes out).
Expected: custom servers participate in post-edit diagnostics the same way built-ins do.
Diagnostics
AFT CLI and binary 0.55.1, OpenCode host 1.18.27, plugin registered, version 0.55.1, config at ~/.config/cortexkit/aft.jsonc, storage and LSP cache healthy per doctor. Full doctor output available on request.
Plugin version
0.55.1
AFT binary version
0.55.1
Platform
linux x64
What happened?
I registered rumdl 0.2.64 (Markdown linter with a built-in LSP) under
lsp.serversand turned onlsp.diagnostics_on_edit:{ "format_on_edit": true, "lsp": { "diagnostics_on_edit": true, "servers": { "rumdl": { "extensions": ["md"], "binary": "rumdl", "args": ["server"], "root_markers": [".git", ".rumdl.toml"] } } } }Observations on 0.55.1, OpenCode 1.18.27, linux x64:
aft_inspectreportslsp_start (producer: rumdl)andlsp_quiescence (producer: rumdl), so the binary spawns the server. But it reports zero diagnostics for.mdfiles thatrumdl checkflags with 14 issues..mdfile reportsLSP server(s) did not respond in time: rumdl. Bash and yaml built-ins respond normally in the same sessions.rumdl servergetsinitializein 7ms and fullpublishDiagnostics5ms afterdidOpen, against the same file in the same repo.aft-plugin.logor the bridge log, so the failure is silent.My read: the post-edit wait in
crates/aft/src/lsp/manager.rsnever sendstextDocument/didOpentoServerKind::Customclients, or drops theirpublishDiagnosticson the freshness check. Built-ins work end to end, so the custom kind is where the path diverges. Happy to test a fix or gather more data (a wrapper binary logging the protocol would show whether didOpen ever goes out).Expected: custom servers participate in post-edit diagnostics the same way built-ins do.
Diagnostics
AFT CLI and binary 0.55.1, OpenCode host 1.18.27, plugin registered, version 0.55.1, config at
~/.config/cortexkit/aft.jsonc, storage and LSP cache healthy perdoctor. Fulldoctoroutput available on request.Plugin version
0.55.1
AFT binary version
0.55.1
Platform
linux x64