Repository navigation
Conversation
Quest-Claim: 6301895be7d657b9
Each case advances a `moq_clock::Deadlines` queue instead of the tokio paused clock, and a receiver reading after every frame now reads only once its export was woken, as the task polling it would. A read nothing woke never returned a slot (41k of 60k reads in a five-minute run); every case renders the same packets as before. Arrivals now land on their exact instant rather than tokio's millisecond. Pair comparisons check a packet at a time before naming the byte. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With arrivals on the source's exact clock, the export's rate settles within 0.002 ppm of its five-minute value by 10 s at 30 and 400 ppm, far inside the 0.5 and 1 ppm the cases assert. Neither the rate window nor the pull-back (600 s each) fills in five minutes either, so a minute runs the same steering. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The routing_contracts sweeps spend nearly all their time in the reference model's per-message recompute. Pass the selected route into live/adopted instead of selecting it again up to seven times per identity, restrict a view once per peer interest instead of cloning it per peer, keep links in a dense matrix and their grants in a set, and skip work whose result is unused. Every sweep covers the same scenarios with identical model state, events, and stats. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A depth only chooses between tracks, so a lone track's steering step no longer sorts its window for it. The drift and feed test helpers drain due frames without collecting them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- recovery: x265 runs single-threaded (it sizes its pools by host cores and ignores -threads), FFmpeg hashes decoded pictures with murmur3 instead of MD5, and each run concatenates its output once. - passthrough: the TS fixture builds packets in a fixed array and the readback concatenates payloads by slice instead of byte by byte. - rate: the random-walk model uses proptest's XorShift RNG, since each op forks the runner's RNG and ChaCha dominated the run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- moq-json: the window and stream encoders take their group budget from a field, as the snapshot encoder already does, so the oversize tests fill a 32 KiB budget instead of serializing 32 MiB in a debug build. - moq-json: the codec property tests draw cases with XorShift; seeding a ChaCha generator per union arm dominated case generation. - moq-net: the front invariant walk renders the front only when an event that emitted actions leaves every cheap field unchanged. - moq-net: the busy-track yield tests serve 2,000 groups instead of 10,000; every poll still faces a backlog past its budget. - moq-pattern: the exhaustive intersect test matches each unordered pair once, since the commute assertion makes the mirrored pair the same union. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sim harness built a fresh 64 KiB payload byte by byte on every send attempt, even a blocked one, and again to check each received chunk. Slice one shared prime-length cycle instead, rotated per stream so streams still differ at every offset. `subscribe()` formatted every per-packet trace event at TRACE, which cost more than the simulation itself. It now honors `RUST_LOG`, defaulting to info so the tests' own events (the probe reports) still print, and the per-step side spans are debug since they only label the stack's events. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- qmux: the keep-alive test builds its 100 datagrams once instead of 200,000 times byte by byte. - moq-audio: the corpus replay decodes 8 kHz PCM; only a packet's duration feeds the frame term, so the samples per packet don't matter. - moq-video: the transcode color test uses narrow frames; only the height picks the guessed space, and the heights are unchanged. - moq-cli: the passthrough test concatenates payload slices instead of collecting bytes one at a time. - moq-relay: the mesh wait reuses one HTTP client instead of loading the system trust roots on every 10ms poll. - moq-tokio: the zero-backoff test gives up after 100ms of redials rather than 500ms; a window that resets never runs out, whatever its length. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every fetch stays on the entry's origin, so a `file` playlist never makes an HTTP request, yet each import built a reqwest client, which loads and parses the system trust roots. Build it only for an http(s) entry; the fetch takes the file path when there is none. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its SIMD intrinsics compile to out-of-line calls at opt-level 0, as sonora's did, and they are the whole cost of the resampler's invariant test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The frozen cohort measures 61.0 and 67.5 CPU-seconds in two full runs, under its 68.92 s target. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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 18 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
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. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: 12a66db0e24c52adcdda05fc63c6da7a3a011598.
No actionable bugs found. The production changes remain narrow: file-only HLS imports still enforce same-origin checks before fetching, JSON group budgets retain their production defaults across resets, and the single-track jitter shortcut skips only the depth comparison used to choose between tracks. The routing-model and deadline-driven test-harness changes also preserve the relevant ordering and checks on static inspection.
Direction: removing repeated allocation, logging, hashing and setup work is appropriate here. The documented shorter drift runs, smaller busy-stream workloads and different deterministic property-test samples are explicit coverage tradeoffs, not proof of identical coverage; keep the existing bounds and regression checks as these fixtures evolve.
Verification: static review of the changed code and relevant surroundings, including an independent routing-model/export-timing/fixture pass. No tests or benchmarks run; the reported CPU improvements, full-suite results and before/after output comparisons were not independently reproduced.
# Conflicts: # rs/moq-json/src/stream/encoder.rs # rs/moq-json/src/stream/mod.rs # rs/moq-json/src/window/encoder.rs # rs/moq-mux/src/container/ts/recovery_test.rs # rs/moq-quic/src/tests/util.rs
|
Merged
The full (Written by Claude Opus 5.5) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
quest land removed this pull request from the queue: Conflicts with the base: quest/m0/ci/slow-tests.md, rs/moq-mux/src/container/ts/export_timing_test.rs, rs/moq-quic/src/tests/util.rs |
|
codex / Codex land fixer: (written by codex / Codex) |
|
quest land removed this pull request from the queue: Conflicts with the base: quest/m0/ci/slow-tests.md, rs/moq-mux/src/container/ts/export_timing_test.rs, rs/moq-quic/src/tests/util.rs |
|
Codex land fixer: quest land check: [Errno 2] No such file or directory: '/var/lib/quest-land-moq/moq-dev-moq/fix-qrkoPz/.git/objects/maintenance.lock' (written by Codex) |
A fixer job crashed with ENOENT on a vanished objects/maintenance.lock (moq-dev/moq#6987): background maintenance removed the lock between importFixer's readdir and lstat. Fixer checkouts now turn off gc.auto and maintenance.auto, and the import skips git lock files, which it never imports. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: moq-bot <moq-bot@users.noreply.github.com>
|
quest land removed this pull request from the queue: Conflicts with the base: quest/m0/ci/slow-tests.md, rs/moq-mux/src/container/ts/export_timing_test.rs, rs/moq-quic/src/tests/util.rs |
- quest/m0/ci/slow-tests.md: keep this PR's deletion over main's kio rename. - export_timing_test: keep the Deadlines-driven harness, renamed to kio::clock. - moq-quic tests: keep the RUST_LOG-driven subscribe() at info by default and drop main's subscribe_at, whose only caller now gets info from subscribe(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
codex / Codex land fixer: }
}
/// Run the clock to `at`, letting every leg read whenever it would have on its own.
fn advance(&self, at: Instant, legs: &mut [&mut Leg]) {
while let Some(wake) = legs
.iter()
.filter_map(|leg| leg.wake())
rg: rs/moq-mux/src/container/hang/audio.rs: IO error for operation on rs/moq-mux/src/container/hang/audio.rs: No such file or directory (os error 2)
Compiling moq-msf v0.5.1 (/work/rs/moq-msf)
Compiling ciborium-ll v0.2.2
Compiling webm-iterable v0.7.1
Compiling ciborium v0.2.2
Compiling criterion v0.8.2
Compiling idna_adapter v1.2.2
Compiling idna v1.1.0
Compiling url v2.5.8
exec
/bin/bash -lc 'timeout --verbose --kill-after=5s 45s cargo test --locked -p moq-audio -p moq-cli -p moq-hls -p moq-json -p moq-mux -p moq-net -p moq-pattern -p moq-quic -p moq-relay -p moq-tokio -p moq-video -p qmux@0.7.0 container::ts::export_timing_test::the_video_held_at_the_end_goes_out -- --exact --nocapture > /tmp/quest-6987-hang.log 2>&1' in /work
exited 124 in 30023ms:
exec
/bin/bash -lc 'tail -12 /tmp/quest-6987-isolated.log; tail -12 /tmp/quest-6987-hang.log; ps -eo pid,ppid,comm,etime,pcpu --sort=-pcpu | head -7' in /work
succeeded in 0ms:
Compiling idna_adapter v1.2.2
Compiling idna v1.1.0
Compiling url v2.5.8
Compiling bench-harness v0.0.1 (/work/rs/bench-harness)
Compiling kio v0.6.2 (/work/rs/kio)
Compiling mp4-atom v0.17.0
Compiling moq-net v0.3.10 (/work/rs/moq-net)
Compiling moq-json v0.5.8 (/work/rs/moq-json)
Compiling moq-loc v0.2.19 (/work/rs/moq-loc)
Compiling hang v0.21.11 (/work/rs/hang)
Compiling moq-mux v0.10.11 (/work/rs/moq-mux)
timeout: sending signal TERM to command ‘cargo’
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s
Running unittests examples/teleop.rs (target/debug/examples/teleop-bb6260ca7764be9c)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/moq_mux-2113f186acb243cc)
running 1 test
PID PPID COMMAND ELAPSED %CPU
37403 37376 moq_mux-2113f18 00:02 3.1
37376 37375 cargo 00:35 1.7
40 21 python3 08:39 0.5
83 71 codex 08:34 0.5
71 40 quest 08:34 0.0
20 1 nsncd 08:39 0.0
exited 124 in 44882ms:
exec
/bin/bash -lc "tail -8 /tmp/quest-6987-hang.log; ps -eo pid,ppid,comm | rg 'cargo|moq_mux'" in /work
exited 1 in 0ms:
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/moq_mux-2113f186acb243cc)
running 1 test
timeout: sending signal TERM to command ‘cargo’
codex
The filtered rerun reached `the_video_held_at_the_end_goes_out` and timed out with exit 124. I’ll hand PR 6987 back for review of the exporter-drain test fixture, restore its pinned branch, and record the failing command in the result file.
exec
/bin/bash -lc "git merge --abort
python3 - <<'PY'
import json
from pathlib import Path
cmd='timeout --verbose --kill-after=5s 45s cargo test --locked -p moq-audio -p moq-cli -p moq-hls -p moq-json -p moq-mux -p moq-net -p moq-pattern -p moq-quic -p moq-relay -p moq-tokio -p moq-video -p qmux@0.7.0 container::ts::export_timing_test::the_video_held_at_the_end_goes_out -- --exact --nocapture'
result=[{'number':6987,'action':'handback','diagnosis':f'Base merge conflicts can be resolved mechanically, but the merged candidate cannot pass tests: "'`{cmd}` reaches `running 1 test` and exits 124 with "timeout: sending signal TERM to command ‘cargo’"; the full package test run also reports `test container::ts::export_timing_test::the_video_held_at_the_end_goes_out has been running for over 60 seconds` (four other export timing tests also stall).'"','recommendation':'Review the export timing fixture drain/finish path with the base kio::clock migration; resolve the runtime stall with coverage preserved, then rerun all twelve affected packages. Mechanical merge attempt was aborted; pr-6987 remains at its pinned head.'}]
Path('quest-land-result.json').write_text(json.dumps(result,indent=2)+'\\n')
PY
git status --short
git rev-parse pr-6987 batch base" in /work
succeeded in 2595ms:
Updating files: 47% (623/1321)
Updating files: 48% (635/1321)
Updating files: 49% (648/1321)
Updating files: 50% (661/1321)
Updating files: 51% (674/1321)
Updating files: 52% (687/1321)
Updating files: 53% (701/1321)
Updating files: 54% (714/1321)
Updating files: 55% (727/1321)
Updating files: 56% (740/1321)
Updating files: 57% (753/1321)
Updating files: 58% (767/1321)
Updating files: 59% (780/1321)
Updating files: 60% (793/1321)
Updating files: 61% (806/1321)
Updating files: 62% (820/1321)
Updating files: 63% (833/1321)
Updating files: 64% (846/1321)
Updating files: 65% (859/1321)
Updating files: 66% (872/1321)
Updating files: 67% (886/1321)
Updating files: 68% (899/1321)
Updating files: 69% (912/1321)
Updating files: 70% (925/1321)
Updating files: 71% (938/1321)
Updating files: 72% (952/1321)
Updating files: 73% (965/1321)
Updating files: 74% (978/1321)
Updating files: 75% (991/1321)
Updating files: 76% (1004/1321)
Updating files: 77% (1018/1321)
Updating files: 78% (1031/1321)
Updating files: 79% (1044/1321)
Updating files: 80% (1057/1321)
Updating files: 81% (1071/1321)
Updating files: 82% (1084/1321)
Updating files: 83% (1097/1321)
Updating files: 84% (1110/1321)
Updating files: 85% (1123/1321)
Updating files: 86% (1137/1321)
Updating files: 87% (1150/1321)
Updating files: 88% (1163/1321)
Updating files: 89% (1176/1321)
Updating files: 90% (1189/1321)
Updating files: 91% (1203/1321)
Updating files: 92% (1216/1321)
Updating files: 93% (1229/1321)
Updating files: 94% (1242/1321)
Updating files: 95% (1255/1321)
Updating files: 96% (1269/1321)
Updating files: 97% (1282/1321)
Updating files: 98% (1295/1321)
Updating files: 99% (1308/1321)
Updating files: 100% (1321/1321)
Updating files: 100% (1321/1321), done.
?? quest-land-result.json
31df5805b61560b12c84f2649269427ba2d1b4cd
31df5805b61560b12c84f2649269427ba2d1b4cd
4b8e37bd44e407b3416a17992720870ea3f9221c
codex
PR 6987 handed back: the merged candidate builds, but five export timing tests stall; a filtered rerun timed out.
Branch restored unchanged. Diagnosis and command recorded in uncommitted [quest-land-result.json](/work/quest-land-result.json).
tokens used
113,682
PR 6987 handed back: the merged candidate builds, but five export timing tests stall; a filtered rerun timed out.
Branch restored unchanged. Diagnosis and command recorded in uncommitted [quest-land-result.json](/work/quest-land-result.json).
fixer result written
(written by codex / Codex) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kio::clock::timeout arms its sleep on the entered Deadlines queue, which only the harness advances, so a drain whose export never reported the end waited forever. Advance the queue 10 ms instead, as the timeout meant to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: cf952d0c25f0baff1feb51251eb8dabe27bdd629.
No new actionable bugs found in the update since review #5700676453, accounting for the merged base changes. The export-timing fixture now drives its own deadline queue instead of awaiting a timeout on that unadvanced queue. Its final-video count and paired-output assertions remain intact. This addresses the fixture stall described in the land-fixer report; it was not a finding in my previous review.
Direction: keeping the drain synchronous on the harness-owned clock is simpler and appropriate. The merged JSON per-record limit, QUIC logging/buffer adaptations, and HLS file-only path retain the intended narrow optimization scope; no additional public API or wire change is introduced by these updates.
Verification: static inspection of the incremental changes and relevant exporter, clock, and HLS code only. No tests or benchmarks run, and the reported gate results and CPU savings were not independently reproduced.
(Written by OpenAI)
All four cuts from #6987 have landed or land with this PR, so remove the quest and its link. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
quest/m0/ci/slow-tests.md: the 103 test IDs frozen in moq-dev/moq#6914 took 137.83 CPU-seconds at baseline. The target is under 68.92 s, with every case and its coverage kept. Current main measures 100.55 s.Result
Two full normal runs of this branch measure the cohort at 61.02 s and 67.49 s. Both are under 68.92 s. All 103 IDs ran and passed. Whole-suite test CPU fell from 206.2 s to 166.0 to 178.5 s.
Run-to-run noise is about 10%, mostly in the export timing tests under host contention. Run 2 clears the target by only 1.4 s, so a noisier host could put it over.
moq-mux container::ts::export_timing_testmoq-mux container::ts::recovery_testmoq-net::integration routing_contractsmoq-quicmoq-net::integration mesh_withdrawmoq-mux jitter::testsmoq-jsonmoq-netmoq-statsmoq-net::integration catalog_churnmoq-tokio::integrationmoq-audioqmuxmoq-videomoq-mux rate::tests::modelmoq-pattern::integrationChanges
No test was deleted, ignored, or moved to nightly. No assertion or bound was loosened.
moq-mux
export_timing_test: theLiveharness advances its ownkio::clock::Deadlinesqueue instead of sleeping on the tokio paused clock, the same switch the jitter tests made in test(mux): reduce fixture CPU and checkpoint frozen cohort #6914.assert_same_packetscompares 188 bytes at a time and only drops to bytes to name the offset that differs.drainadvances that queue 10 ms itself when nothing is due, instead of akio::clock::timeoutarmed on a queue nothing else advances, which hung four tests once main's export stopped reporting the end there.export_timing_test: the three drifting-source cases measure 60 s of media instead of 300 s. See Decisions.recovery_test:pools=none:frame-threads=1, since it ignores-threads 1. This also makes the bitstream the same on every host.jitter: the drift and feed helpers drain due frames without collecting them.Steer::measure(production) skips the depth sort when only one track qualifies, because the depth only breaks ties between tracks.jitter_steeringrelease bench: 1-track cells about 7% faster (1/300: 287 to 267 µs), 4, 16 and 64-track cells unchanged within noise.ratemodel proptest usesRngAlgorithm::XorShift. ChaCha seeding on every weightedprop_oneoffork was 60 to 80% of the run. The case count, seed and strategies are unchanged.fixture::Mux::packetbuilds into a[u8; 188], with identical bytes.moq-net
routing_contractsreference model (test only): each identity's route is selected once per pass instead of up to seven times. Links live in a dense matrix, and per-peer views are restricted once per distinct interest.handoff::loop_freeskips identities that were never originated.Net's full state, events, stats and queues was byte-identical before and after across all 56routing_contractstests.front::tests::bounded_sequences_hold_the_invariantsrendersDebugonly when an event emitted something other thanDetach. It is the same check in contrapositive form, with cheap fields compared first.a_busy_track_yields_to_its_siblingsanda_busy_subscription_yields_to_its_siblingsserve 2,000 groups instead of 10,000. See Decisions.moq-json
max_group_bytesfield, and the stream encoder its per-record limit from a privatemax_frame_bytesfield (main's feat(net)!: shed group fronts past a 32 MB tail or under pool debt #6993 dropped the stream's group budget). Both default toMAX_CACHE_BYTES, so behavior is unchanged. This mirrors the snapshot encoder's existing field.a_compressed_log_is_charged_its_inflated_sizefrom the table below no longer exists on main.rate.moq-quic
payload()returns a slice of one shared 251-byte cycle instead of building 64 KiB byte by byte on every send attempt. Streams under 251 apart still differ at every offset.subscribe()readsRUST_LOGand defaults toinfoinstead of formatting every TRACE event. The per-step client and server spans aredebug. The runs are deterministic, so a failure replays withRUST_LOG=trace. Main'ssubscribe_atis gone: its one caller, the probe runs, wantedinfo, whichsubscribe()now gives.Elsewhere
Color::inferreads only the height.concat().reqwest::Clientper mesh. Building one per 10 ms poll loaded the system trust roots each time.fileplaylist builds no HTTP client, so it also skips the rind rustls install main added before building one.same_originalready kept every fetch on the entry's scheme, so it never used one, but building it parsed the system trust roots.Cargo.toml: rubato builds at opt-level 3 in dev, as sonora already does. Its SIMD intrinsics are the whole resampler invariant test (0.9 to 0.14 s).Decisions
Settled by the maintainer in a /quest-complete session, which accepted both recommendations.
a_slow_source_clock_keeps_the_delay,a_fast_source_clock_keeps_the_delay,a_source_past_the_limit_is_counted; committest(mux): measure a drifting source's rate over a minute). It saves about 6.5 s, without which the cohort misses the target.RATE_WINDOWnorRESPONSE(both 600 s) fills by 300 s, so the steering stays in the same regime.Also chosen while iterating:
info.Impact
Steer::measurepicks the same slope, and a file HLS import makes no HTTP request, as before.Validation
quest gate nix develop -c just ci origin/mainon cf952d0 (main 3164bce): every module passed butcheck flake, which fails on this host because the Nix builder cannot create user namespaces (unshare: write failed /proc/self/uid_map).test rs: 10,908 tests passed, 124 skipped.just checkpassed at 6d9931e (10,386 tests).quest check --base origin/mainpassed.d16e86fb379a8d68b301f1471d5f135517faa5225f8fbaa1156f3e7405e5ef48), underjust rs test --workspace --exclude moq-net-fuzz --exclude moq-quic-fuzz, zero retries. Same machine as the frozen baseline (Intel Core Ultra 7 270K Plus, 24 logical CPUs).6d9931ef90; the later commit only removes the quest.Tried and dropped
select_nth_unstable_byfor the jitter medians: the release bench regressed 15 to 25% at 300 floors.sort_unstable_bywas neutral in release and cost 45% more in debug.opt-level = 3for serde_json: about 20% on the stats oversize tests, because its generic code is instantiated in the calling crates at opt-level 0.Link::routeby stream kind: at most 4% of the mesh tests, and it changes the wakeup order the pinned mesh counts depend on.-aac_coder fastfor the recovery clips: no change.Follow-ups
recovery_test's CPU. Options: commit the clips (about 320 KB each), generate them in a nextest setup script, or keep a lock-guarded cache keyed by FFmpeg version.Export::poll_next. Track fill through moq-net'sSubscriber::poll_groupis about 24% of an export poll, and catalog polling throughmoq_json::snapshot::Consumer::poll_latestintoCursor::poll_next_groupis 11 to 19%. This helps every export test and production. Needs a benchmark.AnnouncePrefix::poll_run, originsync_route/requests_route,OriginScope::relativerebuildingPatternson every call, and per-session setup (about 25%) dominatemesh_withdraw. Needs benchmarks.frame::Iteryields oneFrame::Paddingper padding byte. In debug, that move is about 30% of handshake CPU. Collapse runs, after checking what theframe_rxpadding stats should count.tracing-test'sno-env-filter, enabled by moq-tokio, unifies across the build, so every crate formats at TRACE. That is 11 to 17% of the moq-tokio integration tests.a_fill_refused_group_by_group_stays_linear(1.8 s) runs 100,000 refusals. A smaller count catches a plain quadratic but not a cheap per-refusal copy.Per-test CPU seconds: frozen baseline, main, and two runs of this branch
moq-muxcontainer::ts::export_timing_test::two_legs_render_a_drifting_source_the_same_waymoq-net::integrationrouting_contracts::handoff::sweep_handoffmoq-muxjitter::tests::the_clock_follows_a_drifting_source_for_a_daymoq-muxcontainer::ts::export_timing_test::a_joiner_keeps_the_system_clock_in_tolerancemoq-muxcontainer::ts::export_timing_test::a_fast_source_clock_keeps_the_delaymoq-muxcontainer::ts::export_timing_test::a_source_past_the_limit_is_countedmoq-muxcontainer::ts::export_timing_test::a_slow_source_clock_keeps_the_delaymoq-net::integrationrouting_contracts::handoff::sweep_requests_reach_a_quiet_originmoq-net::integrationmesh_withdraw::residual_random_meshesmoq-net::integrationmesh_withdraw::capped_random_meshes_hunt_lessmoq-netmodel::front::tests::bounded_sequences_hold_the_invariantsmoq-quictests::sim::random_workloadsmoq-net::integrationrouting_contracts::sweep_forgetting_distancesmoq-statsproduce::tests::an_oversize_group_leaves_other_groups_readablemoq-netmodel::track::test::a_fill_refused_group_by_group_stays_linearmoq-quictests::sim::replays_from_seedmoq-jsonwindow::encoder::test::a_header_larger_than_the_group_cache_is_rejectedmoq-statsproduce::tests::oversized_frame_ends_both_flavorsqmuxsession::tests::websocket_keep_alive_runs_during_continuous_outputmoq-jsonwindow::encoder::test::an_op_that_would_evict_the_header_rolls_firstmoq-videoencode::encoder::tests::transcode_keeps_the_space_the_source_signalledmoq-muxrate::tests::model::invariants_hold_on_random_walksmoq-net::integrationcatalog_churn::catalog_churn_lite_07moq-muxcontainer::ts::recovery_test::hevc_keeps_radl_after_a_holemoq-pattern::integrationpattern_exhaustive::intersect_matches_exactly_what_both_matchmoq-muxcontainer::ts::recovery_test::hevc_trims_only_orphaned_raslmoq-quictests::probe::congestedmoq-net::integrationrouting_contracts::sweep_forwarding_progressmoq-statsproduce::tests::reheld_wire_presence_refreshes_two_relay_cachesmoq-muxcontainer::ts::recovery_test::a_skip_across_a_resolution_change_takes_the_new_parametersmoq-jsonwindow::properties::window_codec_property_matches_every_readers_logical_windowmoq-muxcontainer::ts::recovery_test::a_lost_discontinuity_marker_still_breaks_the_clockmoq-jsonsnapshot::encoder::test::snapshot_codec_property_reconstructs_each_json_valuemoq-audioresample::tests::duration_and_samples_are_invariant_across_partitions_and_epochsmoq-muxcontainer::ts::recovery_test::a_declared_discontinuity_survives_loss_either_sidemoq-net::integrationcatalog_churn::catalog_churn_lite_06moq-muxcontainer::ts::export_timing_test::frames_held_through_a_silence_drop_as_latemoq-quictests::bbr_marking_versus_droppingmoq-quictests::probe::borderline_skips_probe_rttmoq-net::integrationmesh_withdraw::partial_mesh_withdraw_then_republishmoq-netietf::publisher::group_priority_test::a_busy_track_yields_to_its_siblingsmoq-jsonstream::test::an_oversized_record_is_refused_and_the_log_continuesmoq-muxcontainer::ts::export_timing_test::a_skip_at_the_join_keeps_one_clockmoq-muxcontainer::ts::export_timing_test::a_skip_while_running_keeps_one_clockmoq-muxjitter::tests::a_wandering_track_sent_latest_does_not_move_the_ratemoq-audiodecode::consumer::tests::the_decode_path_conforms_to_the_corpusmoq-quictests::probe::rises_to_targetmoq-muxjitter::tests::closing_a_late_start_is_not_charged_to_the_ratemoq-muxcontainer::ts::recovery_test::a_skipped_group_resumes_at_the_nextmoq-muxcontainer::ts::recovery_test::a_skip_across_the_wrap_keeps_the_clockmoq-muxcontainer::ts::recovery_test::a_cut_group_keeps_what_it_deliveredmoq-quictests::sim::priority_on_a_clean_pathmoq-muxcontainer::ts::recovery_test::a_stalled_track_leaves_the_others_runningmoq-net::integrationmesh_withdraw::full_mesh_withdraw_retracts_once_lite04moq-muxcontainer::ts::recovery_test::skewed_audio_survives_a_video_skipmoq-muxcontainer::ts::export_timing_test::a_track_sent_later_than_the_delay_loses_nothingmoq-muxcontainer::ts::recovery_test::a_stall_drops_what_it_made_latemoq-muxcontainer::ts::recovery_test::a_clean_path_loses_nothingmoq-muxcontainer::ts::export_timing_test::a_cut_judges_held_video_when_the_loss_is_observedmoq-muxcontainer::ts::recovery_test::a_congested_path_sheds_what_it_made_latemoq-net::integrationmesh_withdraw::full_mesh_withdraw_retracts_once_lite06moq-tokio::integrationbroadcast::zero_initial_backoff_still_gives_up_on_a_flapping_peermoq-muxjitter::tests::a_late_start_within_the_drift_limit_never_failsmoq-muxcontainer::ts::recovery_test::open_gop_trims_only_the_orphansmoq-jsonstream::test::a_compressed_log_is_charged_its_inflated_sizemoq-muxcontainer::ts::recovery_test::a_path_stall_drops_what_it_made_latemoq-muxcontainer::ts::export_timing_test::the_video_held_at_the_end_goes_outmoq-muxcontainer::ts::recovery_test::a_late_catalog_starts_on_a_whole_groupmoq-muxcontainer::ts::recovery_test::a_join_starts_on_a_whole_groupmoq-netlite::publisher::tests::a_busy_subscription_yields_to_its_siblingsmoq-quictests::probe::overflow_keeps_probe_rttmoq-net::integrationfetch_fanout::sequential_viewers_share_the_relays_fetched_groupsmoq-muxcontainer::ts::recovery_test::the_graders_fail_what_they_shouldmoq-muxjitter::tests::a_spell_on_the_steady_track_keeps_the_rate_on_itmoq-net::integrationmesh_withdraw::partial_mesh_withdraw_retracts_oncemoq-tokio::integrationreceive_credit::bufferbloat_is_not_a_stuck_windowmoq-muxcontainer::ts::export_timing_test::a_successor_settles_held_video_across_a_skip_or_restartmoq-cli::bin/moqpublish::tests::ts_passthrough_crosses_a_relay_through_a_flagged_jumpmoq-muxcontainer::ts::passthrough_test::a_long_gop_splits_at_the_byte_ceiling_between_objectsmoq-muxcontainer::ts::export_timing_test::video_held_for_most_of_the_delay_drops_nothingmoq-quictests::bbr_burst_after_long_idle_keeps_learned_bandwidthmoq-muxcontainer::ts::export_timing_test::live_audio_shares_its_pesmoq-net::integrationrouting_contracts::handoff::sweep_scoped_handoffmoq-muxjitter::tests::a_step_in_queueing_does_not_move_the_estimatemoq-tokio::integrationbroadcast::broadcast_rejoin_replays_a_current_warm_cachemoq-jsonsnapshot::encoder::test::memo_matches_the_value_diffmoq-jsonsnapshot::test::a_rejected_update_leaves_the_previous_value_readablemoq-cli::bin/moqhls::test::an_ended_playlist_announces_its_catalogmoq-relay::integrationcluster_unknown::every_ingest_version_crosses_a_redundant_meshmoq-tokio::integrationreceive_credit::lite_frame_of_many_windows_completesmoq-muxjitter::tests::start_up_latency_never_fails_a_full_multiplexmoq-muxjitter::tests::a_source_past_the_drift_limit_failsmoq-statsproduce::tests::steady_drain_collects_without_allocatingmoq-muxcontainer::ts::export_test::scte35_fixtures_survive_roundtripmoq-netmodel::track::test::an_empty_successor_still_lets_the_gaps_gomoq-netmodel::track::test::an_endless_untimed_track_with_gaps_stays_boundedmoq-hlsexport::tests::a_fresh_join_reads_a_bounded_number_of_recordsmoq-net::integrationcompress::a_start_group_arrives_wholemoq-netmodel::resume::test::a_resumed_reader_forgets_gaps_past_its_budgetmoq-netmodel::track::test::an_endless_track_with_gaps_stays_boundedmoq-muxcontainer::ts::import::test::a_signalled_reset_reaches_the_exported_clockmoq-muxcontainer::ts::import::test::a_shared_forward_boundary_resets_once_per_renditionmoq-netmodel::track::test::an_untimed_sparse_feed_keeps_its_gapsMerge history
moq_clocktokio::clockrename (moq-dev/moq#7027) inexport_timing_test.rs(kept this PR's Deadlines harness, renamed) and inquest/m0/ci/slow-tests.md(kept this PR's deletion), and main'ssubscribe_atin moq-quictests/util.rs(see Changes).five-minutes.mdno longer waits on slow-tests.Import::newdoc for it.Review
quest review), gpt-6.1-sol, medium effort, session 01a19828.(Written by Claude Opus 5.5)
🤖 Generated with Claude Code