You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: resolve 15 backend bugs across security, logic, and code quality
Critical fixes:
- Fix scoreboard export producing wrong rankings (missing sort)
- Auth middleware now rejects banned/deleted users via Redis-cached
DB status check, preventing stale JWT abuse for up to 7 days
- Practice mode now excludes active contest challenges to prevent
leaking live challenge data
- Fix IsChallengeVisible returning stale err variable
Medium fixes:
- SearchChallenges now enforces contest visibility (was leaking
active contest challenges via search endpoint)
- Fix CSV injection in scoreboard export (escape team name quotes)
- Fix solo leaderboard including users with 0 distinct solves
(len(subs) → len(seen))
- Contest analytics now validates collaborator_contest_id to prevent
cross-contest unauthorized queries
- Fix AdjustUserScoreRequest.Delta binding:required rejecting 0
with wrong error message
Low/cleanup fixes:
- Replace custom parseInt with strconv.Atoi (overflow protection)
- Inline all dead oid/objID variable aliases from MongoDB migration
across contest_admin_service, hint_service, team_service,
admin_user_handler
- Handle ignored encoder.Encode errors in export and account handlers
- Add 10s timeout to webhook HTTP client to prevent goroutine leaks
0 commit comments