You're offline — showing cached data

MC-4874

Migrate radio media to cloud (PKA-Outputs/radio) + repoint radio.py & MC radio endpoints [non-breaking]
2026-06-13 07:35:24 SAST
Home Board MC-4874

Migrate radio media to cloud (PKA-Outputs/radio) + repoint radio.py & MC radio endpoints [non-breaking]

## Goal Move Luci radio media to the cloud outputs tree and repoint the radio pipeline + MC radio endpoints. Radio mp3s live in `~/workspace/reports/radio/` and are served via `...
State Done Next Action Closed Owner Luci Runtime Closed Age 4d ago
MC-4874
Ticket is done; runtime is closed. · profile claude_opus_1m_medium

Description

MC-4874
## Goal Move Luci radio media to the cloud outputs tree and repoint the radio pipeline + MC radio endpoints. Radio mp3s live in `~/workspace/reports/radio/` and are served via `radio.py` + MC radio endpoints (NOT the /reports route — `.mp3` isn't in its allowlist). Move to cloud `PKA-Outputs/radio/`. NON-BREAKING (radio keeps playing throughout). ## Context - Generator: `~/workspace/projects/spotify-radio/radio.py` — writes mp3 + manifest/seed/summary to `~/workspace/reports/radio/`. - MC `app.py`: `RADIO_PY` constant (~line 5726) + radio endpoints (~5748, 5800, 5837) shell out to radio.py and serve/link the mp3s. - Cloud radio dir (Luci): `python3 ~/workspace/PKA/pka_paths.py outputs-dir radio --ensure` -> `/home/lucienne/gdrive/PKA-Outputs/radio`. Verify mount: `ls /home/lucienne/gdrive/PKA-Outputs/radio`. ## Changes 1. Migrate existing `~/workspace/reports/radio/*` (mp3 + manifest/seed/summary) -> cloud radio dir; preserve names; parity-check counts. 2. Repoint `radio.py` to WRITE new episodes to the cloud radio dir (via resolver). Keep Spotify/upload logic intact. 3. Repoint MC radio endpoints in app.py to READ/serve/link from the cloud radio dir, CLOUD-FIRST with `~/workspace/reports/radio` fallback (mirror the MC-4867 reports pattern). 4. Ensure mp3 SERVING works from the cloud path (audio/mpeg; the cloud mount serves bytes fine) — add/extend a route as needed. Preserve any path-traversal/suffix guards. ## Constraints - Non-breaking: radio keeps playing (cloud-first + workspace fallback). - Do NOT touch the reports serving (MC-4867 — done). - Do NOT deploy live yourself — review-required evidence; Lucienne guarded-deploys. ## Verification (before review-required) - An existing radio episode plays in MC (audio loads, 200) - A newly generated episode lands in the cloud radio dir - MC board `/` loads; `app.py` parses; radio tests (if any) pass ## Terminal-state report REQUIRED: STATUS, 1-line, commit SHA(s), literal verification (HTTP codes + counts), follow-ups. On error: root cause + safe-retry + stop condition. Commit incrementally; don't deploy live.

Activity

done
Luci is working...
Live
No activity yet
Help