- Movie processor now stores release dates in 'released' field
- Added backfill endpoint for existing movies missing release dates
- Fixes empty "Movie Released" column in web interface
Authentication Features:
- Optional HTTP Basic Auth with session cookies for web interface protection
- Configurable username/password with session timeout (default: 1 hour)
- Selective route protection (web interface protected, webhooks/APIs remain public)
- Authentication status display with logout functionality in web UI
- Session cleanup and graceful logout with browser re-authentication prompt
Configuration:
- WEB_AUTH_ENABLED in .env (default: false - no breaking changes)
- WEB_AUTH_USERNAME/WEB_AUTH_PASSWORD in .env.secrets
- WEB_AUTH_SESSION_TIMEOUT configurable (5min-24h range)
Development Tools:
- Added debug_tv.py for TV series/episode debugging (series, season, episode levels)
- Comprehensive episode data inspection with validation and sources breakdown
- Complements existing debug_movie.py for complete media debugging coverage
Technical Implementation:
- SimpleAuthMiddleware with FastAPI integration
- Session management with automatic cleanup
- Authentication status API endpoints
- Responsive CSS styling for auth UI elements
- JavaScript functions for auth checking and logout
- Added Smart Fix modal with multiple date source options
- Enhanced edit modal with automatic date option population
- Improved date parsing with timezone handling and validation
- Added debug functionality for database inspection
- Fixed search issues and enhanced web interface controls
🤖 Generated with [Claude Code](https://claude.ai/code)
Found that rename events contain episodeId field which can be used to fetch specific episode details. Replaced complex episode data extraction with direct API call to /api/v3/episode/{episodeId} to get season/episode numbers for targeted processing.
This should resolve rename webhooks processing entire series instead of single episodes.
Enhanced debugging for Sonarr rename events to understand the actual structure of episodeFileRenamed history records. Added checks for episode data in multiple possible locations (episode, episodeFile, data objects) to identify why season/episode information is missing.
🤖 Generated with [Claude Code](https://claude.ai/code)
- Remove invalid eventType parameter that was causing 400 error
- Fetch recent history and filter client-side for episodeFileRenamed events
- Add better datetime parsing for event filtering
- Increase page size to 50 to catch more recent events