Skip to content

Latest commit

 

History

History
339 lines (289 loc) · 49.8 KB

File metadata and controls

339 lines (289 loc) · 49.8 KB

CoreVideo Pro — ranked backlog

This is the only ordered list of work. Status and detailed evidence live on linked GitHub issues. Rules: AGENTS.md.

Owner UI/UX direction on 2026-10-09: while the grading/framer build awaits the weekend bake, execute the quick setup bundle sequentially: #587 first-click Join, #594 Health inside Settings, then #595 opt-in OHG navigation. Each gets a focused PR and short installed acceptance; sustained media qualification remains separate. Sources/lower-third/starter-scene work follows this bundle.

Owner lower-third direction on 2026-10-09: include appearance and customization #847 in the lower-third batch alongside #592/#593, before starter scenes #591. Deliver polished presets and a shared appearance editor with actual native output effects; source text remains in Sources. Keep short output acceptance and weekend bake distinct.

Owner control-usability direction on 2026-10-09: extend the operator batch with #848: scene, audio, grading and lower-third controls need direct manipulation, meaningful units/ranges, clear defaults/reset and visible feedback. Implement the shared interaction standard through the existing #847/#835/#591 consumers. Owner clarified that sliders with synchronized exact number entry are preferred for continuous adjustments; follow the operator adjustment control specification. This broadens the accepted UI scope without displacing media acceptance or inventing a separate work order.

Owner bundled design request on 2026-10-09: scopes in the grade workspace must optionally analyze only a selected ROI (#835). Bundle that with #847/#848, lower-third text/stability and starter-scene usability under the operator editing specification and implementation plan. ROI changes analysis only, with an editor-only guide; full-source grading/output remains intact.

Owner top priority on 2026-10-08: advanced per-source grading #835, with an optional expanded workspace, editable curves, histogram, waveform and vectorscope. Its first slice includes the grading preview/output consistency repair from #764. This supersedes the earlier code-work order; installed recording acceptance can continue alongside it.

Earlier owner focus on 2026-10-04: accurate output/health reporting, then dropped settings and automation behavior, then operator usability. The review found 90 open issues against main 92e6b1ea. Installed acceptance continues alongside this sequence; the owner's two-hour bake reports positive render and virtual-camera behavior, without closing the remaining measured delivery and lifecycle requirements. The Unranked tables retain issue detail; Now and Next are the work order.

Owner-requested order review 2026-09-27 against main 0ff22af4 and linked issues: #659, #661, #663 and the #674 implementation slices are merged. The Now/Next tables below replace the exhausted 2026-09-26 Now queue. Earlier #616, #601, #617, #622, #530, #621, and #540 are closed. The owner paused the remaining private-SDK CI work in #618 pending research. Owner promoted and completed source-bus ingest extraction (#540). On 2026-09-26 the owner approved executing the #657 control-state plan before SRT/NDI edge I/O (#538); its three implementation slices are now merged, while parent qualification remains. Owner accepted live lip sync (#579) and first Takes (#555) on beta db9e703. #513 validation remains deferred; #582 range correction is in live validation. #668 speaker-floor director implementation is merged, with installed acceptance open.

Architecture review pin: commit 6f4f025 (2026-09-24). Issues #616–#622 are that review. Live incidents (#615, #608, #624) stay unranked and may preempt this list on a show night.

How to use this file

  1. Work the first unblocked Now item. Maximum 3 in flight.
  2. New findings get a GitHub issue and an unranked row; the owner ranks them.
  3. Close only after a merged fix meets acceptance, or an explicit owner disposition.
  4. A fix awaiting live acceptance is not Done. A non-reproducing report is not a confirmed current defect.
  5. Build/run guidance lives in CLAUDE.md; design documents are not work queues.

Priority remains show survival, diagnosability, real-show usability, then external installation. Build one source bus before adding more ingest paths. MXL stays parked.

Now — owner-accepted order (2026-10-08)

Owner-approved follow-up on 2026-10-10: implement #853, draw-first rectangle/circle scope ROI and collapsed precision controls, before further UI/UX slices. Preserve the running meeting. Zero missed delivery slots remains paramount; the owner is researching the #825/#517 misses separately.

Three lanes, at most one item in flight per lane and three total. Start with #835; the earlier operator-focus rows follow it sequentially. Owner UI/UX focus (October 5): pair #507 transport-layout safety with #759/#610 reporting for the first visible beta milestone; keep the rest of usability after settings/automation. Lane C acceptance can continue alongside that code work; new live failures can still preempt it.

Implementation and acceptance for these three areas are described in the operator reporting and behavior plan. That document explains how; this table remains the only ranked work list.

Owner direction 2026-10-03 after the show: start #517 under the render isolation and delivery specification. It was the active Lane A item ahead of #538. The owner subsequently approved desktop validation after the meeting and the completion plan. Camera attribution/repair and the #781 prerequisite shipped in merged #783; #780 and the capture reconnect fix #785 also shipped. The approved completion plan remains the qualification reference for #517, with installed rollback and failed evidence preserved. The October 4 owner focus below supersedes its code-work priority while the remaining acceptance stays open.

Owner approved prioritizing #804 on October 7 ahead of the remaining #802 admission/health work: isolate optional shell/multiview export API stalls from scheduled Program publication. PR #809 and PR #808 are merged; the failed intermediate cadence/source evidence remains retained. Remaining #802 producer and lifecycle work resumes. Installed validation may resume now that the owner reports the app closed; defaults remain gated by #517.

Owner prioritized #814 on October 8: implement the recording write-queue specification next. Implementation merged in #833 and shipped in installed beta beta-2026-10-08-51d6281; the owner's real-meeting bake is pending. Remaining #802/#823 delivery qualification and the separate #832 thumbnail mutex finding remain open.

Owner ranked #835 first on October 8: "It is my top rank." Deliver Basic/Advanced expansion, a shared native grade path, editable master/R/G/B curves and all three truthful scopes as the first usable slice. The grading portion of #764 is integrated into this work; its other settings findings keep their existing rank. Qualified primary controls, real LUT import/stack and reusable presets extend that same implementation. The source grading specification defines the design and acceptance contract linked from #835. New live incidents may still preempt the queue.

Order Lane Issue Remaining work
Owner follow-up A #853 Draw-first rectangle/circle scope ROI, move/resize, cancellation, Clear and collapsed precision settings. Interaction contract. Owner approved this code slice on October 10; preserve live sessions and keep zero-miss delivery acceptance separate.
Owner top A #835 Advanced source grading: optional expanded workspace, truthful native preview/output path (grading portion of #764), master/R/G/B curves, histogram, waveform and vectorscope. Preserve existing grades, source identity, production cadence and quality; scope analysis must be bounded and asynchronous. Then qualify advanced primaries, real LUT import/stack and presets against the same native transform.
Owner next A #839 Owner requested a built-in OH Framer on webcam output only after the #835 review rendering, adding a live Program LUFS-S overlay on October 9. Specification. Preserve the supplied PNG alpha and clean Program/Preview/recording/stream pixels; persist an off-by-default camera toggle and qualify camera publication cadence. #835 implementation remains in review in #837.
Acceptance C #814 Recording write queues merged in #833; beta beta-2026-10-08-51d6281 is published and installed. Independent Program/ISO queues and Preparing-to-Recording behavior passed local and hosted checks. Owner's real-meeting bake remains open; record actual continuity and final-file evidence without claiming synthetic tests prove live delivery.
Acceptance C #790 Screen-share teardown callback reentrancy repair shipped; owner reports the installed screen-share test looks good. Longer live meeting acceptance remains. The historical incident priority does not displace #835 unless a new failure is reported.
0 B #507, #759, #610, #519, #765, #766, #551, #562, #758 Accurate output/health reporting: distinguish connecting, sending and verified receiver playback; show measured counters and explicit unknown/unavailable states. Finish capture liveness, dropout and diagnostic evidence. Start with #759 and #507 transport stability; then #610 degraded status.
1 B #764, #763, #761 Dropped settings and automation behavior: trace each operator setting to its core consumer and observable result. Address discarded settings, NDI group behavior, and Set & Forget / Magic Scene execution; distinguish the merged director slices from unbound automation.
2 B #587, #592, #593, #847, #591, #590, #594, #595 Operator usability: stale Join URL, lower-third consistency, text persistence and appearance customization, useful starter scenes, Sources pruning, Health/OHG placement. #507 transport layout accompanies reporting above. Follow reporting and behavior work above, with the owner's October 9 quick-bundle and lower-third direction recorded above.
3 C Acceptance session Beta beta-2026-10-04-92e6b1e is published. Continue running docs/qa/installed-acceptance-checklist.md once. Covers #732, #725, #724, #735, #668, #674, #608, #582, #568, #569, #581, #473 and the first live run of the 2026-10-01/02 fixes (#740, #739, #757, #758, #759, #760). Record PASS, FAIL or MISSING_EVIDENCE per row on its issue.
4 A #517, #781, #784 Render/camera and capture fixes shipped in #780, #783 and #785. October 6: new live underruns and monitor shedding with isolation disabled; matched synthetic recording A/B corroborates the source-export bottleneck and shows benefit from isolation, without full qualification. Owner requested the updated spec and completion plan. Remaining: complete/qualify isolation before its default change, measured combined delivery, installation/fleet lifecycle and real capture/receiver acceptance. Earlier favorable two-hour bake observations remain recorded, not a waiver of the new failures.
5 B #762, #741 Merged: the shell refuses Engine on, Record or Join from the core profile with a named reason, and the core refuses Record on a failed encoder and Join with no engine (docs/reference/core-on-air-policy.md). Remaining: first installed run.
6 B #754 Reopened: the double RecoveryCompleted assertion recurred during the October 4 beta CI. Full local MediaCore suite, ten isolated repeats and hosted attempt 2 passed; the intermittent cause remains unresolved. Preserve supervisor/fake-core evidence on recurrence.
7 A #538 Previously prioritized September 29; resumes after the operator-focus sequence: one shared hardware Program encode for RTMP/SRT/HLS, compositor-clock video, sample-counted audio, bounded mux queues, decoded sync evidence. #703 (YouTube audio lag) closed as resolved by the owner 2026-10-02; #605, #606, #602 and #612 are done. Remaining is the parent: shared hardware encode evidence and decoded sync across destinations.
8 B #701, #624, #750 Live-show media defects. #705 closed 2026-10-03 (media audio reaches Program on current main; the headless harness proves it). #701 now has a per-source frame-delivery trace in mediaSources[] and scripts/qa/media-delivery-trace.py; the reproduction with the owner's clip in a live meeting with a recording running is the next step, with #624 in the same session. #750 needs an owner ruling (latest run: audio lags video by 26 ms median).
9 C #657 Qualify the merged control-state slices in an installed live meeting; folded into the acceptance session. If real guest transitions are unavailable, record MISSING_EVIDENCE.
10 A #536 Finish honest RTT and codec/packet decode-error health, then validate failure and recovery. Ingest status now reaches the UI (#760).

Deferred by owner

Issue Status
#513 Owner reports an overnight run with no recurrence and will validate later. Pooling/teardown fixes and the earlier 151-minute soak remain evidence of reduced exposure, not root-cause closure. Not a blocker for #535.
#618 Owner paused private Zoom SDK CI provisioning pending research. The non-stub Windows adapter compile lane passed in #643; real Zoom CI compile still reports MISSING_EVIDENCE. Keep open.

Next — in this order

Order Theme Issues Remaining work
0 External install #423, #424, then #433, #434, #435, #436, #437, #441 Certificate and the Zoom redistribution answer have lead time and are the owner's to start now. Current beta is still unsigned.
1 Cold media Take #449 A never-cued clip cut to Program still cold-starts into the warming slate. scripts/qa/media-take-ab.py --skip-cue is the falsification control.
2 Cleanup, opportunistic #768, #611, #505, #512, #649 Only when already touching the seam. #768 also carries the two #738 follow-ups: move the Zoom config JSONs out of src/, and remove studio/ once scripts/app.ps1 no longer builds the core through build-studio.ps1.

Owner rulings outstanding: #743 with #767 (owner direction 2026-10-02: remove the mock licensing and caption panels and the stub services for beta; deployed workers are deleted only on explicit confirmation), #750, #427, #425, #426.

Unranked — show survival and operator findings

These can preempt Next on a show night. They do not jump the ranked Now item until the owner says so.

Issue Remaining work
#854 Drawn ROI: native coordinate formatting rejects valid measurement results, and pending preview handles clear gesture geometry. Reproduced in the isolated real-XAML/native #853 probe; fix included in #855. No attribution to production delivery misses or independent rank change.
#838 Mixed-source QA duplicates initial/final observations before preparation can advance, producing a false 250 ms source-stall judgment. Sampling repair and regression included in #837; pending merge. Unranked intake; no production rank change.
#834 Windows CI app-exit trace reader can hit a sharing violation while the child appends to trace.txt. Initial main CI failed; unchanged-head retry passed. Make the bounded trace wait tolerate concurrent writes while preserving cleanup assertions. Unranked; not a confirmed production regression.
#825 Disabled-preparation/inline qualification lost six packets in three pairs: a late Preparing head became expired Ready and remained at the following deadline. Suspected wait-predicate amplification needs deterministic real-GPU reproduction; does not establish why the first preparation was late. Unranked; current #802/#823 work continues.
#823 Remaining owner-approved #517 delivery diagnostics: bounded per-frame trace, native/C#/Swift observations, source/output identity and latency attribution. Continues the parent qualification scope after #802; no independent rank or default change.
#832 Optional Zoom thumbnail event packaging holds the Program frame-fetch mutex for 12–13 ms. Measured overlap and source evidence support moving complete event packaging off-lock with stale-generation validation. Unranked; separate from recording backpressure.
#798 Hosted fake-core initial zoom-snapshot request timed out before polling assertions in #792 CI. Exact PR full suite and targeted hosted rerun passed; failed job retained. Attribution unknown, distinct from #754; needs owner rank.
#802 Approved #517 CPU fallback boundary after merged #797/#801. Merged #805/#806/#808 implement format coexistence, SHM BGRA, decoded I420, strict ready-only admission and sampled source-health evidence. Native UVC arrival/query progress merged in #810; media/still preparation in #812; WGC CPU fallback in #813; same-adapter consumer recovery in #815; browser in #816; NDI/SRT/RTMP decoder arrivals in #818. Capacity reasons and drained-owner recovery merged in #819: 1,503 native tests and 17 final-head CI checks pass, including real 512 MiB refusal/recovery and retained-read tests. Network stalled-held refresh merged in #820; bounded cleanup of expired pending tokens merged in #821. Real local SRT/RTMP before/after recovery tests, 1,506 native tests and 17 final-head CI checks pass. Physical device/adapter recovery, actual latency and installed/receiver/display/A/V qualification remain; WGC sampled age is unqualified. Preserve source playout/guest trim, CPU/ISO and identity. No independent rank change.
#804 #517 measured follow-on: GPU-ready Program packets expired during scheduled shell/multiview export calls (16.6–19.4 ms); retained losses fail release qualification. Owner-promoted repair merged in #809; six matched trials and full native/CI pass. Receiver/display, installed/fleet and lifecycle qualification remain. Remaining #802 work resumes.
#811 Physical native MF HD60 S+ reconnect negotiated 1080p60, then failed before new frames with 0x8007001F during #802 qualification. The same failure reproduces with preparation off in both the candidate and installed October 5 beta. Initial capture passed; failures are retained. Attribution remains open. Unranked; does not independently preempt #802.
#807 macOS Metal full native CI suite segfaulted on #806 after focused checks passed. Attribution unconfirmed; retain the failed trial, identify the test/stack and verify exact-head CI. Unranked; does not replace approved #802 work.
#782 Windows supervisor disposal queried an already-disposed Process in the crash lock-order CI test. Captured stack and run; attribution and focused fix need owner rank.
#784 Screen/window capture flashes after asynchronous WGC lifecycle change: the shell rejects connecting and auto-retries, repeatedly restarting sessions. Fixed in merged #785 and beta beta-2026-10-04-92e6b1e: accepted pending requests are preserved and repeated connect is idempotent. Owner visual check was positive; installed capture alongside streaming acceptance remains.
#735 Fixed: the CPU-fallback stream path delivered nothing from 2026-09-30 because shared-AAC routing withheld PCM from a sender that was not on the GPU path. Remaining: RTMP was not tested separately from SRT; owner acceptance on a machine without a hardware encoder.
#701 Media playout video can stutter or freeze during a live show; identify decoder versus presentation. Had no row until the 2026-10-02 review.
#732 Recording resumes in a new folder and the stream reconnects after the media core restarts (owner rulings 2026-10-01 and 2026-10-02; PR #746). Remaining: owner acceptance on an installed beta; the stream reconnect was proven against a local SRT sink only, not RTMP or a real platform.
#728 Frame-sized allocations drop a frame instead of terminating the core, proven under a real per-process commit cap at 600 and 300 MB. At 400 to 500 MB the core still dies in Windows thread start-up, which nothing in the core can catch. The core now publishes systemMemory and logs when the machine runs low. Remaining: show that warning to the operator; what exhausted memory on 2026-10-01 is unknown. Owner has not assigned a rank.
#724 Program lost two slots whenever a source, stream or recording was first exported: the render thread created a D3D device (13 to 21 ms). Every export (participant, encoder, multiview, preview) is now created off that thread, and the recorded harness fails on any missed Program slot. Remaining: owner acceptance on an installed beta with a real media Take; the 4-6 slot stall first reported did not reproduce on any build (0 of 42 sessions).
#750 Recorded A/V harness: media audio lands 13 to 18 ms after video, straddling its one-frame limit, so its A/V verdict fails about one run in four. Two sessions in 14 read 34.5 ms. Needs a ruling on whether the steady offset is expected. Owner has not assigned a rank.
#725 Root cause fixed in #727: the shell rejected a respawned core's roster. Owner acceptance on an installed beta remains.
#668 Slices A–D merged (#670–#673): unique guest bindings, host exclusion, talk ledger and Set & Forget holds. Installed host-plus-three-guests, interview, solo and share-priority acceptance remains.
#674 Slices A–F merged (#675–#680), including direct negotiated-format facts and existing Multiview texture crop. Installed no-click video-off, ISO arm, Engine-off transitions and ten-row GPU load remain acceptance; reopened after an early close.
#473 Installed beta ProRes media decoder shows a placeholder while the same code works in a dev launch; reproduce and fix the installed path.
#652 Matched A/B found GoXLR live skew near −240 ms on both accepted beta and prior main, while recorded Program stayed near −20 ms. #655 reduced live skew to −46.2 ms with zero underruns/lost samples over 24 s; real-human and long-show drift acceptance remain.
#649 RTMP demuxer test compares const char* literal addresses; use content comparison so Debug native gate is deterministic.
#615 RTMP packet amplification is measured and coalesced. Encoder frames that never reached the shed counter are retained (main 61e83ed1). The original PC-wide outage and full-show continuity still need fleet acceptance.
#627 Per-participant audio delay. Capture devices already have setAudioSyncOffset; a Zoom guest does not. Headless clap on the Zoom-audio mailbox build measured one pipeline skew (median -39.0 ms, audio lags video), not a per-person offset.
#608 Root cause isolated: Zoom source mute was copied into durable core mixer mute; #656 fixed that copy. Installed recurrence and natural guest mute/unmute convergence remain unverified; track with #657.
#624 Recover a subscribed Zoom video feed that stops advancing in Tiles.
#599 After the #597 stream stall, Zoom Meeting panel stayed hidden on display 2. Targeted restore worked; need a reliable operator path. Causality with #597 unproven.
#610 Operator-facing degraded-stream readout. Consume the generated observation model; do not hand-write a fourth snapshot.
#590 Simplify and prune Sources for live operation. Coordinate with #505 and #588.
#681 Global Zoom camera resolution request and selectable local maximum frame rate (15/24/25/30/60 fps); preserve actual input Format and verify both choices, churn, and persistence in a real meeting.
#682 Local Windows test:gate App integration worker intermittently stalls; PR #683 CI integration passed, so reproduce and bound before calling this a CI blocker.
#591 Rework starter Scenes and scene creation; owner sees the same source repeated in defaults.
#592 Lower-third second line refreshes as “Guest” / brief lowercase “g”.
#593 Persist per-source lower-third name and editable secondary line.
#594 Move Health into Settings; replace Diagnose label.
#595 Hide OHG Show until explicitly enabled in Settings.
#565 AV1 streaming explicitly refused until a playable packaged receiver-side stream exists.
#588 Local display/window capture as a first-class Program source.
#582 Speaker-change brightness flashes. Content-aware range correction in live validation; CI and shipping remain.
#587 First Join after editing the meeting URL used the stale placeholder number.
#568 Installed operator sequence: AV1 refusal → explicit HEVC retry without app restart.
#581 Zoom window appears slower than Program; owner validation pending.
#569 H.265 streaming needs repeatable installed receiver acceptance.
#575 Scheduled staging smoke blocked on missing Actions secrets. Not #618.

Unranked — half-wired features (2026-10-02 audit)

Found by reading code on main; none reproduced in the running app unless its issue says so. Order is a suggestion (most likely to hit a normal show first); the owner ranks.

Issue Remaining work
#758 A disconnected bridged capture device stays on Program as a frozen frame: the shell never sends unregister-capture-shm and the adapter re-emits its last frame. Blackmagic-named UVC devices are forced onto this path.
#759 Output status reads "Live" while the sender is still starting. Stream-only sessions on a current core run the shell's "legacy core" branches because the core omits recording.lifecycle.
#762 The shell accepts any core. A stub encoder (Record shows live, no file written) or no-op compositor in a real build is silent; NativeMediaCoreProfileValidator has no caller. Pair with #741.
#763 NDI group is accepted and discarded; Program is advertised to every receiver on the LAN.
#761 Set & Forget and Magic Scene never act on a real core: autoProduction is not bound.
#764 Operator settings the core drops: colour-grade LUT presets, brand-kit styles, and other payload fields.
#765 Invented values shown as measurements: guest network quality always "good", the LIVE clock, caption latency/confidence, per-participant meters.
#766 Diagnostics that over-claim or are empty: first-frame evidence, support-bundle sections, the stale-roster counter (roster epoch/revision unbound).
#767 Mock UI: licensing panel and caption controls with nothing behind them. Depends on the #743 ruling.
#768 Dead code: test-only fail/recover/simulate commands in the production protocol, breakout detection wired only to its simulator, an unused 935-line Zoom SDK adapter, unreferenced C# types.

Unranked — mock code in the shipping path and repo cleanup (2026-10-01 audit)

Found by the 2026-10-01 cleanup audit. Order within this table is a suggestion; the owner ranks.

Issue Remaining work
#743 caption-broker and licensing-api are stub services with no native client. Owner ruling: build for real or remove, including deployed workers.

Unranked — open issue inventory restored in this audit

These linked issues already existed with the backlog label but had no row in the sole work list. Their order in this table is not a priority assignment.

Issue Remaining work
#607 Encoder/sender correctness: the bitstream queue caps are memory bounds used as a latency bound; give it a measured latency bound.
#611 Move test-only virtual methods out of IOutputSender when touching that seam.
#524, #525 GPU encode writer isolation and later recording/ISO/macOS adapter slices; separate from current edge I/O.
#505, #512 Vestigial Sources border controls and residual Tiles-wall polish.
#457, #444, #446 Shell crash dump triage, churn/resize soak, and live Take soak evidence.
#443, #445 Combined record/stream/vcam drill and engine-off teardown audit.
#447 Persistent-source migration reconciliation.
#450, #451 Deferred OHG screen integration and live scene-canvas editor design.
#439, #442 GPU-tier defaults and reference-hardware sweeps.
#433, #434, #435, #436, #437 Installer, production telemetry endpoint, beta access, OAuth broker, and signing integration gates.
#424, #425, #426, #427 Zoom SDK redistribution answer, reference machines, tester feedback channel, and handoff decisions.
#441 First-run wizard design after external-install path is known.

Papercuts and deferred workload gates — existing order

Issue Remaining work
#562 Capture dropout policy needs adapter liveness via signalPresent.
#551 Async ISO writer status still omits live framesWritten / bytesWritten.
#456 Media In/Out points; UI design still needed.
#521 GPU-direct HEVC shipped in #566. AV1 refused pending #565. Raw fallback and recording/ISO on the encoder seam remain.
#519 RTMP bytesSent still estimated; latencyMs hard-coded to 2100.
#509 197 ms participant-rebuild stutter. Command-drop on the same apply graph is #622.
#537 DeckLink/AJA: live frames on the source bus (not probe-only). Parked for beta.
#508 Watch item: multiview label/click mismatch after unassign has not recurred.
#507 Debug text on operator surfaces shifts transport buttons.

Unranked — mac-parity-batch live acceptance (2026-10-09)

The 1080P kind flip (mac-parity-batch commit deb2689e) shipped the capability grant but not its required live-acceptance soak (plan Task 3 Step 6). No GitHub issue exists yet for this row; one will be filed, labeled backlog, when the mac-parity-batch PR goes up, and this row will carry its number.

Issue Remaining work
(pending — file on PR) 1080P flip live acceptance (mac): owner-meeting soak per docs/mac-parity-plan.md §7 Task 3 Step 6 — (a) subscriptions at 1920-wide delivery for camera-on sources, (b) zoomSubscriptionChurn.fullResolutionDemoted == 0 at ≤8 cameras, (c) camera off→on re-subscribe within one spine sync, (d) sustained render holds frame rate; fallback = revert the one-line kind flip in spineSubscriptionPayloads (restores the 720P fence; budget machinery stays). Evidence source: the core snapshot export (AppModel.swift dumps lastSnapshot/lastZoomSnapshot carrying zoomSubscriptionChurn) — NOT the Diagnostics pane, which doesn't render subscriptions; the stub reports 1280×720 for participant-video, so this is verifiable against the REAL engine only.

Later — parked

Issue Item
#539 MXL / ZoomISO Cloud / Kubernetes; parked until the source bus and plant I/O exist.

Parked from the 2026-09-24 architecture review (do not start from that document): MediaCore/StudioViewModel extraction beyond #540, Program/Preview/Multiview thread split, atomic native Take, NDI out of process, enabling DeckLink/AJA before #537 has pixels.

Done — reconciled merged fixes

These rows record specific fixes, not blanket production or fleet reliability.

Issue Merged fix / acceptance
#794 Maintained mixed-source monitor A/B harness, bounded IPC and failed-trial retention merged in #795. Harness implementation is complete; #517 delivery qualification remains open.
#796 Requested/effective monitor mode, selection, initialization/readiness and bounded failure reporting merged in #799. Default rollout remains gated by #517.
#817 RTMP publisher-restart harness factory repaired in #818; real local reconnect, fresh prepared epochs and source-pattern/audio recording checks pass. Closed October 7.
#797 Bounded SHM CPU preparation, immutable handoff, generation fencing and owner retirement merged in #800. Compositor upload work continues in #802; installed qualification remains under #517.
#801 Source-scoped monitor admission, explicit holds, bounded owner cache/retirement and epoch-aware exports merged in #803. Pixel/fault tests and CI passed. Two isolated delivery trials still failed publication acceptance, retained in #804/#517.
#705 Closed 2026-10-03: the headless media harness on main 88eae0d2 records the media audio (−6.1 dBFS peak, all beeps).
#754 Deadline-based tests became bounded condition waits; meter probe waits for Unloaded-and-timer-stopped.
#612 The supervisor stand-off for an adapter's own retry backoff is fresh and bounded (one tallest rung plus start grace); a stale code escalates with a named reason.
#703 Closed by owner disposition 2026-10-02: the YouTube audio lag is resolved.
#602 A supervisor creates records only for the destinations its own sender serves; restart log lines name the supervisor.
#606, #605 RTMP destinations keep their own codec/fps/bitrate; the stream profile only fills unset fields. #605 (hardware GOP + IDR on demand) had landed in #707.
#762, #741 Core profile gates Engine/Record/Join in the shell; the core refuses Record on a failed encoder and Join with no engine; breakout simulator stub-only. Not yet run installed.
#757 Graphics no longer switch themselves off with capture on: the snapshot write-back of Enabled is removed (#769). Reproduced by test; installed acceptance is on the checklist.
#760 The core's capture-device list is bound on the real-core path, so SRT and RTMP ingest status reaches the UI (#770). Not yet seen against a live feed.
#740 The snapshot mapper starts from a neutral base; SyntheticMediaCore is deleted (#752).
#739 Real cores list real capture devices only; verified against the built core (#755).
#747 Protocol manifests are checked against the core and the C#/Swift shells (#753).
#742 Production module composition split out of StubModules.cpp (#756).
#738 React prototype and Node core simulator removed (#745).
#737 CLAUDE.md is an index; topics live in docs/reference/ (#744).
#453 Worktrees and merged branches pruned 2026-10-01; unmerged tips kept under origin/archive/*.
#665 Live monitor control snapshot fix merged in #666 and shipped in beta 975076b8; installed Off/On applied on GoXLR Game, native monitor muted/playing, and the owner confirmed the button works.
#659, #661, #663 Versioned roster facts, revisioned audio crosspoint edits, and bounded recovery merged in #683/#684/#685; child issues closed. Parent #657 retains combined installed qualification.
#632, #634, #637, #640 Native slate assertion, Zoom passcode parsing, live raw-capture validator, and JSONL handshake test fixes merged; issues closed.
#597 Backpressure issue closed by owner on 2026-09-24. Remaining sender defects (#602/#604–#607/#612), degraded-stream readout (#610), and full-show outage acceptance (#615) have separate open issues.
#540 Source video merge and per-source health projection extracted from MediaCore.cpp into SourceVideoIngress; frame order, Zoom roster, capture end, and still behavior covered by native tests.
#621 Generated observation model and per-view field policies in #648; typed, qualification, and ControlState views covered by contract and shell tests.
#622 Command syncs queue behind one bridge slot while empty polls coalesce; overlap/cancellation tests and live meeting Control API check passed in #645.
#530 Canonical and legacy dual-view modes now select ProgramPreview; invalid values are rejected. Live meeting Control API check passed in #646.
#616 Live dispatcher command admission, protocol failure handling, parity coverage, Program event drain, and bounded response lane merged in #631 and #639.
#601 Live meeting Program 1080p60 recording and local SRT receiver bitrate acceptance merged in #641.
#617 Constructed adapter capability reporting merged in #635.
#579, #578 Clap harness and source-video timing fixes shipped in #577; 32 recorded paired events within 41 ms. Owner reports good live lip sync in their overnight test (2026-09-22).
#555 #554 fix, first-Take checks, and resolution-ramp coverage in #577; owner reports no first-Take oddness in their test (2026-09-22).
#570 Async MFT drain/shutdown in #566. Hardware cycles, installed restarts, sustained run and normal drain/stop passed.
#571 COM lifetime through WIC/module teardown in #566. Reproducing regression and installed orderly shutdown checks passed.
#572 Unobserved startup remains starting in #566. Lifecycle regressions and repeated installed starts passed.
#573 Phase-stable two-clip summing fixture in #566; assertion retained. Repeated local runs and merged-main TSan passed.
#574 GPU readiness moved before publication in #566. Hardware pixel tests and 30m16s installed candidate soak passed with zero new CVP delivery failures. Workload limits remain under #517/#569.
#529, #533 ISO drops/timeline fixes merged and validated in the earlier 24-minute six-ISO recording; shipped September 18.
#516, #526, #518 Earlier render-stall, Program-buffer startup/busy-loop, and audio-log fixes merged and validated; shipped September 18. Later distinct defects retain their own issues.