dragonflight/services/web-ui/public
ZGaetano 4be12c6f9a fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry
VIDEO FREEZE UNDER BURN (transient stall, self-recovers): all 8 capture
sidecars ran NVIDIA_VISIBLE_DEVICES=all with no -gpu selector, so ffmpeg
nvenc put every session (8 HEVC masters + 8 HLS = 16) on physical GPU 0
while the other two L4s sat idle. GPU 0 NVENC hit 86%, encode fell below
realtime, the framecache ring lapped → video froze → caught up → recovered.
Bridge verified smooth at 60fps throughout. FIX: node-agent now round-robins
each sidecar to a GPU by capture port (port % detected-GPU-count) via
NVIDIA_VISIBLE_DEVICES, honoring an explicit gpuUuid when set. Auto-detects
GPU count from nvidia-smi (override CAPTURE_GPU_COUNT). ~3 encoders/GPU now.

GOP PARSE: Number.parseFloat('60000/1001') returns 60000, making GOP 120000
(near open-GOP) instead of ~120. Added parseFps() to handle rational rates;
fixed hevcNvencArgs + buildHlsVideoArgs.

FILMSTRIP: RustFS object store intermittently returns NoSuchKey on GET for
keys that List/Head confirm exist, blanking the strip. Generation/queue/DB
all verified healthy (13/15 assets HAVE filmstrips). FIX: API now serves the
filmstrip JSON through itself with retry-on-NoSuchKey (succeeds within a
couple attempts) instead of handing the browser a signed URL — also closes
the S3 CORS gap. Frontend updated to consume the direct JSON.
2026-06-04 15:56:44 +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 feat(admin): cluster-wide Logs page + fix container log demux + poll containers 2026-06-04 05:28:17 +00: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 feat(admin): cluster-wide Logs page + fix container log demux + poll containers 2026-06-04 05:28:17 +00:00
index.html feat(web-ui): MCR page — channels, playlist, transport, preview 2026-05-30 14:02:25 +00:00
modal-new-recorder.jsx fix(capture): restore audio wallclock (throughput) + remove CPU codec options 2026-06-04 04:14:59 +00:00
screens-admin.jsx feat(growing): auto-promotion scanner + hours-based delay setting 2026-06-04 13:14:03 +00:00
screens-asset.jsx fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
screens-auth.jsx revert: restore orange accent + original home layout 2026-06-02 19:31:30 +00: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 fix(web-ui): orange pulse logo (bigger, no canvas), fix library missing expandedBins state 2026-06-03 04:02:17 +00:00
screens-ingest.jsx fix(capture+gui): kill audio-drift regression + fix elapsed/signal status 2026-06-04 13:21:30 +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 fix(merge): resolve conflict in screens-library.jsx 2026-06-03 10:43:59 +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 feat(admin): cluster-wide Logs page + fix container log demux + poll containers 2026-06-04 05:28:17 +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 fix(capture): derive audio PTS from sample count (kill 2.5s leading silence) 2026-06-04 05:01:05 +00:00
styles-modal.css fix(web-ui): restore correct styles-fixes.css with DragonFlame logo CSS + upload actual screens-library.jsx nested bins: styles-modal.css 2026-06-02 23:35:12 -04:00
styles-playout.css Constrain playout preview to 960px for 1080p screens 2026-06-01 11:09:54 +00:00
styles-rest.css feat(admin): cluster-wide Logs page + fix container log demux + poll containers 2026-06-04 05:28:17 +00:00
styles-screens.css feat(web-ui): nested bins tree + DragonFlame CSS restored (complete) 2026-06-03 03:48:29 +00:00
styles.css revert: restore orange accent + original home layout 2026-06-02 19:31:30 +00: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(promotion): implement manual growing files promotion via BullMQ queue + pending_migration status + right click Move to S3 2026-06-03 00:38:50 +00:00