Repository navigation
refactor!: one exported 10 s playout ceiling - #8588
Conversation
Quest-Claim: 250482ab39008458
…AY_MAX Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…constant Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
I reviewed the change that merges four copies of the 10 s playout ceiling into one exported constant per language.
- Rust constant:
moq_mux::container::DELAY_MAXreplacesWARMUP_MAXandmoq_audio::playback::Input::LATENCY_MAX. Every user in moq-audio, moq-video, moq-cli and moq-gst now uses the new name.moq-muxis a non-optional dependency of each of these crates, soInput::validatebehind theplaybackfeature still compiles. - moq-cli duplicate removed:
args.rsnow imports the shared constant. The test that pinned the duplicate is gone because nothing is duplicated any more. - JS export:
@moq/hangexportsContainer.DELAY_MAX, and@moq/watch's internalDELAY_MAXis now an alias of it.@moq/watchalready depends on@moq/hang. Container.Consumerwarmup clamp:warmupis now clamped toDELAY_MAX, matching Rust'sPlayout::reach.@moq/watchalready clamps before it builds the consumer, so the clamp only changes behavior for code that uses@moq/hangdirectly.
No references to the old names remain except the historical line at rs/moq-audio/MIGRATE.md:30, which the release cut owns. No moq-ffi binding exposed the removed constants.
claude-opus-5-5 | 𝕏
|
No actionable comments were generated in the recent review. WalkthroughThe changes define and export a shared 10-second delay maximum in the container APIs. Rust and JavaScript consumers use the maximum to cap catalog warmup. Rust playback paths use it to validate latency and cap playback delays. Tests and API documentation are updated to use or describe the shared maximum. Merge Risk:
|

One exported 10 s playout ceiling replaces four copies under three names.
Changes
moq_mux::container::DELAY_MAXreplacesmoq_mux::container::WARMUP_MAXandmoq_audio::playback::Input::LATENCY_MAX; every Rust user (moq-audio, moq-video, moq-cli, moq-gst) imports it.@moq/hangexportsContainer.DELAY_MAX;@moq/watch's internalDELAY_MAXis now an alias of it (one line insync.ts, so the parallel push-to-talk quest's edits there should merge cleanly).Impact
Public API, breaking:
moq_mux::container::WARMUP_MAXandmoq_audio::playback::Input::LATENCY_MAX→moq_mux::container::DELAY_MAX(same 10 s value).Container.DELAY_MAXexport in@moq/hang.Wire: none.
Decisions made without asking
DELAY_MAXas the quest recommended; defined the JS constant besideConsumerinjs/hang/src/container/consumer.ts.rs/moq-audio/MIGRATE.mdto the release cut.@moq/hang'sContainer.Consumernow clampswarmuptoDELAY_MAX, like Rust'sPlayout::reach(before, only@moq/watchclamped).Validation
just check(Rust, JS, biome, api reports) passes.cargo test -p moq-cli --features play the_delay_is_bounded_by_the_speakers_ringpasses:--delay 11sis refused,10saccepted.grepfinds no remainingWARMUP_MAX/LATENCY_MAXoutside MIGRATE.md history, and oneDuration::from_secs(10)/Duration.secs(10)definition per language.Caused by
No single PR: the copies accumulated, most recently moq-dev/moq#8549 adding
WARMUP_MAX.Follow-ups
None.
Models
Size: S
Implementer: Claude Code, claude-opus-5-5, unknown effort
Review
Rewritten by
quest reviewafter each round.Head: 8048684, named in full once no reviewer reports a finding
Base: origin/main at 3628a31
Reviewer: Codex, gpt-6.1-sol, medium effort
Session:
01a1d17a-94aa-7cb3-921d-ac490ed3b7d2, round 1Score: 9/10,
Source review found the refactor preserves the existing 10-second bounds while consolidating their definitions across Rust and JavaScript; builds and tests were not run as instructed.Findings: none
Reviewer: opencode, opencode-go/deepseek-v4.1-flash, high effort
Session:
ses_e2e856547ffeViGT6ZdV7m5AeC, round 1Score: 8/10,
The constant unification is complete and behavior-preserving, but the shipped migration guide still points at the removed API and the new JS constant documents a bound its own package does not apply.Findings, open until the next round settles them:
rs/moq-audio/MIGRATE.md:30:Migration guide still names the removed Input::LATENCY_MAXjs/hang/src/container/consumer.ts:8:DELAY_MAX documents a cap @moq/hang itself does not enforceHead 13187c5: finding 1 refuted (repo's
check migrateallows only the release cut to editMIGRATE.md; the migration lives in Impact above). Finding 2 fixed:Container.Consumernow clampswarmuptoDELAY_MAX, mirroring Rust'sPlayout::reach.(Written by Opus 5.5)