dragonflight/services/web-ui/public
Claude a2790601c9 feat(library): first-frame poster thumbnail for live recordings
Replace the HLS 'connecting…' player in the library with a real frame grabbed
from the start of the recording, while the recording is still live.

Flow:
- recorders.js already pre-creates the asset as status='live' + ASSET_ID env
- capture-manager.start() fires _publishLiveThumbnail() (non-blocking): polls
  /live/<id> for the first seg-*.ts, extracts frame 0 via ffmpeg (scaled JPEG,
  yuvj420p), uploads to S3 thumbnails/<id>.jpg, then POSTs the key to mam-api
- new mam-api POST /assets/:id/live-thumbnail sets thumbnail_s3_key on the still
  -live row (status untouched); idempotent no-op once finalized
- visuals.jsx AssetThumb: for live assets, show the static poster once the key /
  signed URL is available, else fall back to the live HLS preview. Pulsing LIVE
  border kept either way
- POST /assets gains an optional status param (default 'processing'); 'live'
  skips the proxy/thumbnail queue
- capture /stop route now finalizes the pre-created asset by id (guarded) instead
  of POSTing a duplicate

🤖 Generated with Claude Code
2026-06-02 15:21:05 +00:00
..
css fix: remove Google Fonts, fix editor link to :47435, fix page titles 2026-05-18 22:56:51 -04:00
downloads feat: v2.2.3 plugin + duration fix 2026-06-01 01:10:55 +00:00
fonts web-ui: wave-1 finish — self-host fonts + multi-stage Dockerfile 2026-05-21 16:32:55 +00:00
img feat(brand): add Wild Dragon logo + favicon 2026-05-18 14:11:29 +00:00
js rip out entire auth/login flow 2026-05-27 03:39:58 +00:00
app.jsx design: swap accent to Flame Blue #1025A1 (Wild Dragon brand standard) 2026-06-02 08:56:29 -04:00
auth-gate.jsx ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
data.jsx feat: v2.2.3 plugin + duration fix 2026-06-01 01:10:55 +00:00
favicon.ico feat(brand): add Wild Dragon logo + favicon 2026-05-18 14:11:29 +00:00
icons.jsx fix(web-ui): restore icon audit fixes on feat/playout-mcr 2026-05-31 13:52:37 -04:00
index.html feat(web-ui): MCR page — channels, playlist, transport, preview 2026-05-30 14:02:25 +00:00
modal-new-recorder.jsx Merge design/overhaul-tasteskill: Flame Blue accent, home recomposition, motion layer 2026-06-02 13:28:54 +00:00
screens-admin.jsx design: overhaul pass — amber accent, home recomposition, motion layer 2026-06-02 08:20:15 -04:00
screens-asset.jsx feat(library): remove Audio tab (revisit later) 2026-06-02 11:18:30 +00:00
screens-auth.jsx design: swap accent to Flame Blue #1025A1 (Wild Dragon brand standard) 2026-06-02 08:56:29 -04:00
screens-editor.jsx feat(web-ui): in-page delete confirm modal + WDL home footer 2026-05-31 18:31:07 -04:00
screens-home.jsx design: overhaul pass — amber accent, home recomposition, motion layer 2026-06-02 08:20:15 -04:00
screens-ingest.jsx fix(deltacast-bridge): call VHD_SetBiDirCfg before board open + set channel SDI mode 2026-06-02 11:23:39 +00:00
screens-jobs.jsx design: overhaul pass — amber accent, home recomposition, motion layer 2026-06-02 08:20:15 -04:00
screens-library.jsx Add multi-select to library page 2026-06-01 03:01:19 +00:00
screens-playout.jsx fix(web-ui): remove Capture nav item, add Playout testing warning 2026-06-02 00:17:04 +00:00
screens-projects.jsx feat(web-ui): in-page delete confirm modal + WDL home footer 2026-05-31 18:31:07 -04:00
screens-resources.jsx fix: use external MAM_API_URL for remote capture sidecars; add cluster metrics endpoint and dashboard resource graphs 2026-05-29 01:04:24 +00:00
shell.jsx Merge design/overhaul-tasteskill: Flame Blue accent, home recomposition, motion layer 2026-06-02 13:28:54 +00:00
styles-asset.css ui: full audit pass (fixes #146, #147, #148, #149, #151, #152, #153, #154, #155) 2026-05-28 23:50:07 +00:00
styles-fixes.css design: swap accent to Flame Blue #1025A1 (Wild Dragon brand standard) 2026-06-02 08:56:29 -04:00
styles-modal.css fix(web-ui): recorder modal body scrolls (min-height:0) so codec/destination aren't clipped at zoom 2026-06-01 13:49:10 -04:00
styles-playout.css Constrain playout preview to 960px for 1080p screens 2026-06-01 11:09:54 +00:00
styles-rest.css design: swap accent to Flame Blue #1025A1 (Wild Dragon brand standard) 2026-06-02 08:56:29 -04:00
styles-screens.css feat(web-ui): redesigned Dashboard + playout as-run log 2026-05-31 17:15:32 -04:00
styles.css design: swap accent to Flame Blue #1025A1 (Wild Dragon brand standard) 2026-06-02 08:56:29 -04:00
tweaks-panel.jsx Add Z-AMPP UI: visuals + tweaks-panel: tweaks-panel.jsx 2026-05-22 08:13:37 -04:00
visuals.jsx feat(library): first-frame poster thumbnail for live recordings 2026-06-02 15:21:05 +00:00