Matt
b85a9b9a7b
fix: security hardening + performance refactoring (code review batch 1)
- IDOR fix: deliberation vote now verifies juryMemberId === ctx.user.id
- Rate limiting: tRPC middleware (100/min), AI endpoints (5/hr), auth IP-based (10/15min)
- 6 compound indexes added to Prisma schema
- N+1 eliminated in processRoundClose (batch updateMany/createMany)
- N+1 eliminated in batchCheckRequirementsAndTransition (3 batch queries)
- Service extraction: juror-reassignment.ts (578 lines)
- Dead code removed: award.ts, cohort.ts, decision.ts (680 lines)
- 35 bare catch blocks replaced across 16 files
- Fire-and-forget async calls fixed
- Notification false positive bug fixed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 16:18:24 +01:00
..
2026-03-07 16:18:24 +01:00
2026-02-15 23:04:15 +01:00
2026-03-07 16:18:24 +01:00
2026-02-20 21:56:26 +01:00
2026-01-30 13:41:32 +01:00
2026-01-30 13:41:32 +01:00
2026-02-03 23:19:45 +01:00
2026-02-23 16:08:46 +01:00
2026-03-03 21:36:07 +01:00
2026-03-06 12:22:01 +01:00
2026-01-30 13:41:32 +01:00