share.$slug.ts returns DashboardStoreError/err.message to unauthenticated callers; browser-connections/proxy.ts, user-connections.ts and similar catch blocks do the same. Internal D1/ClickHouse/driver detail leaks in API responses while server logs already capture it (share route even has a requestId). Plan: createInternalErrorResponse helper (generic message + request id), convert 5xx sites, keep 4xx validation messages specific.
Full self-contained implementation plan: plans/84-sanitize-500-error-responses.md (audit round 4, planned at 070f5fe0a). Found by the 2026-07-10 deep audit.
share.$slug.ts returns DashboardStoreError/err.message to unauthenticated callers; browser-connections/proxy.ts, user-connections.ts and similar catch blocks do the same. Internal D1/ClickHouse/driver detail leaks in API responses while server logs already capture it (share route even has a requestId). Plan: createInternalErrorResponse helper (generic message + request id), convert 5xx sites, keep 4xx validation messages specific.
Full self-contained implementation plan:
plans/84-sanitize-500-error-responses.md(audit round 4, planned at070f5fe0a). Found by the 2026-07-10 deep audit.