- admin-web-docker.yml: add 'test' job (Node 22, npm ci, tsc --noEmit,
vitest run) gated by the anti-[skip ci] guard, wire needs: [test] on
build-validation and semantic-release, and needs: [semantic-release, test]
on build-and-push. Tests now run as a gate before Docker build validation
on PRs and before semantic-release on main.
- ci.yml: drop the redundant admin-web-test job (now covered by the test
job in admin-web-docker.yml on PRs), remove the admin-web path filter
and output from the changes job, simplify deploy-functions.needs.
- scripts/verify-admin-web-docker.sh: update check_workflow_jobs to expect
4 jobs (test + build-validation + semantic-release + build-and-push) and
check_workflow_needs to expect build-and-push needs [semantic-release, test]
so the verify script stays green with the new job topology.
- admin-web: Added an "All Music" library view with search, genre, and status filters.
- admin-web: Converted Jobs view to use expandable cards instead of a split pane.
- admin-web: Added ability to delete individual tracks from a job.
- functions: Added new `youtube-classify` edge function to automatically categorize tracks using Gemini LLM.
- functions: Integrated AI genre classification during initial playlist import if no manual genre is provided.
- worker: Added `/classify` endpoint for the worker to securely interface with Gemini.
- scripts: Updated deployment script to include `GEMINI_API_KEY`.
Remove onboarding flow (6 screens), timer engine, audio engine,
old components (themed-text/view, parallax-scroll, hello-wave),
old constants (theme, shadows, timer), and utility files that
were replaced by the v2 architecture.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>