A Supabase connection dropped mid-response raised RemoteDisconnected, which the
auth layer did not catch. In the per-request token check that escaped as a bare
HTTP 500, which MCP clients report as "-32603 Internal error".
- auth: treat dropped/reset connections as AuthUnavailable; retry a dropped
read (GET) once, never a write
- mcp: per-request diagnostics (app/mcp_diagnostics.py): one `mcp_request`
log line per call with request id, method, tool, auth result, timings and
failure category; redacted tracebacks; X-Request-Id header and `ref <id>`
in client-facing errors; no tokens, arguments or learner data logged
- mcp: Supabase outage during verification is a retryable 503 (still denied)
instead of a 401 that makes clients drop a valid token
- mcp: tool crashes return {ok:false, error_category, request_id}
- mcp: serve /mcp without redirecting to http:// behind the Space proxy
- access: one shared mcp_access_decision; tolerate a missing user email
- scripts/check_mcp_acces…