2026-03-03T06:02:21Z - 2026-05-31T05:02:21Z

Overview

12 active pull requests
144 active issues
Excluding merges, 9 authors have pushed 747 commits to main and 850 commits to all branches. On main, 941 files have changed and there have been 302645 additions and 244365 deletions.

1 release published by 1 user

Tag v0.phase1-editor 2026-05-18 20:20:47 -04:00

9 pull requests merged by 1 user

3 pull requests proposed by 1 user

Proposed #161 All-Intra HEVC (NVENC) growing-file ingest 2026-05-29 14:02:54 -04:00

Proposed #170 HLS VOD playback for browser (supplements MP4 proxy) 2026-05-29 16:22:03 -04:00

Proposed #171 Recorder: default All-Intra HEVC (NVENC), custom bitrate, auto fps/res, source-bitrate warning 2026-05-29 17:07:26 -04:00

126 issues closed from 1 user

Closed #150 UI Audit: New Recorder modal — codec/audio/container sections feel stub-like 2026-05-29 17:25:57 -04:00

Closed #155 UI Audit: page-header pattern inconsistent — Home, Library, Editor don't use it 2026-05-28 19:53:03 -04:00

Closed #154 UI Audit: Projects screen has 2 icon-only buttons missing aria-label 2026-05-28 19:52:53 -04:00

Closed #153 UI Audit: Home launcher duplicates sidebar nav with no extra value 2026-05-28 19:52:44 -04:00

Closed #152 UI Audit: Tokens screen — parody / commentary content surfaces in admin nav 2026-05-28 19:52:35 -04:00

Closed #151 UI Audit: Editor "Coming Soon" bumper is the most visible design violation 2026-05-28 19:52:21 -04:00

Closed #149 UI Audit: sidebar IA flat — 18 nav items, only 1 section divider 2026-05-28 19:52:10 -04:00

Closed #148 UI Audit: 487 inline styles on Jobs screen — extract to CSS 2026-05-28 19:51:59 -04:00

Closed #147 UI Audit: glassmorphism + accent gradients in 15 places violate DESIGN.md ban 2026-05-28 19:51:49 -04:00

Closed #146 UI Audit: 186 em-dashes in JSX/copy violate DESIGN.md ban 2026-05-28 19:50:09 -04:00

Closed #80 Audio tab 2026-05-27 00:54:43 -04:00

Closed #57 Dashboard redesign — dual ops + content view 2026-05-26 22:12:02 -04:00

Closed #52 [Low] Duration badge overlaps metadata text in asset card 2026-05-26 22:10:12 -04:00

Closed #77 BUG: upload.js AMPP sync is fire-and-forget — errors swallowed silently with no retry 2026-05-26 22:10:07 -04:00

Closed #100 No graceful shutdown handler — SIGTERM kills mam-api mid-tick, leaks Redis + Docker sockets 2026-05-26 22:09:59 -04:00

Closed #101 Error handler leaks raw Postgres error messages (schema/column/UUID syntax) to clients 2026-05-26 22:09:54 -04:00

Closed #102 UUID path params not validated — every /:id route returns 500 with PG error on bad input 2026-05-26 22:09:47 -04:00

Closed #103 Scheduler tick has race condition — multi-node deploy will double-fire recorder starts 2026-05-26 22:09:41 -04:00

Closed #104 SSRF: POST /recorders/probe accepts arbitrary URLs and probes raw TCP/UDP on internal network 2026-05-26 22:09:34 -04:00

Closed #105 Secret leak: recorder start error response includes full Docker create payload (S3 keys, stream keys) 2026-05-26 22:09:27 -04:00

Closed #106 Node hijack: POST /cluster/heartbeat allows any authed user to overwrite primary node's api_url 2026-05-26 22:09:21 -04:00

Closed #107 Migrations silently swallow failures — partial schema upgrades leave server running on broken DB 2026-05-26 22:09:15 -04:00

Closed #108 zampp2 GPU capabilities stuck on raw /dev detection — GPU_COUNT env override blocks nvidia-smi enrichment 2026-05-26 22:09:08 -04:00

Closed #112 Frontend: hard page reload on project delete wipes in-flight state 2026-05-26 22:09:02 -04:00

Closed #115 Frontend: hardcoded /api/v1 paths bypass ZAMPP_API.fetch in upload module 2026-05-26 22:08:57 -04:00

Closed #116 Frontend: EditorKeyboard crash on document.activeElement = null 2026-05-26 22:08:49 -04:00

Closed #117 Frontend: Schedule rows crash on null recorder_id (orphaned schedule) 2026-05-26 22:08:43 -04:00

Closed #118 Backend: SDK upload extracts archives with no path-traversal protection (admin-only RCE risk) 2026-05-26 22:08:38 -04:00

Closed #119 Backend: assets list endpoint has no LIMIT cap — ?limit=999999999 OOMs the API 2026-05-26 22:08:31 -04:00

Closed #120 Backend: multer.memoryStorage holds 500 MB parts in RAM — concurrent uploads OOM the API 2026-05-26 22:08:25 -04:00

Closed #121 Backend: GET /recorders fires unbounded concurrent Docker API + PG calls (N+1) 2026-05-26 22:08:19 -04:00

Closed #123 Frontend: 13 stray console.error / console.warn calls in production JSX 2026-05-26 22:08:13 -04:00

Closed #124 Frontend: typo setPgMclips should be setPgmClips for consistency 2026-05-26 22:08:04 -04:00

Closed #125 Frontend: hardcoded Premiere panel version 1.0.1 in editor download links 2026-05-26 22:07:59 -04:00

Closed #126 Accessibility: icon-only buttons missing aria-label across asset and library screens 2026-05-26 22:07:54 -04:00

Closed #130 Bug: Jobs nav badge hardcoded to "3" — never reflects real count 2026-05-26 22:07:46 -04:00

Closed #131 Bug: Library route renders empty — .page selector not matched 2026-05-26 22:07:40 -04:00

Closed #132 Bug: Schedule route renders empty content 2026-05-26 22:07:35 -04:00

Closed #133 A11y: --text-3 color fails WCAG AA contrast on --bg-0 2026-05-26 22:07:30 -04:00

Closed #134 UX: App not responsive — sidebar overflows on mobile (375px) 2026-05-26 22:07:23 -04:00

Closed #135 A11y: Global search input missing aria-label and role="combobox" 2026-05-26 22:07:17 -04:00

Closed #136 UX: Dashboard and Library share the same nav icon 2026-05-26 22:07:12 -04:00

Closed #137 A11y: Search wrapper missing role="search" landmark 2026-05-26 22:07:08 -04:00

Closed #138 A11y: Password inputs in Settings missing autocomplete attribute 2026-05-26 22:07:03 -04:00

Closed #122 Frontend: production deploy ships React dev builds + in-browser Babel — slow first paint, console warnings leak 2026-05-26 22:06:58 -04:00

Closed #139 Perf: React dev build + in-browser Babel loaded in production 2026-05-26 22:06:53 -04:00

Closed #140 A11y: Asset card thumbnails missing alt text 2026-05-26 22:06:47 -04:00

Closed #141 UX: Settings inputs not wrapped in form — no Enter key or native validation 2026-05-26 22:06:42 -04:00

Closed #142 UX: No sidebar collapse/expand toggle button 2026-05-26 22:06:37 -04:00

Closed #128 Tracker: 2026-05-26 audit session — 27 bugs logged (#100-#127) 2026-05-26 22:03:26 -04:00

Closed #40 [High] All projects rail item never clears openProject filter 2026-05-26 22:03:21 -04:00

Closed #49 [Low] Project context menu missing contextmenu/scroll dismiss handlers 2026-05-26 22:03:11 -04:00

Closed #50 [Low] Project grid cards have no right-click context menu 2026-05-26 22:03:05 -04:00

Closed #55 [Low] Recorder polling spams 401s on unauthenticated tabs 2026-05-26 22:02:13 -04:00

Closed #58 Filmstrip dispaly only works for clips that are ingested 2026-05-26 22:01:40 -04:00

Closed #60 BUG: Asset copy duplicates proxy+thumbnail S3 refs — no S3 copy done 2026-05-26 22:01:29 -04:00

Closed #61 BUG: S3 proxy client export breaks when s3Client is rebuilt 2026-05-26 22:01:15 -04:00

Closed #63 BUG: POST /assets with status=live asset already existing: captures registered as processing overwrite the live asset 2026-05-26 22:01:02 -04:00

Closed #64 BUG: POST /assets body param sourceType, needsProxy documented but unused 2026-05-26 22:00:47 -04:00

Closed #66 BUG: POST /assets/:id/mark-empty requires status=live — but capture shutdown may pass wrong assetId 2026-05-26 22:00:37 -04:00

Closed #68 BUG: GET /upload route missing — upload.js has no list endpoint, frontend may 404 2026-05-26 22:00:23 -04:00

Closed #73 BUG: BullMQ orphan jobs remain when asset row is deleted — no GC for dangling jobs 2026-05-26 22:00:14 -04:00

Closed #74 BUG: Upload POST /part uses upload.single('file') but nginx strips Content-Type for multipart — multer may misparse 2026-05-26 21:59:59 -04:00

Closed #90 BUG: Batch-trim DB jobs row is orphaned — no status lifecycle, job_type enum is stale 2026-05-26 21:58:57 -04:00

Closed #70 BUG: POST /assets/batch-trim creates jobs table row with wrong job_type — no matching pg_enum value 2026-05-26 21:58:50 -04:00

Closed #75 BUG: job_type and job_status enums don't match — jobs.js DB table uses job_type ENUM with missing values 2026-05-26 21:58:45 -04:00

Closed #93 Re-trigger proxy and filmstrip jobs from asset page 2026-05-26 21:58:28 -04:00

Closed #94 Code Audit: 10 additional bugs found across mam-api, worker, and web-ui 2026-05-26 21:58:09 -04:00

Closed #143 Bug: Asset player stalls without buffering when seeking to end of clip 2026-05-26 21:52:26 -04:00

Closed #110 index.html missing bmd-card.js — fixed in 1535bba but documenting the gap 2026-05-26 21:48:51 -04:00

Closed #111 Frontend: setTimeout/setInterval leaks across multiple screens — setState on unmounted components 2026-05-26 21:48:45 -04:00

Closed #113 Frontend: sidebar shows hardcoded "3" badge on Jobs forever 2026-05-26 21:29:47 -04:00

Closed #91 BUG: recorders.js dockerApi has no socket timeout — hung Docker socket blocks recorder start/stop indefinitely 2026-05-26 21:26:06 -04:00

Closed #109 node-agent BMD_COUNT override hardcodes /dev/blackmagic/dv${i} but real devices are /dev/blackmagic/io${i} 2026-05-26 21:21:36 -04:00

Closed #127 node-agent on zampp2: redundant + dead env vars in .env.worker 2026-05-26 21:21:28 -04:00

Closed #129 test 2026-05-26 21:20:13 -04:00

Closed #99 Build & deploy Premiere panel v1.1.0 to BMG-PC-Edit 2026-05-26 16:10:30 -04:00

Closed #97 Feature: Premiere Pro Plugin - Growing Files Tab 2026-05-26 12:41:55 -04:00

Closed #98 Design: Premiere Pro Plugin - Match Dragonflight Visual System 2026-05-26 12:41:33 -04:00

Closed #96 [Closed - wrong tool] see #94 comment 2026-05-26 07:40:10 -04:00

Closed #95 CLOSED — created in error 2026-05-26 07:39:25 -04:00

Closed #41 [High] Drag-and-drop allows cross-project bin moves 2026-05-25 20:22:25 -04:00

Closed #39 [Critical] js/api.js - 563 lines of orphaned dead code 2026-05-25 20:21:57 -04:00

Closed #43 [Medium] Last 24h smart filter is a no-op 2026-05-25 20:21:57 -04:00

Closed #87 BUG: Thumbnail failure silently overrides proxy failure — flips asset to ready even when proxy is absent 2026-05-25 19:36:42 -04:00

Closed #88 BUG: upload.js imports from non-existent ../middleware/requireAuth.js — server crashes on startup if rebuilt 2026-05-25 19:36:42 -04:00

Closed #89 SECURITY: SDK archive upload vulnerable to path traversal (tar/zip slip) — attacker can write arbitrary files on the server 2026-05-25 19:36:42 -04:00

Closed #42 [High] refreshAssets useCallback defeats polling effect, causes timer drift 2026-05-25 19:34:42 -04:00

Closed #45 [Medium] Rename project from Library doesn't refresh sidebar rail 2026-05-25 19:34:41 -04:00

Closed #46 [Medium] Project colors shift after deletion + refresh() 2026-05-25 19:34:41 -04:00

Closed #85 BUG: Multipart upload failure leaves dangling S3 parts and 'ingesting' asset row — no cleanup on error 2026-05-25 19:34:41 -04:00

Closed #44 [Medium] submitBin swallows re-fetch errors (dangling promise) 2026-05-25 19:32:21 -04:00

Closed #47 [Medium] Droppable highlight applied to ALL bins simultaneously 2026-05-25 19:32:20 -04:00

Closed #67 BUG: Recorder scheduler enqueueNextOccurrence does not check end_at < start_at for cloned rows 2026-05-25 19:32:20 -04:00

Closed #84 BUG: Containers tab always shows RUNNING badge and hardcoded 0% CPU / 0 MB memory 2026-05-25 19:32:20 -04:00

Closed #82 BUG: shell.jsx Jobs nav badge hardcoded to "3" — always shows "3" regardless of actual job count 2026-05-25 19:29:40 -04:00

Closed #83 BUG: Cluster screen "Remove node" sends DELETE to wrong URL — /cluster/nodes/:id vs server /:id 2026-05-25 19:29:40 -04:00

Closed #86 BUG: Upload routes missing authentication — requireAuth imported but never used 2026-05-25 19:29:40 -04:00

Closed #78 BUG: GET /assets with both status and include_archived=true — archived filter overrides status filter 2026-05-25 19:29:32 -04:00

Closed #79 BUG: proxy.js worker sets status='error' on failure at end — overrides existing live/ingesting status 2026-05-25 19:29:32 -04:00

Closed #81 Filmstrip generation timeout on long videos 2026-05-25 19:29:32 -04:00

Closed #53 [Low] No error state when loadData fails - empty UI with no warning 2026-05-25 18:27:30 -04:00

Closed #54 [Low] normalizeAsset seed uses only first char of ID (6 variations) 2026-05-25 18:27:30 -04:00

Closed #51 [Low] Smart filter rail items have no active visual state 2026-05-25 18:27:29 -04:00

Closed #72 BUG: /health endpoint intercepted by nginx — returns text/plain "healthy\n", not application/json 2026-05-25 18:27:29 -04:00

Closed #76 BUG: GET /assets/:id/live-path uses asset display_name to find recorder — will match wrong recorder 2026-05-25 18:27:29 -04:00

Closed #62 BUG: deleteObject in asset hard-delete may throw — route has no catch per-item 2026-05-25 18:27:27 -04:00

Closed #69 BUG: POST /assets no input validation for duration — NaN stored when absent 2026-05-25 18:27:27 -04:00

Closed #71 BUG: PUT /sequences/:id/clips uses client.query('BEGIN') without error rollback on the inner INSERT loop 2026-05-25 18:27:27 -04:00

Closed #65 BUG: GET /schedules?status=invalid returns all schedules instead of 400 2026-05-25 18:27:26 -04:00

Closed #38 [Critical] apiFetch headers spread overwrites Content-Type when custom headers passed 2026-05-25 18:27:24 -04:00

Closed #48 [Low] Missing type:module in mam-api package.json 2026-05-25 18:27:24 -04:00

Closed #59 BUG: /health returns text/plain not application/json — smoke tests fail 2026-05-25 18:27:24 -04:00

Closed #37 Test issue from API 2026-05-24 14:04:51 -04:00

Closed #32 [Plugin] GUI Redesign - Wild Dragon Design System 2026-05-24 13:20:14 -04:00

Closed #34 [Server] Cleanup Task: Expired Temp Segments 2026-05-24 13:20:14 -04:00

Closed #35 [Testing] End-to-End Testing: Advanced Features 2026-05-24 13:20:14 -04:00

Closed #36 [Documentation] Premiere Plugin: Advanced Features Guide 2026-05-24 13:20:14 -04:00

Closed #30 [Plugin] Feature: FCP XML Export & Conform 2026-05-24 13:20:13 -04:00

Closed #31 [Plugin] Feature: Hi-Res Auto-Relink 2026-05-24 13:20:13 -04:00

Closed #33 [Server] Database Migration: Advanced Features Schema 2026-05-24 12:42:28 -04:00

Closed #13 Proxy worker: failed jobs for odd-dimension images and truncated ProRes captures 2026-05-23 13:20:35 -04:00

Closed #7 recorders: /live HLS cleanup + orphan reaper 2026-05-23 13:20:29 -04:00

Closed #9 retire openreel fork after in-house editor stabilizes 2026-05-22 22:42:42 -04:00

Closed #12 cluster: enforce master/worker topology — remove duplicate primary stack from zampp2 2026-05-21 21:45:57 -04:00

Closed #10 ZAMPP2: DeckLink Duo Mini — frame=0 despite signal detection, /dev/blackmagic not mounted in sidecar container 2026-05-21 18:51:40 -04:00

144 issues created by 1 user

Opened #7 recorders: /live HLS cleanup + orphan reaper 2026-05-18 10:27:29 -04:00

Opened #9 retire openreel fork after in-house editor stabilizes 2026-05-18 10:27:54 -04:00

Opened #10 ZAMPP2: DeckLink Duo Mini — frame=0 despite signal detection, /dev/blackmagic not mounted in sidecar container 2026-05-21 18:29:49 -04:00

Opened #12 cluster: enforce master/worker topology — remove duplicate primary stack from zampp2 2026-05-21 21:45:47 -04:00

Opened #13 Proxy worker: failed jobs for odd-dimension images and truncated ProRes captures 2026-05-22 22:39:07 -04:00

Opened #30 [Plugin] Feature: FCP XML Export & Conform 2026-05-24 11:55:39 -04:00

Opened #31 [Plugin] Feature: Hi-Res Auto-Relink 2026-05-24 11:55:55 -04:00

Opened #32 [Plugin] GUI Redesign - Wild Dragon Design System 2026-05-24 11:55:56 -04:00

Opened #33 [Server] Database Migration: Advanced Features Schema 2026-05-24 11:56:05 -04:00

Opened #34 [Server] Cleanup Task: Expired Temp Segments 2026-05-24 11:56:11 -04:00

Opened #35 [Testing] End-to-End Testing: Advanced Features 2026-05-24 11:56:17 -04:00

Opened #36 [Documentation] Premiere Plugin: Advanced Features Guide 2026-05-24 11:56:17 -04:00

Opened #37 Test issue from API 2026-05-24 14:04:41 -04:00

Opened #38 [Critical] apiFetch headers spread overwrites Content-Type when custom headers passed 2026-05-24 14:05:02 -04:00

Opened #39 [Critical] js/api.js - 563 lines of orphaned dead code 2026-05-24 14:05:02 -04:00

Opened #40 [High] All projects rail item never clears openProject filter 2026-05-24 14:05:02 -04:00

Opened #41 [High] Drag-and-drop allows cross-project bin moves 2026-05-24 14:05:02 -04:00

Opened #42 [High] refreshAssets useCallback defeats polling effect, causes timer drift 2026-05-24 14:05:02 -04:00

Opened #43 [Medium] Last 24h smart filter is a no-op 2026-05-24 14:05:03 -04:00

Opened #44 [Medium] submitBin swallows re-fetch errors (dangling promise) 2026-05-24 14:05:03 -04:00

Opened #45 [Medium] Rename project from Library doesn't refresh sidebar rail 2026-05-24 14:05:03 -04:00

Opened #46 [Medium] Project colors shift after deletion + refresh() 2026-05-24 14:05:03 -04:00

Opened #47 [Medium] Droppable highlight applied to ALL bins simultaneously 2026-05-24 14:05:03 -04:00

Opened #48 [Low] Missing type:module in mam-api package.json 2026-05-24 14:05:03 -04:00

Opened #49 [Low] Project context menu missing contextmenu/scroll dismiss handlers 2026-05-24 14:05:03 -04:00

Opened #50 [Low] Project grid cards have no right-click context menu 2026-05-24 14:05:03 -04:00

Opened #51 [Low] Smart filter rail items have no active visual state 2026-05-24 14:05:03 -04:00

Opened #52 [Low] Duration badge overlaps metadata text in asset card 2026-05-24 14:05:03 -04:00

Opened #53 [Low] No error state when loadData fails - empty UI with no warning 2026-05-24 14:05:03 -04:00

Opened #54 [Low] normalizeAsset seed uses only first char of ID (6 variations) 2026-05-24 14:05:03 -04:00

Opened #55 [Low] Recorder polling spams 401s on unauthenticated tabs 2026-05-24 14:05:03 -04:00

Opened #56 NLE Editor: React SPA Polish - Phases 1-3 2026-05-24 16:40:09 -04:00

Opened #57 Dashboard redesign — dual ops + content view 2026-05-24 21:23:58 -04:00

Opened #58 Filmstrip dispaly only works for clips that are ingested 2026-05-24 23:48:09 -04:00

Opened #59 BUG: /health returns text/plain not application/json — smoke tests fail 2026-05-25 02:06:02 -04:00

Opened #60 BUG: Asset copy duplicates proxy+thumbnail S3 refs — no S3 copy done 2026-05-25 02:56:35 -04:00

Opened #61 BUG: S3 proxy client export breaks when s3Client is rebuilt 2026-05-25 02:58:13 -04:00

Opened #62 BUG: deleteObject in asset hard-delete may throw — route has no catch per-item 2026-05-25 02:59:36 -04:00

Opened #63 BUG: POST /assets with status=live asset already existing: captures registered as processing overwrite the live asset 2026-05-25 03:22:04 -04:00

Opened #64 BUG: POST /assets body param sourceType, needsProxy documented but unused 2026-05-25 03:28:46 -04:00

Opened #65 BUG: GET /schedules?status=invalid returns all schedules instead of 400 2026-05-25 03:31:03 -04:00

Opened #66 BUG: POST /assets/:id/mark-empty requires status=live — but capture shutdown may pass wrong assetId 2026-05-25 03:41:14 -04:00

Opened #67 BUG: Recorder scheduler enqueueNextOccurrence does not check end_at < start_at for cloned rows 2026-05-25 03:45:11 -04:00

Opened #68 BUG: GET /upload route missing — upload.js has no list endpoint, frontend may 404 2026-05-25 03:51:22 -04:00

Opened #69 BUG: POST /assets no input validation for duration — NaN stored when absent 2026-05-25 04:07:41 -04:00

Opened #70 BUG: POST /assets/batch-trim creates jobs table row with wrong job_type — no matching pg_enum value 2026-05-25 05:34:41 -04:00

Opened #71 BUG: PUT /sequences/:id/clips uses client.query('BEGIN') without error rollback on the inner INSERT loop 2026-05-25 05:37:33 -04:00

Opened #72 BUG: /health endpoint intercepted by nginx — returns text/plain "healthy\n", not application/json 2026-05-25 05:50:23 -04:00

Opened #73 BUG: BullMQ orphan jobs remain when asset row is deleted — no GC for dangling jobs 2026-05-25 06:19:04 -04:00

Opened #74 BUG: Upload POST /part uses upload.single('file') but nginx strips Content-Type for multipart — multer may misparse 2026-05-25 06:22:07 -04:00

Opened #75 BUG: job_type and job_status enums don't match — jobs.js DB table uses job_type ENUM with missing values 2026-05-25 06:23:51 -04:00

Opened #76 BUG: GET /assets/:id/live-path uses asset display_name to find recorder — will match wrong recorder 2026-05-25 06:26:12 -04:00

Opened #77 BUG: upload.js AMPP sync is fire-and-forget — errors swallowed silently with no retry 2026-05-25 06:28:59 -04:00

Opened #78 BUG: GET /assets with both status and include_archived=true — archived filter overrides status filter 2026-05-25 06:29:51 -04:00

Opened #79 BUG: proxy.js worker sets status='error' on failure at end — overrides existing live/ingesting status 2026-05-25 06:35:43 -04:00

Opened #80 Audio tab 2026-05-25 09:28:36 -04:00

Opened #81 Filmstrip generation timeout on long videos 2026-05-25 18:38:41 -04:00

Opened #82 BUG: shell.jsx Jobs nav badge hardcoded to "3" — always shows "3" regardless of actual job count 2026-05-25 18:45:39 -04:00

Opened #83 BUG: Cluster screen "Remove node" sends DELETE to wrong URL — /cluster/nodes/:id vs server /:id 2026-05-25 18:46:09 -04:00

Opened #84 BUG: Containers tab always shows RUNNING badge and hardcoded 0% CPU / 0 MB memory 2026-05-25 18:46:12 -04:00

Opened #85 BUG: Multipart upload failure leaves dangling S3 parts and 'ingesting' asset row — no cleanup on error 2026-05-25 18:46:35 -04:00

Opened #86 BUG: Upload routes missing authentication — requireAuth imported but never used 2026-05-25 18:47:12 -04:00

Opened #87 BUG: Thumbnail failure silently overrides proxy failure — flips asset to ready even when proxy is absent 2026-05-25 19:25:49 -04:00

Opened #88 BUG: upload.js imports from non-existent ../middleware/requireAuth.js — server crashes on startup if rebuilt 2026-05-25 19:26:29 -04:00

Opened #89 SECURITY: SDK archive upload vulnerable to path traversal (tar/zip slip) — attacker can write arbitrary files on the server 2026-05-25 19:27:16 -04:00

Opened #90 BUG: Batch-trim DB jobs row is orphaned — no status lifecycle, job_type enum is stale 2026-05-25 19:29:05 -04:00

Opened #91 BUG: recorders.js dockerApi has no socket timeout — hung Docker socket blocks recorder start/stop indefinitely 2026-05-25 19:29:39 -04:00

Opened #92 Growing Files: Per-upload toggle, retention controls, and seamless relinking 2026-05-25 20:57:58 -04:00

Opened #93 Re-trigger proxy and filmstrip jobs from asset page 2026-05-26 01:20:52 -04:00

Opened #94 Code Audit: 10 additional bugs found across mam-api, worker, and web-ui 2026-05-26 01:30:07 -04:00

Opened #95 CLOSED — created in error 2026-05-26 07:39:20 -04:00

Opened #96 [Closed - wrong tool] see #94 comment 2026-05-26 07:39:24 -04:00

Opened #97 Feature: Premiere Pro Plugin - Growing Files Tab 2026-05-26 12:20:00 -04:00

Opened #98 Design: Premiere Pro Plugin - Match Dragonflight Visual System 2026-05-26 12:21:44 -04:00

Opened #99 Build & deploy Premiere panel v1.1.0 to BMG-PC-Edit 2026-05-26 12:44:33 -04:00

Opened #100 No graceful shutdown handler — SIGTERM kills mam-api mid-tick, leaks Redis + Docker sockets 2026-05-26 18:18:01 -04:00

Opened #101 Error handler leaks raw Postgres error messages (schema/column/UUID syntax) to clients 2026-05-26 18:18:08 -04:00

Opened #102 UUID path params not validated — every /:id route returns 500 with PG error on bad input 2026-05-26 18:18:08 -04:00

Opened #103 Scheduler tick has race condition — multi-node deploy will double-fire recorder starts 2026-05-26 18:18:31 -04:00

Opened #104 SSRF: POST /recorders/probe accepts arbitrary URLs and probes raw TCP/UDP on internal network 2026-05-26 18:18:38 -04:00

Opened #105 Secret leak: recorder start error response includes full Docker create payload (S3 keys, stream keys) 2026-05-26 18:18:40 -04:00

Opened #106 Node hijack: POST /cluster/heartbeat allows any authed user to overwrite primary node's api_url 2026-05-26 18:19:01 -04:00

Opened #107 Migrations silently swallow failures — partial schema upgrades leave server running on broken DB 2026-05-26 18:19:01 -04:00

Opened #108 zampp2 GPU capabilities stuck on raw /dev detection — GPU_COUNT env override blocks nvidia-smi enrichment 2026-05-26 18:19:21 -04:00

Opened #109 node-agent BMD_COUNT override hardcodes /dev/blackmagic/dv${i} but real devices are /dev/blackmagic/io${i} 2026-05-26 18:19:34 -04:00

Opened #110 index.html missing bmd-card.js — fixed in 1535bba but documenting the gap 2026-05-26 18:19:41 -04:00

Opened #111 Frontend: setTimeout/setInterval leaks across multiple screens — setState on unmounted components 2026-05-26 18:20:07 -04:00

Opened #112 Frontend: hard page reload on project delete wipes in-flight state 2026-05-26 18:20:07 -04:00

Opened #113 Frontend: sidebar shows hardcoded "3" badge on Jobs forever 2026-05-26 18:20:13 -04:00

Opened #114 Storage admin page + external S3 → MAM bucket migration 2026-05-26 18:20:26 -04:00

Opened #115 Frontend: hardcoded /api/v1 paths bypass ZAMPP_API.fetch in upload module 2026-05-26 18:20:46 -04:00

Opened #116 Frontend: EditorKeyboard crash on document.activeElement = null 2026-05-26 18:20:47 -04:00

Opened #117 Frontend: Schedule rows crash on null recorder_id (orphaned schedule) 2026-05-26 18:20:52 -04:00

Opened #118 Backend: SDK upload extracts archives with no path-traversal protection (admin-only RCE risk) 2026-05-26 18:21:07 -04:00

Opened #119 Backend: assets list endpoint has no LIMIT cap — ?limit=999999999 OOMs the API 2026-05-26 18:21:13 -04:00

Opened #120 Backend: multer.memoryStorage holds 500 MB parts in RAM — concurrent uploads OOM the API 2026-05-26 18:21:19 -04:00

Opened #121 Backend: GET /recorders fires unbounded concurrent Docker API + PG calls (N+1) 2026-05-26 18:21:19 -04:00

Opened #122 Frontend: production deploy ships React dev builds + in-browser Babel — slow first paint, console warnings leak 2026-05-26 18:21:51 -04:00

Opened #123 Frontend: 13 stray console.error / console.warn calls in production JSX 2026-05-26 18:21:54 -04:00

Opened #124 Frontend: typo setPgMclips should be setPgmClips for consistency 2026-05-26 18:21:56 -04:00

Opened #125 Frontend: hardcoded Premiere panel version 1.0.1 in editor download links 2026-05-26 18:22:08 -04:00

Opened #126 Accessibility: icon-only buttons missing aria-label across asset and library screens 2026-05-26 18:22:16 -04:00

Opened #127 node-agent on zampp2: redundant + dead env vars in .env.worker 2026-05-26 18:22:17 -04:00

Opened #128 Tracker: 2026-05-26 audit session — 27 bugs logged (#100-#127) 2026-05-26 18:22:49 -04:00

Opened #129 test 2026-05-26 19:09:03 -04:00

Opened #130 Bug: Jobs nav badge hardcoded to "3" — never reflects real count 2026-05-26 20:43:49 -04:00

Opened #131 Bug: Library route renders empty — .page selector not matched 2026-05-26 20:43:49 -04:00

Opened #132 Bug: Schedule route renders empty content 2026-05-26 20:43:49 -04:00

Opened #133 A11y: --text-3 color fails WCAG AA contrast on --bg-0 2026-05-26 20:44:35 -04:00

Opened #134 UX: App not responsive — sidebar overflows on mobile (375px) 2026-05-26 20:44:35 -04:00

Opened #135 A11y: Global search input missing aria-label and role="combobox" 2026-05-26 20:44:35 -04:00

Opened #136 UX: Dashboard and Library share the same nav icon 2026-05-26 20:44:35 -04:00

Opened #137 A11y: Search wrapper missing role="search" landmark 2026-05-26 20:44:35 -04:00

Opened #138 A11y: Password inputs in Settings missing autocomplete attribute 2026-05-26 20:44:35 -04:00

Opened #139 Perf: React dev build + in-browser Babel loaded in production 2026-05-26 20:44:35 -04:00

Opened #140 A11y: Asset card thumbnails missing alt text 2026-05-26 20:44:35 -04:00

Opened #141 UX: Settings inputs not wrapped in form — no Enter key or native validation 2026-05-26 20:44:35 -04:00

Opened #142 UX: No sidebar collapse/expand toggle button 2026-05-26 20:44:35 -04:00

Opened #143 Bug: Asset player stalls without buffering when seeking to end of clip 2026-05-26 21:50:29 -04:00

Opened #144 QA Test Results - May 27 2026 2026-05-27 08:37:25 -04:00

Opened #145 Asset library: Download button with dismissable size/connection warning 2026-05-28 15:14:06 -04:00

Opened #146 UI Audit: 186 em-dashes in JSX/copy violate DESIGN.md ban 2026-05-28 19:29:33 -04:00

Opened #147 UI Audit: glassmorphism + accent gradients in 15 places violate DESIGN.md ban 2026-05-28 19:29:50 -04:00

Opened #148 UI Audit: 487 inline styles on Jobs screen — extract to CSS 2026-05-28 19:30:06 -04:00

Opened #149 UI Audit: sidebar IA flat — 18 nav items, only 1 section divider 2026-05-28 19:30:23 -04:00

Opened #150 UI Audit: New Recorder modal — codec/audio/container sections feel stub-like 2026-05-28 19:30:40 -04:00

Opened #151 UI Audit: Editor "Coming Soon" bumper is the most visible design violation 2026-05-28 19:30:53 -04:00

Opened #152 UI Audit: Tokens screen — parody / commentary content surfaces in admin nav 2026-05-28 19:31:10 -04:00

Opened #153 UI Audit: Home launcher duplicates sidebar nav with no extra value 2026-05-28 19:31:27 -04:00

Opened #154 UI Audit: Projects screen has 2 icon-only buttons missing aria-label 2026-05-28 19:31:35 -04:00

Opened #155 UI Audit: page-header pattern inconsistent — Home, Library, Editor don't use it 2026-05-28 19:31:53 -04:00

Opened #156 [Tracker] Full web-ui audit 2026-05-28 2026-05-28 19:32:13 -04:00

Opened #157 Bug: v1.2.0 Premiere Panel Win Installer download link broken (missing href) 2026-05-28 19:43:33 -04:00

Opened #158 6 failed Conform jobs — FFmpeg segment concatenation errors 2026-05-28 19:43:41 -04:00

Opened #159 Low: Container memory usage shows 0 MB for all Docker containers 2026-05-28 19:44:43 -04:00

Opened #160 Low: zampp1 cluster node shows dashes for version and uptime 2026-05-28 19:44:43 -04:00

Opened #162 Local-spawn recorder stop lacks finalize grace → corrupt MP4 / stuck-live (pre-existing) 2026-05-29 14:03:12 -04:00

Opened #163 Feature: recorder codec presets + codec/container/audio validation guard 2026-05-29 14:11:01 -04:00

Opened #164 Feature: move HLS preview encode from libx264 to h264_nvenc 2026-05-29 14:11:07 -04:00

Opened #165 Feature: GPU deinterlace (yadif_cuda/bwdif_cuda) in capture path 2026-05-29 14:11:12 -04:00

Opened #166 Feature: live NVENC/GPU encode telemetry on the Cluster screen 2026-05-29 14:11:33 -04:00

Opened #167 Feature: per-recorder GPU affinity (replace NVIDIA_VISIBLE_DEVICES=all) 2026-05-29 14:11:43 -04:00

Opened #168 Feature: source-backend abstraction for capture (Deltacast / AJA) 2026-05-29 14:11:52 -04:00

Opened #169 [Tracker] Feature-request session 2026-05-29 — NVENC ingest follow-ons 2026-05-29 14:12:23 -04:00