ROADMAP.md
Rama main · réplica de lectura del repositorio original.
# fade-out Roadmap
Priority-ordered feature backlog. The Claude Code roadmap driver
(`.github/workflows/claude-roadmap.yml`) picks the top unchecked item under
**Ready** and implements it, so keep this list accurate — a stale entry gets
re-implemented on top of working code.
## In Progress
_(nothing currently)_
## Ready
- [ ] Rate limiting on the public API surface
- [ ] Prometheus metrics endpoint for pipeline monitoring
- [ ] Loudness normalization before upload (LUFS targeting per platform)
- [ ] Batch processing mode for multiple mixes in one run
- [ ] AcoustID as a free fingerprinting fallback alongside Shazam/AudD
(see the closed PR #43 — needs the `fpcalc` binary in the image, tests,
and a deliberate decision on sampling density and API cost)
- [ ] Optional authentication in front of the dashboard, so the deployment
model is not the only security boundary (see SECURITY.md)
- [ ] RSS podcast feed generation
- [ ] Waveform video generation for YouTube (audio-reactive visuals)
- [ ] Multi-brand support (different visual presets per genre/series)
- [ ] Analytics dashboard (play counts, listener stats across platforms)
- [ ] Code-split the frontend bundle (currently ~910 kB before gzip)
- [ ] Finish de-hardcoding the back-catalog title heuristics: the
`GENERIC_PATTERNS` entry matching the original author's channel
(`^dj (will )?see (live|set|stream)`) is still baked in. Harmless for
other users — it simply never matches — but it belongs in
`CATALOG_CHANNEL_NAME` alongside the rest.
## Done
- [x] Comprehensive backend test suite (993 tests) and frontend tests (30)
- [x] CI running tests, typecheck, Docker build, and dependency audit
- [x] Functional health endpoint with per-platform credential assertions
(`/api/health`) plus a liveness endpoint (`/api/health/live`)
- [x] Alembic database migrations
- [x] Structured logging throughout the backend, with optional JSON output
- [x] WebSocket live pipeline status
- [x] OpenAPI/Swagger documentation (FastAPI built-in, at `/docs`)
- [x] Retry logic and backoff across ingest, upload, and notification paths
- [x] Input validation and crash-safe state for file-watcher events
- [x] Thumbnail template/design system with configurable layouts
- [x] Per-platform decoupled publishing with independent retry
- [x] Mixcloud upload support (opt-in)
- [x] YouTube chapter markers from tracklist timestamps
- [x] Shazam-based track identification, with optional AudD fallback
- [x] Scheduled uploads (immediate/scheduled publish modes)
- [x] Back-catalog import, matching, and metadata improvement
- [x] Shorts/vertical clip auto-uploader
- [x] Source-file renaming to match generated titles (opt-in)