Commit graph

21 commits

Author SHA1 Message Date
Troll (Hermes Agent)
2f5050b29f feat: send song requests to Hermes via webhook
- Add Hermes webhook settings form in /admin/settings (URL + HMAC secret)
- Add /admin/request/<id>/send-to-hermes action
- POST request data to Hermes with V2 HMAC signature and callback URL
- Hermes can POST the generated MusicGPT prompt back to /api/prompt/<id>
- Add test button, update README workflow, bump version to 0.9.0
2026-08-24 23:01:33 +00:00
Troll (Hermes Agent)
d4f54bcff5 v0.8.9: Format email timestamps as 'Tuesday, August 8, 2026 @ 9:24pm' in America/Regina timezone
Add regina_dt Jinja2 template filter that converts UTC ISO-8601 timestamps
to America/Regina timezone and formats them as 'Weekday, Month D, YYYY @ H:MMam/pm'.
Applied to preview_sent_at and delivery_sent_at on the admin request page.
2026-08-12 03:53:37 +00:00
Troll (Hermes Agent)
59d79cd03d Add Re-upload to Gokapi button for existing stems
- New reprocess_stems admin action triggers Gokapi upload manually
- Button appears in Stems/Extras Link section when stems_url exists
  but stems_link is empty (webhook fired before Gokapi was configured)
- Updated share link description and placeholder for Gokapi URLs
2026-08-11 20:48:46 +00:00
Troll (Hermes Agent)
ccc93ffb3b Auto-upload stems to Gokapi on completion, save share link
- New helpers: parse_stems_urls, upload_to_gokapi, process_stems_to_gokapi
- Stems webhook handler now downloads stem files from MusicGPT CDN,
  zips them, uploads to Gokapi with 30-day expiry, saves the Gokapi
  download URL to stems_link in the DB
- Download Stems button uses stems_link (Gokapi URL) when available,
  falls back to the zip endpoint if not
- Config: GOKAPI_URL, GOKAPI_API_KEY, GOKAPI_EXPIRY_DAYS env vars
- docker-compose: GOKAPI_* environment variables added
2026-08-11 20:45:28 +00:00
Troll (Hermes Agent)
9df4c685a4 Fix stepper checkmarks, error recovery, radio button spacing
- Both steppers now show green checkmark on final step when completed
  instead of leaving it highlighted as 'current' (blue)
- Stems error is cleared at the start of every generate_stems attempt,
  not just on success — no stale error messages after retry
- Radio buttons in stems section use same compact spacing as checkboxes
2026-08-11 20:18:19 +00:00
Troll (Hermes Agent)
24838c73ac Fix LLM Cost: accumulate per-version costs, include stems, show total
- Webhook no longer overwrites cost estimate with 0 when conversion_cost
  is missing from the payload
- Per-version costs (A/B) are tracked separately and summed into total
- Stems cost is only overwritten when a non-zero cost is reported
- Template shows combined total (songs + stems) with breakdown
- Added musicgpt_cost_a and musicgpt_cost_b columns to schema
2026-08-11 19:42:28 +00:00
Troll (Hermes Agent)
f2c64848dd Download Stems button now zips all stem files into a single .zip
- New /admin/request/<id>/download-stems endpoint
- Parses stems_url (label: url; label: url format), fetches each stem file,
  bundles them into a zip served as an attachment download
- If MusicGPT returns a single .zip bundle URL, redirects directly
- Template button now points to the zip endpoint instead of raw CDN URLs
2026-08-11 19:36:40 +00:00
Troll (Hermes Agent)
ae9c061225 Replace stems URL input with radio buttons + add download button
- Radio buttons to select Version A or B MP3 as stems source
- New /api/audio-source endpoint serves single MP3 for Extraction API
- Backend reads radio selection, constructs public URL automatically
- Download Stems button appears when stems are ready
- Generate button disabled when no MP3s are available
2026-08-11 19:14:25 +00:00
Troll (Hermes Agent)
25edd635c3 Label request and recording studio status steps with separator 2026-08-11 16:44:09 +00:00
Troll (Hermes Agent)
e6edac7b6f Convert MusicGPT status into steps with LLM Cost label 2026-08-11 16:39:34 +00:00
Troll (Hermes Agent)
de7e99b6ae Add Steps progress indicator to admin request page 2026-08-11 16:36:03 +00:00
Troll (Hermes Agent)
1eae83baaa Move status and MusicGPT info into album cover panel on admin request page 2026-08-11 16:28:41 +00:00
Troll (Hermes Agent)
af91664ed0 Move MusicGPT cost totals from pricing page to sales page 2026-08-11 03:16:28 +00:00
Troll (Hermes Agent)
0c79984619 Fix nested form breaking Mark Paid & Deliver button 2026-08-11 03:10:17 +00:00
Troll (Hermes Agent)
8175327ce3 Respect deliver_album_cover on player page and scale cover to 160px everywhere 2026-08-11 02:57:38 +00:00
Troll (Hermes Agent)
2ec73dee0f Add toggle for automatic MusicGPT polling in settings 2026-08-10 23:35:55 +00:00
Troll (Hermes Agent)
77cd712f10 Add per-request MusicGPT poll button 2026-08-10 23:25:29 +00:00
Troll (Hermes Agent)
5443c464bd Fix MusicGPT integration: v6/v6-pro models, per-conversion webhooks, store conversion IDs 2026-08-10 22:53:26 +00:00
Troll (Hermes Agent)
f185232907 Clarify webhook_url is sent per MusicGPT request 2026-08-10 22:47:14 +00:00
Troll (Hermes Agent)
2ca148be9b Integrate MusicGPT API generation into booth-musicgpt v0.7.0 2026-08-10 22:01:08 +00:00
Troll (Hermes Agent)
99855b1212 Initial fork from theme-song-booth 2026-08-10 20:43:28 +00:00