Status: deferred by the maintainer (2026-10-26). Published for the record; not part of the current implementation round. Do not assign or start.
Parent
#590
What to build
Singing works on the phone: fetch on demand, cache with a budget, offline pins, stems with vocal volume, synced lyrics.
Acceptance criteria
- A song downloads when played and stays in the budgeted media cache; playback starts from a range stream before the file completes; interrupted downloads resume
- A cache budget evicts least-recently-played songs first; an option limits downloads to Wi-Fi; pinning exempts songs and the library marks what is available offline
- Published stems play the accompaniment with adjustable vocal volume; songs without stems play the original and say stems are missing
- Stored Word-timed and Line-timed Lyrics show in sync
Blocked by
- #611 (Remote Repository core: verified asset fetch with range resume)
- #615 (Remote Repository core: media cache with byte budget and pins)
- #626 (Phone: read-only library UI)
Context for implementers
- Spec: #590 (problem statement, solution, implementation and testing decisions)
- Exploration notes: /home/factory-user/openkara-notes/590-remote-repository.md
- Implementation happens on the shared integration branch; claim with
gh issue edit <this issue> --add-assignee [@me](/me)and report progress in comments.