- 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
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.
The MusicGPT Extraction API's audio_url field only accepts YouTube URLs,
not direct MP3 links. Sending our /api/audio-source/ endpoint URL resulted
in 'Error fetching audio length from YouTube' because MusicGPT tried to
parse it as a YouTube video.
Switch to the audio_file upload option: open the local MP3 and upload it
directly as multipart/form-data to the Extraction API.
Bumped timeout from 30s to 60s for file upload.
- VERSION bumped to 0.8.7
- README.md: comprehensive update with Gokapi integration, stems radio
buttons, download button, cost tracking improvements, stepper fixes,
error recovery, new env vars, new troubleshooting entries
- app.py: updated module docstring with all current routes
- helpers.py: updated module docstring with function group overview,
added section header for Gokapi integration
- config.py: added Gokapi env vars to docstring
- models.py: updated schema comments for per-version costs and
stems_link/stems_url distinction