Commit graph

99 commits

Author SHA1 Message Date
Troll (Hermes Agent)
da6df64fbf Update README with current version v0.3.0 2026-08-05 03:19:00 +00:00
Troll (Hermes Agent)
db249e80bd Add VERSION file and live version display on settings page
- New VERSION file at project root, starting at 0.3.0.
- config.py reads VERSION and exposes it as Config.VERSION.
- Admin settings page now renders the live version from config.
- Semantic versioning convention: MAJOR for breaking/user-facing changes,
  MINOR for new features, PATCH for bug fixes and small polish.
2026-08-05 03:17:16 +00:00
Troll (Hermes Agent)
d9e198e397 Bump version tag to v0.3 on admin settings page 2026-08-05 03:13:21 +00:00
Troll (Hermes Agent)
2b46f7d3dc Guard customer_approved null/None in all templates
Some rows (schema drift, cancelled requests, manual status edits) have
customer_approved = NULL instead of the default 'none'. Templates called
.upper() on it blindly, causing a Jinja2 UndefinedError / 500 when the
customer player or admin pages loaded.

Replace all .upper() calls with (value or 'none').upper() and add truthy
checks before rendering the approved choice in status.html and
dashboard.html.
2026-08-05 03:11:21 +00:00
Troll (Hermes Agent)
9524a24715 Fix TypeError when loading max_revisions from settings JSON
The customer player page (/play/<token>) and revision endpoint were
reading max_revisions directly from booth_settings.json, where it is
stored as a string. Arithmetic/comparison with revision_count (an int)
raised TypeError and caused a 500 error when opening the customer player.

Add get_max_revisions() helper that always returns a non-negative int,
and use it in play(), revise(), and admin_settings().
2026-08-05 03:04:48 +00:00
Troll (Hermes Agent)
b8ddff9afe Update README and REVIEW with all new features (kiosk, pricing, cancelled status, revision history, stems, sales, backups) 2026-08-04 20:46:47 +00:00
Troll (Hermes Agent)
8de32d91b7 Move revision history above operator notes, move cancel button next to status with confirmation 2026-08-04 18:58:49 +00:00
Troll (Hermes Agent)
968a6fb43c Add Cancelled status and cancel request button 2026-08-04 17:56:02 +00:00
Troll (Hermes Agent)
fd58cf47da Reorder Suno copy buttons to Lyrics, Style, Title 2026-08-04 17:49:44 +00:00
Troll (Hermes Agent)
985092d629 Remove footer URL from kiosk page 2026-08-04 17:46:49 +00:00
Troll (Hermes Agent)
9cc1bd94a6 Trim Hermes API key section on settings page 2026-08-04 17:45:16 +00:00
Troll (Hermes Agent)
c726525c8e Add public kiosk page with QR/pricing cycle and configurable slide timing 2026-08-04 17:41:33 +00:00
Troll (Hermes Agent)
a25bf3a9c9 Add admin Pricing page with fixed and custom items 2026-08-04 17:17:57 +00:00
Troll (Hermes Agent)
a3fd5938a5 Detect missing tables in DB health check and always show schema fix button 2026-08-04 16:59:54 +00:00
Troll (Hermes Agent)
cda4d57859 Add revision history log and music files ZIP backup 2026-08-04 16:54:51 +00:00
Troll (Hermes Agent)
8246f641a2 Move request status badge to top of admin request page 2026-08-04 16:45:24 +00:00
Troll (Hermes Agent)
0c90b5a298 Make all customer info fields editable from admin request page 2026-08-04 16:32:17 +00:00
Troll (Hermes Agent)
da917692f0 Add admin Sales report page 2026-08-04 01:20:56 +00:00
Troll (Hermes Agent)
d02d0b3d25 Add stems_link support for Pingvin-Share-X delivery 2026-08-04 01:10:15 +00:00
Troll (Hermes Agent)
02f1d05301 chore: remove stray test settings file 2026-08-03 22:55:59 +00:00
Troll (Hermes Agent)
a72da4c5da ui: remove Hermes API key regenerate button from admin settings
Key is now managed via HERMES_API_KEY env var only.
2026-08-03 22:55:55 +00:00
Troll (Hermes Agent)
107e558aea revert: HERMES_API_KEY env var takes precedence over runtime settings
Simpler ops model: set the key in Portainer environment variables.
2026-08-03 22:54:45 +00:00
Troll (Hermes Agent)
fc700f2d82 fix: tolerate plaintext Hermes API key in booth_settings.json
The regenerate button stores encrypted keys, but legacy/manual writes may
save plaintext. get_hermes_api_key now falls back to returning the raw
value if Fernet decryption fails.
2026-08-03 22:47:57 +00:00
Troll (Hermes Agent)
06d87eb600 fix: persist runtime settings next to database so they survive redeploys 2026-08-03 22:37:57 +00:00
Troll (Hermes Agent)
b6a0987236 fix: isolate metadata keys passed to admin settings template
Previously passed the entire runtime_settings dict as metadata, which could
clobber/overlap email form fields. Now only artist/album/year/comment are passed.
2026-08-03 19:11:23 +00:00
Troll (Hermes Agent)
d5d4882d07 feat: require customer approval before mark paid/deliver
- Disable checkboxes, payment ref input, and submit button in admin UI when customer has not approved.
- Add server-side guard in mark_paid_deliver action.
2026-08-03 19:07:22 +00:00
Troll (Hermes Agent)
3057eb8eda feat: stream MP3s through backend proxy endpoint
- Replace /audio/<token>/<v>.mp3 with /api/stream/<token>/<v>.mp3.
- Stream bytes from private storage with Accept-Ranges and Content-Range support.
- Keep old /audio route returning 404.
- Update player page JS to use new stream endpoint.
2026-08-03 18:59:00 +00:00
Troll (Hermes Agent)
5863c32e35 ui: assign audio src via JS so direct MP3 URLs are not in page source 2026-08-03 18:52:01 +00:00
Troll (Hermes Agent)
56493f5ea7 feat: disable direct MP3 download from customer player page
- Add controlsList=nodownload to audio elements.
- Serve audio with Content-Disposition: inline to discourage browser save dialogs.
2026-08-03 18:49:26 +00:00
Troll (Hermes Agent)
1694b50160 ui: display v0.2 version tag on admin settings page 2026-08-03 18:44:25 +00:00
Troll (Hermes Agent)
06db9f3e55 ui: preserve blank lines between verses in customer lyrics view 2026-08-03 18:42:31 +00:00
Troll (Hermes Agent)
d44882c237 ui: hide Suno metatag brackets from customer lyrics view 2026-08-03 18:41:06 +00:00
Troll (Hermes Agent)
e5b8186b4f fix: remove pre-wrap from lyrics container to eliminate phantom spacing 2026-08-03 18:36:24 +00:00
Troll (Hermes Agent)
d7e30ba317 ui: compress lyrics line spacing further on player page 2026-08-03 18:28:31 +00:00
Troll (Hermes Agent)
5757a768d5 ui: tighten lyrics spacing on player page 2026-08-03 18:16:00 +00:00
Troll (Hermes Agent)
7a9c8b8240 ui: show formatted lyrics on customer player page above audio players 2026-08-03 18:13:44 +00:00
Troll (Hermes Agent)
6a60aa686c feat: Hermes prompt callback endpoint + API key management
- Add /api/prompt/<rid> callback endpoint with dual auth:
  per-request signed URL token + Bearer API key.
- Add HERMES_API_KEY config and runtime key helpers in app.py.
- Update admin request page to copy request details + callback URL.
- Add API key management to admin settings: regenerate, mask, show-once.
- Update .env.example, docker-compose.yml, README, REVIEW docs.
2026-08-03 17:16:56 +00:00
Troll (Hermes Agent)
e46893e0b4 docs: update comments, docstrings, README, REVIEW, and env docs to match current features 2026-08-03 00:11:41 +00:00
Troll (Hermes Agent)
0aa3eab084 fix: record payment ref immediately; show it on admin request page 2026-08-02 23:23:45 +00:00
Troll (Hermes Agent)
109ac6c0b2 fix: make settings metadata fields always default to empty string 2026-08-02 22:41:21 +00:00
Troll (Hermes Agent)
4ab1c1e589 fix: correct DB health fix button action from fix_schema to fix_db 2026-08-02 22:35:22 +00:00
Troll (Hermes Agent)
3cb63a6480 ui: convert admin request page to two-column layout 2026-08-02 22:24:54 +00:00
Troll (Hermes Agent)
3e25c3638b feat: add operator-only notes field per request 2026-08-02 22:10:42 +00:00
Troll (Hermes Agent)
41ca43b9c2 fix: add missing MAX_REVISIONS config default to prevent player page 500 2026-08-02 22:04:51 +00:00
Troll (Hermes Agent)
2ac99fde8b feat: add /status order lookup page linked from request form 2026-08-02 22:00:27 +00:00
Troll (Hermes Agent)
5e26650b90 feat: add booth open/closed toggle on settings page 2026-08-02 18:17:59 +00:00
Troll (Hermes Agent)
c39265ab42 fix: keep metadata and email fields populated after saving settings 2026-08-02 18:05:51 +00:00
Troll (Hermes Agent)
35c8a722fe docs: update FAQ page from edited draft 2026-08-02 18:01:30 +00:00
Troll (Hermes Agent)
023b4fade7 feat: add /faq page and link from request form 2026-08-02 17:31:08 +00:00
Troll (Hermes Agent)
382b05d7f8 fix: keep form values and show email error on request page 2026-08-02 17:05:27 +00:00