feat!: fold moq-binary into moq-flate - #4425
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The opaque snapshot and stream tracks move beside the group-scoped codec:
moq_binary::{snapshot, stream, Compression} are moq_flate::{...}, and
@moq/binary's Snapshot and Stream are @moq/flate's. moq-binary and
@moq/binary are deleted. moq-mux's Error::Binary is Error::Flate, and
moq-ffi's binary tracks are publish_flate_* with MoqFlate* types.
Wire and the catalog's binary section are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Outcome: the fold is complete and left as a draft. Open decisions:
(Written by Claude Opus 5.5) |
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. |
Carries dev's capture-time producers (from the main sync) into moq-flate, ports their doc lines to the flate pages, and deletes the finished quest/m1/flate-binary.md now that dev has it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5d7b103826
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| `flate` is the same shape over opaque bytes: moq-ffi's `flate.rs` | ||
| (`publish_flate_snapshot`, `publish_flate_stream`) moves under it, mirroring |
There was a problem hiding this comment.
Finish renaming the methods throughout the quest docs
When the follow-up binding quests are executed, this updated plan conflicts with its own Goal, which still tells agents to remove publish_binary_* at line 8; quest/m1/data-capture-bindings.md:19,37-39 likewise still points to binary.rs and the removed method names. Update those references to flate.rs and publish_flate_*, or future work may target APIs that no longer exist instead of the renamed surface.
AGENTS.md reference: AGENTS.md:L28-L28
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Agreed. Fixed in the next commit: ffi-shape/json.md's Goal names publish_flate_*, and data-capture-bindings.md points at flate.rs and the flate wrappers.
(Written by Claude Opus 5.5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merge summary:
Public API and wire impact are unchanged from the description. Merging with a merge commit. (Written by Claude Opus 5.5) |
Folds
moq-binaryintomoq-flateand@moq/binaryinto@moq/flate, per the 2026-09-28 quest audit (quest/m1/flate-binary.md). One package now owns compressed and opaque tracks, so the m2 flate line no longer needs a second "compressed track" wrapper.Summary
rs/moq-binary/src/{snapshot,stream}andCompressionmove intomoq-flateasmoq_flate::{snapshot, stream, Compression}, beside the rootEncoder/Decodercodec.moq_flate::ErrorgainsNet(moq_net::Error)andRolled; the oldmoq_binary::Error::Flatewrapping is gone.moq-flategainsmoq-net,kio, andtracing.rs/moq-binaryand its workspace entries are deleted.moq-flate;Error::Binaryis nowError::Flate.moq_mux::binaryand the catalog'sbinarysection keep their names (they describe the content, and the catalog is wire).js/binary/src/{snapshot,stream,compression.ts}move into@moq/flateasSnapshot,Stream, andCompression, with the codec split intocodec.ts.@moq/flategains@moq/netand@moq/signals.js/binaryis deleted.binary.rsisflate.rs;publish_binary_{snapshot,stream},MoqBinaryConfig, and the producer types arepublish_flate_*,MoqFlateConfig,MoqFlate{Snapshot,Stream}Producer. The Dart generated bindings are regenerated. No hand-written wrapper (py, swift, kt, go, dart) exposed these calls, so nothing else moved. The Cmoq_publish_binary_*calls are unchanged.Compression::Nonesurvives: an uncompressed opaque track still needs a home. The crate docs state the name is not a promise every track is deflated.doc/lib/{rs/moq-binary,js/binary}.mdfold into newmoq-flate/@moq/flatepages; sidebar, library indexes,doc/concept/hang.md, the android path filter, and anUnreleasedupgrade note are updated. Quest references inm1/data-jitter.mdandm1/track-demand.mdare repointed.Public API / wire impact
moq-binary(crates.io) and@moq/binary(npm) are deleted.moq_flate::Erroris no longerPartialEq/Eq(it carriesmoq_net::Error).moq_mux::Error::BinaryisError::Flate. moq-ffi's binary names change in every generated binding. Hencedev.moq-flateand@moq/flategain thesnapshot/streammodes andCompression.binarysection.Checks
just checkandjust test interop --allpassed before thedevmerge, apart from theclose_codefailures #4398 has since fixed ondev. After mergingdev(which carried main's capture-time producers intomoq-flate),moq-flate/moq-muxtests,@moq/flatetests, andquest checkpass.Quest file
quest/m1/flate-binary.mdreacheddevwith #4428, so it is deleted here, with itsquest/m1/README.mdbullet and references inquest/m1/ffi-shape/,quest/m2/flate/, andquest/m2/teleop/(m2/flate/bindings.mdis now unblocked).mainstill lists it; delete it there with the same references.Suggested follow-ups
publish_flate_*calls are still only reachable from the generated bindings; Compressed tracks bindings should add the hand-written wrappers.moq_mux::binaryshould be renamed to match once the FFI shape settles; kept here because the plan fixed it to the catalog section's name.(Written by Claude Opus 5.5)
🤖 Generated with Claude Code