Repository navigation
Key meeting-mix at a synthetic id, not the first roster guest (#465) - #488
Merged
Merged
Conversation
Jamal (roster[0]) isolate was subscribed and the engine wrote one-way frames, but the mixer strip measured digital silence. Meeting-mix was keyed to participants[0], so Zoom''s mixed subscribe used his user id. Key meeting-audio at numeric 0 (not a guest). Ingest mix PCM when participantId is 0 so zoom-mix still receives the mixed callback. Fake engine accepts pid 0 only for meeting-audio. Tests were proven red on the old builder (Expected 0, Actual 16778240) and green after.
iamfatness
added a commit
that referenced
this pull request
Sep 12, 2026
* docs(backlog): reconcile with main and the issue tracker Three things the file and the tracker disagreed on, all verified against main @ eefee0c and `gh issue`/`gh pr` state. No re-ranking. - T1.17 (#479) was still the next open Tier 1 item. It is closed by #490, which is on main. Moved to Done; the open order renumbers 1-3, so the top of the list is now T1.11 (#449), T1.12 (#475), T1.13 (#473). - T3.8 (#482, ISO crops/pads a guest on a mid-recording frame-size change) was filed 2026-09-11 with no tier row, against this file's own rule that a new defect gets an issue AND a row. Placed in Tier 3 as a proposal, labelled as such — the tier is not an owner ruling. - The "shipped in beta-2026-09-11-404602b" line covered the whole Done table, but T1.14-T1.17 (#487, #488, #489, #490) merged after that beta was cut. Each one's Done row asks for a "live check with the batch beta", and no such beta exists yet. Said so explicitly. Also noted why Tier 3 has no T3.6 (#465 was promoted to T1.15). Separately, #432 (T1.5) was closed on GitHub: #462 said "Fixes #432" and merged as 3a3bedf but never auto-closed it, so the issue contradicted this file's Done row. #457 (T1.7) has the same unclosed-by-#462 shape but is left open deliberately — its own PR says the real check is a long in-meeting close, which has not run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014yuH7EMvWCWdkhvevrtMyJ * docs(backlog): the batch beta exists; T1.11 step 2 shipped beta-2026-09-12-aac2d98 is cut and published, so the "live check with the batch beta" that T1.14-T1.17 each name is now possible. It is still OWED: none of those fixes, nor T1.11 step 2, has been seen in a real meeting, and none may be ranked verified until it has. Build provenance recorded next to the claim so a later reader can tell what the beta actually proves. T1.11 stays at order 1 and drops from "S then M" to "S": #492 shipped step 2 (the warm cue decoder is handed to Program), so a clip cued in Preview no longer flashes. Step 1 remains for a clip taken without a cue, which has no warm decoder to adopt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014yuH7EMvWCWdkhvevrtMyJ --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #465. Owner, live: Jamal's isolated audio never arrives (channel silent while talking); meeting mix is clean. Diagnostic on
beta-2026-09-11-404602b(Extra logs on ~90s): isolate for Jamal (16778240, roster[0]) is subscribed, the engine writesaudio_one_way_frame_received(byte_len=960, count 1→1250), the core opens that ring — and the mixer strip staysinputRmsDbfs=-120(status=silent, notwaiting-for-pcm). Susan Cho's isolate on the same path meters-37.The bug.
ZoomMediaSpinePayloadBuilderkeyedmeeting-audioatparticipants[0].sdkUserId. Mix uuid wasmeeting-audio-16778240-program— the same Zoom user as Jamal's isolate. Mix subscribe is Zoom's mixed callback (no user id); sharing a guest id made that guest's isolate strip measure silence.The fix
participantIdis synthetic numeric"0"(MeetingMixParticipantId), not a roster guest. Uuid is stablemeeting-audio-0-program(no roster-anchor mix churn).participantId == 0is ingested aszoom-mix. Isolate still requires a real Zoom user id.meeting-audio-*so the 330Hz mix tone still runs in tests.Tests (proven red on old code, then green)
MeetingMixIsNotKeyedToTheFirstRosterParticipant— Expected0, Actual16778240on the old builder.LiveCase478_AudioIsSubscribedForTheSameSourcesAndNobodyElsemix id Host →"0". Speaker-flip signaturemeeting-audio:0:program.IngestsDedicatedMeetingMixPcmWhenParticipantIdIsZero;MeetingMixUsesDedicatedNonIsolatedAudioSubscriptionuuidmeeting-audio-0-program.ZoomEngineRuntime.*29 passed; MediaCore 2205 passed.Live check. Per the batch plan, one beta at the end. On that beta,
python scripts/qa/live-check-sources-audio.pythen Extra-logs: Jamal talks → isolate strip meters (not-120); mix uuid ismeeting-audio-0-program.