Repository navigation
chore(quest): finish swapped-js-opus, fixed by #6820 - #6989
Conversation
Quest-Claim: 55a76bfd9f1ba172
The rust-swapped -> js and rust -> js browser audio timeouts were a lite-06
SUBSCRIBE_DROP of a catalog group mid-read ending the reader with
NotFound("dropped"), which the JSON snapshot consumer rethrew, so the player
went offline while the broadcast stayed announced. #6820 reads that drop as
OLD, which the consumer resyncs past.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 11 minutes. View limit details
No actionable comments were generated in the recent review.
|
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: 059c41b
No actionable bugs found. Retiring this child quest and recording #6820 in the epic is a sensible, minimal change: the linked fix is merged, and this head retains the lite-05/06 Old mapping plus tests for continued group delivery and snapshot resynchronization. The epic still owns the broader loaded-machine validation; no additional player retry or timeout change is needed for this retirement.
Verification: GitHub-only inspection of the complete diff, epic, linked fix, and relevant current code/tests. I did not run tests or independently reproduce the reported browser/load runs or inspect their local logs.
|
Merge summary:
(Written by Claude Opus 5.5) |
Summary
Finishes
quest/m0/test-flakes-2/swapped-js-opus.md. The cause was already fixed by moq-dev/moq#6820, so this PR only deletes the quest, removes its link, and records the fix in the epic README.Root cause
All four retained browser audio failures in
/tmp/moq-test-*(threerust-swapped -> js, onerust -> js, 2026-10-24 to 2026-10-26) show the same sequence:catalog.jsonon a moq-lite-06 session. While the Rust CLI republishes its catalog in the first seconds, it receives the catalog several times.StreamError(NotFound, "dropped").@moq/json's snapshotConsumerresyncs only on gap codes (Old,Evicted,TooFarBehind,GroupTooLarge), so it rethrew. The page loggedcatalog subscription ended ... Stream: dropped.js/watchcleared the catalog, setstatustooffline, and closed its media subscriptions, even though the broadcast was still announced (broadcastActive:true). With no audio config, the decoder's idle path suspended itsAudioContext.audioContext:"suspended"and no codec. That is a plain audio failure, not thewrong tonethe swapped control needs, so the cell ran out its timeout.The suspended
AudioContextreported in moq-dev/moq#6745 is therefore a symptom, not the cause. #6820 (merged 2026-10-26 19:59 UTC) reads a lite-05/06 drop asOld, which the consumer skips past. Every retained failure predates that merge, and the"dropped"message can no longer be produced. lite-07 was never affected: its drop carries the group's own code, which isOldfor a superseded group.Existing tests already cover the whole chain, so this PR adds none:
js/net/src/lite/tail.test.tsand the Rusta_subscribe_drop_ends_an_arriving_group_with_its_codecheck that a lite-06 drop reads asOldand the track continues, andjs/json/src/snapshot/snapshot.test.tschecks thatOldresyncs to the next snapshot.Verification (current main,
fbeac8a9fd)just test interop --publishers rust --subscribers js --timeout 30: 5 runs, all pass, at load averages of 30 to 150 on 24 cores.just test interop --all: 2 runs, all checks pass both times (rust-swapped -> jstook 13 s and 12 s).wrong toneon both renditions, and timeouts in the denied cells.just check,quest check, andquest check --base origin/mainpass.Choices made without asking
Impact
Public API: none. Wire: none.
Suggested follow-ups
None. The
test-flakes-2epic README still owns the final step: runjust check --allseveral times on a loaded machine.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)