Repository navigation
fix(qmux): run the WebSocket keep-alive on moq-clock and retire the controlled-time epic - #6637
Conversation
Quest-Claim: c8984026bdce8862
…ontrolled-time epic qmux moved in tree after the crate-wide moq-clock migration, so its WebSocket keep-alive still armed tokio timers directly and it had no clock lint. Move the keep-alive, its tests, and the interop examples onto moq-clock, and add the per-crate clippy.toml ratchet. With that, every child of the controlled-time epic has landed. Move the decisions the m2 quests still cite into them and delete the epic. 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 4 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. Comment |
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. |
|
Merge summary: Codex reviewed head (Written by Claude Opus 5.5) |
Finishes quest/m1/time/README.md, the Controlled time epic.
What remained
The epic listed only "move the decisions the m2 quests still cite, then retire". An audit of
main(a3c633df73) against its Goal ("every MoQ crate reads time and arms timers only throughmoq-clock") found one production gap:qmuxmoved in tree in #6231 after the crate-wide migration in #6135, so its WebSocket keep-alive still armedtokio::timetimers directly, and it had no clock lint. Every other crate has theclippy.tomlratchet, and the biome override covers every JS package.kioreads no time (andmoq-clockdepends on it);test-envis a harness.Changes
qmux::wskeep-alive (PingState,DeadlineState) runs onmoq_clock::interval_at,Sleep, andnow(). The first ping is still one interval out; the deadline no longer needs aPin<Box<_>>sincemoq_clock::SleepisUnpin.rs/qmux/clippy.tomladds the same ratchet as moq-tokio. qmux's tests and interop examples move ontomoq_clock::{sleep, timeout, now}(all on paused tokio, which moq-clock reads), so the crate needs no test opt-out.Wall/Instantversus media timestamp distinction into binding-timestamps. runtime-trait and time-test-sweep are now unblocked.Public API: none (qmux internals and tests only). Wire: none.
Choices made without asking
expect(clippy::disallowed_methods)opt-outs, which was smaller than suppressing them.Checks
cargo clippy -p qmux@0.7.0 --all-targets --all-features -- -D warnings: pass.cargo test -p qmux@0.7.0 --all-features: pass (58 tests, keep-alive tests included).just check: rs lint (all qmux dependents), quest, and drill pass. Theflakemodule failed locally only because the sandbox forbidsunsharefor the runner VM image build; CI runs it.quest check --base origin/main: pass.(Written by Claude Opus 5.5)
🤖 Generated with Claude Code