Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fd31194
test(moq-tokio): bind reconnect and worker tests to their own ports (…
kixelated Sep 25, 2026
0beaad3
docs(quest): drop auth-embedder, completed on dev in #3943 (#4108)
kixelated Sep 25, 2026
fc46699
docs(quest): plan lite-07 announce compression (#4147)
kixelated Sep 25, 2026
3b4ad5b
fix(net): hold a parked track's warm cache until the upstream confirm…
kixelated Sep 25, 2026
0848a8a
chore(quest): drop Required bullets that have cleared (#4109)
kixelated Sep 25, 2026
3590e44
fix(net): deliver a track's tail up to its declared end (#4086)
kixelated Sep 25, 2026
fbbcb25
test(js): assert retention on reactions and listeners, not a GC heap …
kixelated Sep 25, 2026
5217cb8
feat(moq-mux): catalog delay measures cross-track encoder lateness (#…
kixelated Sep 25, 2026
051930d
feat(moq-mux): publish data tracks into an application's own catalog …
kixelated Sep 25, 2026
68c7334
fix(net): judge spliced staleness against the logical live edge (#4103)
kixelated Sep 25, 2026
94df86c
docs(quest): plan CI benchmark regressions and new benches (#4149)
kixelated Sep 25, 2026
f29895c
feat(moq-gst): opt pads fed by a local encoder into flush jitter (#4112)
kixelated Sep 25, 2026
2171c28
docs(stats): document the stats broadcasts as a wire contract (#3951)
kixelated Sep 25, 2026
abd91e1
fix(net)!: ship lite-07 as moq-lite-07-wip, off by default (#4148)
kixelated Sep 25, 2026
63e5c5f
chore: release (#4091)
moq-bot[bot] Sep 25, 2026
a2cb46c
ae
kixelated Sep 25, 2026
e173ddd
feat(ffi): advertise JSON tracks in the catalog, add binary data trac…
bgreenway Sep 25, 2026
69a914d
quest: open the transport-upgrade line
kixelated Sep 25, 2026
1a4f8e2
fix(ffi): name the binary config conversion so moq-ffi compiles (#4157)
kixelated Sep 25, 2026
d8cde38
Merge origin/dev into quest/m1/transport-upgrade/README
kixelated Sep 25, 2026
c28102a
Merge origin/main into quest/m1/transport-upgrade/README
kixelated Sep 25, 2026
cf3bb19
feat(tokio)!: upgrade a WebSocket fallback session to WebTransport (#…
kixelated Sep 25, 2026
8b8519a
quest(transport-upgrade): WebSocket upgrade edge cases (#4204)
kixelated Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/skills/spawn-merge/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Read the /merge, /takeover, and /close skills before starting.
The goal is to evaluate the open PRs in the repository and decide which ones to merge.
Each merge is performed in parallel by a sub-agent.

Start by listing all open PRs.
Start by listing all open PRs that are ready for review (skip drafts).
An argument can be used to filter the PRs in scope.

One at a time, for each PR, interactively prompt the user if we should /merge, skip, or /close.
Expand Down
8 changes: 6 additions & 2 deletions .claude/skills/start-quest/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@ description: Start work on a quest.

Before you begin, read `quest/CLAUDE.md` completely.

Your goal is to implement the quest, or as much of it as possible, and create a PR.
Your goal is to implement the quest, or as much of it as possible, and create a draft PR.
The argument is the quest to work on.

If you are unsure on the best course of action, ask the user for direction.

Confirm the quest is ready and unclaimed.
Claim it as `quest/CLAUDE.md` describes: `quest branch` names the branch and its bases, missing line branches get a draft PR, and the quest branch gets an empty commit.

Implement the quest until it is complete, or some blocker is hit, then create a PR against the base.
Keep scratch files (PR body, logs, notes) in the worktree's gitignored `.scratch/`.
Never write to or clean up a directory other agents share, such as a session scratchpad.
Summarize the notable changes for the user.

When done, summarize any issues encounted, and suggest potential follow-up.
If you're happy with the outcome, switch the draft PR to ready for review.
If you want another set of eyes on it, keep it a draft.
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ This file is split into nested `CLAUDE.md` files based on the language/situation
- Try to do stuff asynchronously. ex. ask about follow-ups while tests run.
- Try to recognize when you're stuck, or making minimal progress, and stop early.
- If the core problem is addressed, ship it instead of spinning your wheels on meaningless revisions.
- Benchmark any performance optimizations instead of relying on intuition.
- Add or extend a benchmark for any performance-sensitive change so later regressions show up, and measure optimizations instead of relying on intuition.

# Public API

Expand Down
54 changes: 27 additions & 27 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 17 additions & 17 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ dispatch2 = "0.3.1"
flate2 = { version = "1.1", default-features = false }
futures = "0.3"
getrandom = { version = "0.4", features = ["wasm_js"] }
hang = { version = "0.21.3", path = "rs/hang" }
hang = { version = "0.21.4", path = "rs/hang" }
hex = "0.4"
# HMAC-SHA256 for the mDNS membership proofs (moq-tokio's `mdns` feature).
hmac = "0.13"
Expand All @@ -139,16 +139,16 @@ loom = { version = "0.7.2", features = ["futures"] }
# DNS-SD advertisement and browsing for LAN peer discovery (moq-tokio's `mdns` feature).
# `async` awaits the event channel instead of blocking a thread on it.
mdns-sd = { version = "0.21", features = ["async"] }
moq-audio = { version = "0.1.2", path = "rs/moq-audio", default-features = false }
moq-audio = { version = "0.1.3", path = "rs/moq-audio", default-features = false }
moq-auth = { version = "0.1.1", path = "rs/moq-auth" }
moq-binary = { version = "0.1.2", path = "rs/moq-binary" }
moq-binary = { version = "0.1.3", path = "rs/moq-binary" }
moq-flate = { version = "0.2.0", path = "rs/moq-flate" }
moq-hls = { version = "0.5.3", path = "rs/moq-hls", default-features = false }
moq-json = { version = "0.5.0", path = "rs/moq-json" }
moq-loc = { version = "0.2.11", path = "rs/moq-loc" }
moq-hls = { version = "0.5.4", path = "rs/moq-hls", default-features = false }
moq-json = { version = "0.5.1", path = "rs/moq-json" }
moq-loc = { version = "0.2.12", path = "rs/moq-loc" }
moq-msf = { version = "0.5.0", path = "rs/moq-msf" }
moq-mux = { version = "0.10.3", path = "rs/moq-mux" }
moq-net = { version = "0.3.2", path = "rs/moq-net" }
moq-mux = { version = "0.10.4", path = "rs/moq-mux" }
moq-net = { version = "0.3.3", path = "rs/moq-net" }
# The MoQ fork of noq (moq-dev/noq). iroh keeps upstream noq, so a build with the
# iroh feature carries both stacks.
moq-noq-proto = { version = "1.3", default-features = false }
Expand All @@ -158,23 +158,23 @@ moq-noq-udp = "1.3"
# used by moq-video on Linux.
moq-nvenc = { version = "0.1.0", path = "rs/moq-nvenc" }
moq-pattern = { version = "0.1.0", path = "rs/moq-pattern" }
moq-relay = { version = "0.15.3", path = "rs/moq-relay", default-features = false }
moq-rtc = { version = "0.3.3", path = "rs/moq-rtc" }
moq-rtmp = { version = "0.3.3", path = "rs/moq-rtmp" }
moq-relay = { version = "0.15.4", path = "rs/moq-relay", default-features = false }
moq-rtc = { version = "0.3.4", path = "rs/moq-rtc" }
moq-rtmp = { version = "0.3.4", path = "rs/moq-rtmp" }
moq-sock = { version = "0.1.0", path = "rs/moq-sock" }
moq-srt = { version = "0.3.3", path = "rs/moq-srt" }
moq-stats = { version = "0.2.3", path = "rs/moq-stats" }
moq-tokio = { version = "0.19.14", path = "rs/moq-tokio", default-features = false }
moq-srt = { version = "0.3.4", path = "rs/moq-srt" }
moq-stats = { version = "0.2.4", path = "rs/moq-stats" }
moq-tokio = { version = "0.19.15", path = "rs/moq-tokio", default-features = false }
# Default features off on moq-transcode and moq-video so each workspace consumer
# chooses native codecs, OpenH264, and rendering explicitly. Both crates still
# provide working native plus software defaults when depended on directly.
# VAAPI is opt-in everywhere; its decoder is hardware-validated, while its
# encoder is not yet.
moq-transcode = { version = "0.1.2", path = "rs/moq-transcode", default-features = false }
moq-transcode = { version = "0.1.3", path = "rs/moq-transcode", default-features = false }
# default-features off (the noq backend) so the consumer picks which QUIC
# stack the io_uring path compiles; cargo features are additive, so a default-on
# backend could not be opted out of.
moq-uring = { version = "0.0.4", path = "rs/moq-uring", default-features = false }
moq-uring = { version = "0.0.5", path = "rs/moq-uring", default-features = false }
# In-tree fork of `v4l` with the videodev2.h bindings checked in, so moq-video's
# `capture` and `v4l2` need no libclang or kernel headers. Linux only; an empty
# stub elsewhere.
Expand All @@ -187,7 +187,7 @@ moq-vaapi = "0.1.0"
# `features = ["capture"]` to a consumer that ships in those bindings pulls the
# whole device graph into every one of them. Codec features are independent of
# that argument, so moq-ffi and libmoq opt NVIDIA, OpenH264, and VAAPI back in.
moq-video = { version = "0.1.2", path = "rs/moq-video", default-features = false }
moq-video = { version = "0.1.3", path = "rs/moq-video", default-features = false }
nix = { version = "0.31.3", features = ["net", "socket", "uio"] }
# Upstream noq-proto, only for iroh's controller factory types.
noq-proto = { version = "1.2", default-features = false }
Expand Down
Loading
Loading