Add prompt validation to ai-event (non-empty string, max 2000 chars) and events array length validation to ai-summary (max 100 items) to prevent abuse and injection attacks.
Require authentication for ai-summary endpoint to prevent unauthorized API key usage and cost leakage.
- Create new RRuleDisplay component for better recurrence rule formatting - Replace Badge with RRuleDisplay in EventCard for improved UX - Remove unused imports across multiple files (CalendarEvent, Badge, Card components) - Remove unused catch parameter in ai-event route