Summary
Raw rateLimitResult.error and oauthError.message are reflected into redirect URLs.
Source
P2 follow-up from /ship adversarial review of PR #176 (silent GitHub token refresh).
Details
route.ts:80,124 reflect rateLimitResult.error and oauthError.message via encodeURIComponent to a redirect URL.
Fix
Emit fixed error codes only (rate_limited, oauth_failed); keep messages in server logs / Sentry.
Acceptance
Summary
Raw
rateLimitResult.errorandoauthError.messageare reflected into redirect URLs.Source
P2 follow-up from
/shipadversarial review of PR #176 (silent GitHub token refresh).Details
route.ts:80,124reflectrateLimitResult.errorandoauthError.messageviaencodeURIComponentto a redirect URL.Fix
Emit fixed error codes only (
rate_limited,oauth_failed); keep messages in server logs / Sentry.Acceptance
/login?error=...