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
release: v3.14.12 — fix MCP client deadlock on long upstream responses
Two vectors fixed in mcp_client.py:
1. _read_loop swallowed all exceptions silently. When the reader
died (LimitOverrunError, IncompleteReadError, ConnectionResetError,
BrokenPipeError, etc.), pending request futures stayed pending
forever and _send's await future blocked the caller indefinitely.
Reader now rejects every pending future with a McpConnectionError
carrying the terminal cause.
2. _send honoured callTimeoutMs: 0 as unbounded await. Combined
with silent reader death, deadlock was guaranteed on any
upstream that exceeded the line buffer or died without
responding. Enforce a 60-minute hard ceiling even when the
operator opts into "no timeout".
Observed: ingest_codebase hung 8+ minutes with both Cortex and the
upstream Rust binary at 0% CPU on a polyglot Android repo.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "cortex",
3
3
"description": "Persistent memory for Claude Code — remembers across sessions automatically. Install and forget. Scientific retrieval backed by 41 published papers.",
0 commit comments