dragonflight/services/web-ui/public
Zac ac1878452f fix: library + caller-only recorders + live signal indicator
Three problems blocked the end-to-end flow:

1) Library always rendered empty because /assets returns {assets,total} but
   index.html (and capture.html) assumed r.data was an array. Fixed in
   api.js by unwrapping r.data.assets centrally; total is kept on r.total.

2) SRT/RTMP caller mode pulled audio only. ffmpeg opened the network input
   before the H264 SPS arrived, marked the video stream as pix_fmt=none,
   and silently dropped it from the stream map. Added -probesize 32M
   -analyzeduration 10M -fflags +genpts and explicit -map 0✌️0?/0🅰️0? so
   each track survives independently of when it appears.

3) Hitting Record gave no feedback about whether a stream was actually
   arriving. capture-manager now parses ffmpeg progress lines (frame=...
   fps=...) and tracks framesReceived, currentFps, lastFrameAt, lastError.
   getStatus() returns a derived signal enum (connecting | receiving |
   lost | error | stopped). The recorder controller gives each spawned
   container a stable network alias `recorder-<id>` and the GET
   /recorders/:id/status endpoint proxies the live capture status through.
   recorders.html polls that every 2s and renders the badge under each
   active card with the running frame/fps counter or the ffmpeg error.

Also:
* recorders.html: dropped the listener-mode UI entirely. All new recorders
  are caller-mode (pull). The MAM is no longer offered as an RTMP/SRT
  server. Legacy listener records still render but read-only.
2026-05-17 07:39:58 -04:00
..
css feat: full GUI redesign — broadcast control register aesthetic: common.css 2026-05-16 13:02:33 -04:00
js fix: library + caller-only recorders + live signal indicator 2026-05-17 07:39:58 -04:00
capture.html feat: redesign capture.html with new design system 2026-05-16 16:48:25 -04:00
index.html feat: redesign index.html, upload.html, recorders.html: index.html 2026-05-16 13:04:45 -04:00
jobs.html redesign: jobs.html — filter tabs, type chips, inline progress, detail panel 2026-05-16 17:02:39 -04:00
login.html fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: login.html 2026-05-15 23:40:15 -04:00
player.html add services/web-ui/public/player.html 2026-04-07 21:58:22 -04:00
recorders.html fix: library + caller-only recorders + live signal indicator 2026-05-17 07:39:58 -04:00
settings.html feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: settings.html 2026-04-18 13:42:09 -04:00
upload.html feat: redesign upload.html and recorders.html: upload.html 2026-05-16 13:06:10 -04:00