Block a user
TASK: Formalize playlist rule engine contracts
TASK: Add ingestion unit and integration test suite
TASK: Build incremental sync and drift reconciliation
TASK: Add process pool for CPU-heavy transformation paths
TASK: Add partitioned ingestion execution model
TASK: Build initial full-library import workflow
TASK: Implement Plex API client and auth configuration
TASK: Build schema and repository fixtures for tests
TASK: Build typed async repository layer
TASK: Implement PlaybackEvent entity with idempotency key
TASK: Implement PlaylistSession and PlaylistEntry entities
TASK: Implement Track and Category SQLModel entities
TASK: Confirm compose service contracts for dev/prod and workers
TASK: Tighten backend type and docstring quality profile
TASK: Add migration framework and baseline migration
TASK: Add SQLAlchemy async engine and session dependency wiring
TASK: Upgrade backend runtime and dependency constraints
EPIC: Hardening, Performance, and Release Readiness
EPIC: Vue Frontend for Category Config and Live Playlist
EPIC: Backend API and Live Transport