- Add AdminUser role field (admin/submitter)
- User management in admin panel
- Public joke submission API (no auth required)
- Document submission methods for external workers
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
High priority:
- Fix concurrent race condition for view_count/like_count (atomic update)
- Add route request ID tracking to prevent race conditions
- Filter get_joke by status=approved (no pending content leak)
- Add error feedback for like button
Performance:
- Optimize random joke query (avoid full table sort)
- Limit page_size max to 100 (DoS prevention)
Medium:
- Add localStorage quota error handling
- Handle empty AI response gracefully
- Fix generate content title extraction
Low:
- Add rejected_jokes to stats API
- Update dashboard to show rejected count