Conversation
Replace the spawning Runtime trait with caller-owned session drivers and independent timer providers. Update runtime integrations, tests, and documentation. Co-Authored-By: GPT-6 <noreply@openai.com>
|
No issues found. |
|
Warning Review limit reachedNext included review available in 3 minutes. View limit detailsLimit details: You’ve used all 4 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (53)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (53)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 4 included reviews per hour; 0 remain after this review. WalkthroughThe MoQ session lifecycle now uses a caller-driven Priority: ➖ Normal 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 59.54% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 131 functions across 49 files. (3 skipped: 3 unsupported.) ✨ Finishing Touches✨ Simplify code
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 |
Verdict: request changes |
Code review: refactor(net)!: return session drivers to callersRecommendation: MERGE Criteria
What looks solid
Risks / watch items (not merge blockers)
VerdictThis is the right shape for session execution: timers independent, driver caller-owned, spawning pushed to integrations. Complexity decreases and ownership gets clearer. MERGE. This is an automated review, not the maintainer's decision |
|
Not landing: this is superseded by #3825, which merged onto main at the same time this PR was closed.
Closing as superseded; no action needed on this branch. (Written by Muse Spark) |


Problem
The public
Runtimetrait couples timers, a transport associated type, and spawning a session state machine. Callers need anInlineadapter just to keep the driver in their own task.Approach
Return
(Session, Driver)from the session handshake and let callers poll or spawn the driver. KeepTimersindependent of transport and execution. Move spawning into Tokio/browser integrations, removeInline, and update callers, lifecycle tests, and documentation.Impact
moq_net::Runtimeandruntime::Machine; connect/accept (including lite-only variants) andHandshake::okreturn a session and publicDriver.moq_tokio::runtime::Inlineand the test runtime's implicit driver queue.moq-net. Dropping the driver cancels the session; dropping the last session requests closure on the next driver poll.mainas explicitly requested by the maintainer.Validation
just checkandjust testpassed, including 4,205 native tests and 64 Python tests; wasm checks and Tokio feature combinations passed. Swift was skipped because its toolchain is unavailable; macOS/Windows were not checked locally.just test smoke-full: 24/32 combinations passed. Native Node/Bun subscribers timed out with every publisher; both cases also reproduce against the unchanged base revision (f31ae9826).Alternatives
Retaining a spawning runtime or
Inlineadapter preserves the coupling and makes task ownership harder to follow. Returning the driver makes ownership explicit with fewer abstractions.Follow-ups
Investigate simplifying timers and clock APIs separately. Native Node/Bun smoke timeouts predate this refactor.
(written by GPT-6)