- Add @click.stop to prevent click bubbling to @click.outside
- Add min-height: 34px for consistent button sizing
- Add justify-content: center for consistent alignment
- Style .sr-btn-dl with secondary accent color
- Add MyMemory translation API to MetadataEnricher (free, no key)
- Translate English synopses to French after Kitsu enrichment
- Remove synopsis truncation (was 200 chars, now shows full text)
- Increase CSS line-clamp from 2 to 4 lines
- Implemented AppSettings model and table using SQLModel.
- Created Settings router with endpoints for preferences and provider toggling.
- Added Settings tab to the UI with real-time health status of providers.
- Integrated language and provider filtering into anime and series search logic.
- Updated templates to respect user-defined settings.
- Modernized the frontend with HTMX for server-driven UI and Alpine.js for client state.
- Refactored anime, player, and recommendation logic into modular routers.
- Updated README.md to reflect the latest project state and technologies (v2.4).
- Added Plyr.io for an improved streaming experience.
- Improved project structure with componentized templates.
- Added Playwright and Vitest configuration for frontend testing.