4b00842536
Review follow-up on the keyless Exa UTF-8 fix: - `_parse_mcp_body` split SSE frames on `\n` only, so a body using bare CR line terminators (permitted by the SSE spec, and parsed fine before via `splitlines()`) failed with "Unrecognized MCP response shape". Split on the SSE terminators CRLF / CR / LF instead. - `mcp_call` decoded the body as UTF-8 unconditionally, ignoring a charset the server did declare. Decode with the declared charset when the Content-Type carries one and fall back to UTF-8 only when it is absent. - The HTTP >= 400 branch and `_keenable_request` still surfaced `response.text`, so a non-ASCII error body from a charset-less text/* response reached the user as ISO-8859-1 mojibake. Both now go through the same decode helper as the success path.