Repository navigation
refactor!: stop shipping unused API surface - #6454
Conversation
Quest-Claim: 36c04cdc4bcb3864
Apply the approved publication and feature boundaries, preserve real workspace consumers, and validate ICE sockets at construction. Co-Authored-By: GPT-6 <noreply@openai.com>
|
Completed the approved unpublish audit in f692d9bfc59c67c1046609d4df66f08bd364acd7. The quest and its parent link are removed; existing P2P, E2EE CLI, UDP-demux, and wire-stats plans now describe what must acquire a real consumer before publication or exposure. Final validation passed 9,005 selected Rust tests, 4,796 selected JS tests, 164 full interop checks, the real browser P2P transfer, feature/packaging probes, and all unaffected selected checks. Full Public API removals and migration guidance are recorded for every affected package. Wire formats and package versions are unchanged. No open design decision remains; marking ready for review without merging. (Written by GPT-6) |
|
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 32 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. |
|
Merging. Iterated to settle the maintainer's decisions, then chosen for /quest-merge. CI is green, the current head has a non-Grok review, and (Written by Claude Opus 5.5) |
# Conflicts: # js/room/src/index.ts # quest/m1/api-audit/README.md # rs/moq-cli/MIGRATE.md # rs/moq-relay/Cargo.toml # rs/moq-relay/MIGRATE.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
The release exposed packages, namespace re-exports, optional listeners, and stats handles with no application consumer. The Game Boy binary could also build without its required encoder and then refuse to start.
Approach
Apply the approved API audit boundaries, migrate the conferencing demo to direct imports, and keep working transport and gateway paths intact. Validate feature combinations separately so dependency unification cannot hide missing gates.
Impact
Breaking. How to migrate each change:
@moq/p2pis private with no release script; use the workspace source for thetest/p2pharness. Rustmoq-e2eeandmoq-roomsetpublish = false; use the workspace source (the published room implementation is@moq/room).@moq/roomdrops itsHang,Net,Publish,Signals, andWatchnamespace re-exports. Import from@moq/hang,@moq/net,@moq/publish,@moq/signals, and@moq/watchdirectly and declare them in your application's dependencies. TheClockre-export from main stays, since the room's own signatures take its time units.moq-boy: Cargo refuses to build or install the binary withoutopenh264. Install withcargo install moq-boy --features openh264; the Nix package already enables it.moq-cli: default features no longer enablemoq_tokio::webrtcnative data channels. Enablewebrtcexplicitly in a source build that integrates that transport.moq import rtc/moq export rtcstill include the WHIP/WHEP gateway withstr0mandmoq-ice.moq-tokio: the feature-gatedwebrtcmodule is hidden from public docs while it has no application consumer; source integrations still enable thewebrtcfeature.moq-relay: STUN (moq_relay::stun,Config::stun,--stun-bind/MOQ_STUN_BIND/[stun]) needs the non-defaultstunCargo feature, for examplecargo install moq-relay --features stun. Default builds have no STUN listener or settings and refuse the flag, environment variable, or TOML table.moq-rtc:Client::publishandClient::subscribereturnResult<()>again (reverting the unreleasedResult<wire::Source>from feat(rtc)!: expose per-peer UDP wire sources #5632); successful negotiation starts the background media session. Remove reads of the returned wire source,Response::wire, andmoq_rtc::wire.Response::runstill drives an accepted server session until it ends. The stale feat(rtc)!: expose per-peer UDP wire sources #5632 entry inrs/moq-rtc/MIGRATE.mdshould be dropped at the cut.moq-ice: stays published formoq-tokioandmoq-rtcas internal infrastructure with no stability promise. ReplaceSocketstruct literals withSocket::new(udp, locals, inbound)?, which refuses emptylocalswithstd::io::ErrorKind::InvalidInput; fields are private, so read candidates throughsocket.locals().Validation
stun-typesdependency, and no P2P JSR publish manifest.just test interop --all: all 164 checks passed.just test p2p: real browser peers completed SETUP and transferred a frame.quest check --base origin/main: 605 documents passed.just cireached the known host restriction while buildinggithub-runner:unshare: write failed /proc/self/uid_map: Operation not permittedduring systemd-repart. Flake evaluation passed; unaffected package-source-assets and runner-VM configuration checks passed separately, as did all remaining selected test/lint phases.--no-default-features --all-targetsprobe fails in existing tests that assume optional WebSocket/unix configuration fields. The supported minimal library/binary feature checks above pass; no unrelated test or host workaround is included.stun_binding_merges_the_environmenttest gated behindstun. After the merge:just checkjs, rs, quest, and drill passed (flake stops on the knownunshare uid_mapsandbox limit); changed-crate Rust tests 5,056 + 524 + 239 passed; relay withstun389 passed; changed-package JS tests 4,896 passed; Markdown, TOML, gh tooling, and ts-paths checks passed. Interop was not rerun since no wire, FFI, or binding code changed in the merge.Alternatives
Leaving unused surfaces public creates compatibility obligations without a current application. Existing used transports, the RTC gateway, and workspace test consumers remain available within their intended scope.
Follow-ups
The existing P2P, E2EE CLI, UDP demux, and wire-stats quests own introducing their application consumers. No new API decision is needed for these approved audit choices.
(Written by GPT-6)
(Re-merge and Impact edit written by Claude Opus 5.5)