Record MCP framing transport fix

ober

bb4035286612e288dd9851184464e6450e2dd32c

diff --git a/data/error-fixes.sexp b/data/error-fixes.sexp
index 0c25c48..1093e51 100644
--- a/data/error-fixes.sexp
+++ b/data/error-fixes.sexp
@@ -2737,4 +2737,13 @@
     "Do not enable rscap through the normal/full native bundle until its Sniffer has a sound Send implementation or the wrapper is redesigned for thread-local ownership. Keep packet capture behind an explicit Cargo feature and verify the default native library has no packet-capture symbols.")
    ("id" . "rscap-sniffer-not-send-static-registry")
    ("pattern" . "cannot be sent between threads safely.*(PacketRxRing|Sniffer)")
-   ("type" . "rust-compile")))
+   ("type" . "rust-compile"))
+ (("explanation"
+    .
+    "MCP clients commonly speak JSON-RPC over stdio using `Content-Length: N\\r\\n\\r\\n` framing. A newline-only server tries to parse the header line as JSON, emits `unexpected character`, and many clients then close the transport.")
+   ("fix"
+    .
+    "Make the MCP stdio loop accept both legacy newline-delimited JSON and framed `Content-Length` messages. Reply with the same framing mode used by the request, then rebuild and reinstall `jmcp`; existing closed connector processes must be restarted.")
+   ("id" . "mcp-content-length-framing-transport-closed")
+   ("pattern" . "Transport closed|unexpected character")
+   ("type" . "mcp-transport")))