You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LSP requests currently work before initialize, a second initialize succeeds, and normal requests continue after shutdown.
Audit ID: G-21. Reproduced on v1.40.3.
Existing issue relationship
Direct regression of closed #2830 (shutdown/exit lifecycle). Closed #4336 is adjacent broad protocol-audit work.
Expected behavior
Dispatch must enforce the LSP session state: pre-initialize requests return ServerNotInitialized, duplicate initialize is InvalidRequest, and only exit is accepted after shutdown.
PR scope
Keep this to LSP lifecycle state/gating, separate from MCP.
Implementation guide for Codex 5.6 sol xhigh
Introduce one thread-safe state machine around all dispatch paths, including notifications and errors.
Follow the supported LSP version's required error codes and exit semantics.
Add JSON-RPC transcript tests for initialize/initialized/shutdown/exit, out-of-order, duplicate, concurrent, and malformed sequences.
Ensure shutdown disposes resources once without deadlock and does not accept further work.
Summary
LSP requests currently work before
initialize, a secondinitializesucceeds, and normal requests continue aftershutdown.Audit ID: G-21. Reproduced on v1.40.3.
Existing issue relationship
Direct regression of closed #2830 (shutdown/exit lifecycle). Closed #4336 is adjacent broad protocol-audit work.
Expected behavior
Dispatch must enforce the LSP session state: pre-initialize requests return ServerNotInitialized, duplicate initialize is InvalidRequest, and only
exitis accepted after shutdown.PR scope
Keep this to LSP lifecycle state/gating, separate from MCP.
Implementation guide for Codex 5.6 sol xhigh
Acceptance criteria