{"repo":"NousResearch/hermes-agent","public_id":"82602","display_label":"LSP client cleanup after transport/stdout loss","summary":"These items address a scenario where LSP clients become unresponsive after losing their transport connection, causing diagnostics requests to hang until timeout. The work involves detecting dead clients and retiring or replacing them so that pending diagnostics waits are aborted promptly.","subsystem":"agent/lsp","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":94185,"merged_at":"2026-08-24T20:18:44+00:00"},"resolution":{"state":"resolved","by":"pr-94185"},"freshness":{"state":"verified","last_verified_at":"2026-08-24T20:18:44+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":82602,"pr_number":94185,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-24T20:18:44+00:00"}],"members":[{"kind":"issue","number":82602,"title":"[Bug]: LSP diagnostics repeatedly time out after the server loses stdout","url":null,"state":"closed"},{"kind":"pr","number":82604,"title":"fix(lsp): replace dead language-server clients instead of timing out diagnostics","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#94185","number":94185}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":94185,"title":"fix(lsp): retire dead clients and abort diagnostics waits after transport death (#85125 3b)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/lsp/client.py","tests/agent/lsp/_mock_lsp_server.py","tests/agent/lsp/test_client_e2e.py","tests/agent/lsp/test_service.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}