Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
dcacb48
fix(dart): release RustBuffers instead of leaking them (#4072)
kixelated Sep 24, 2026
41e1b5d
fix(ci): package moq-cli from the flake package named after its binar…
kixelated Sep 25, 2026
374c4ef
feat(gateway): expose the loop and handler the gateway binaries run (…
kixelated Sep 25, 2026
fa707c0
fix(net): keep a lost spliced group lost (#4077)
kixelated Sep 25, 2026
d4c9396
fix(publish): resume the audio capture context on a gesture (#3960)
kixelated Sep 25, 2026
5d6846d
feat(net): hide dot-named broadcasts from discovery (moq-lite-07) (#4…
kixelated Sep 25, 2026
f0fdb69
fix(flate): use zlib-rs so a sync flush always finishes (#4018)
kixelated Sep 25, 2026
cf0ef44
build: fold unit tests into `just check`, split CI into `just ci chec…
kixelated Sep 25, 2026
2299622
fix(moq-mux): every TS elementary stream re-anchors below the live ed…
kixelated Sep 25, 2026
7951981
chore: release (#4051)
moq-bot[bot] Sep 25, 2026
4a14d0c
perf(json): skip unchanged root entries in the snapshot diff (#4020)
kixelated Sep 25, 2026
54aa6c1
fix(interop): skip a dropped group in the native JS subscriber (#4092)
kixelated Sep 25, 2026
d5c327d
fix(net): use the registered IETF priority property and TRACK_STATUS/…
kixelated Sep 25, 2026
044ca57
feat(mux): measure encoder flush jitter per rendition (#3940)
kixelated Sep 25, 2026
66440a6
fix(moq-mux): order TS export by media time, not arrival (#4001)
kixelated Sep 25, 2026
f591b9c
chore(skills): keep quest agent scratch in the worktree (#4096)
kixelated Sep 25, 2026
98aced9
fix(moq-tokio): release the QUIC socket before Listener::close return…
kixelated Sep 25, 2026
d033726
fix(publish): re-base the audio encoder clock across a gap (#4101)
kixelated Sep 25, 2026
12dc957
docs(quest): fold handout revocation into origin narrowing (#4106)
kixelated Sep 25, 2026
67c2593
fix(net): FIN a lite group that ends exactly at the requested start f…
kixelated Sep 25, 2026
4c55710
feat(ffi): name the track an encoded audio or video publish writes (#…
kixelated Sep 25, 2026
1ca9283
fix(moq-gst): wait for the sink's reconnect loop to end on stop (#4074)
kixelated Sep 25, 2026
e0c3ef2
docs(quest): plan follow-ups from the next-16 quest run (#4105)
kixelated Sep 25, 2026
d78bf4e
fix(js): stop retaining a listener, reaction, or task per frame (#4085)
kixelated Sep 25, 2026
5dbfe60
feat(publish): advertise the page clock at the catalog root (#4082)
kixelated Sep 25, 2026
a342004
fix(net): end an IETF subscription from its PUBLISH_DONE (#4083)
kixelated Sep 25, 2026
aa2a47a
docs(quest): plan the VAAPI and PipeWire camera follow-ups (#4070)
kixelated Sep 25, 2026
a9fb0f5
feat(libmoq): advertise JSON tracks in the catalog, add binary data t…
bgreenway Sep 25, 2026
0d167f5
test(moq-tokio): dial the WebSocket fallback on its own ephemeral por…
kixelated Sep 25, 2026
75d615d
docs(quest): plan an on-demand binary delta stats flavor (#4016)
kixelated Sep 25, 2026
f822924
test(signals): assert retention on bookkeeping, not a GC heap count (…
kixelated Sep 25, 2026
355e5f8
Merge origin/main into dev
kixelated Sep 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .claude/skills/spawn-quests/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Include a short summary and your recommendation.

Spawn a background sub-agent for each /start-quest.
Create a fresh worktree on the base `quest branch` prints, creating that line branch first if it is missing.
Agents share no writable files: each keeps its scratch files in its own worktree's `.scratch/`, and anything you hand every agent goes in its prompt, not a shared file.
Limit the concurrency to at most N agents in parallel, where N is half the number of physical CPU cores.

Monitor the sub-agents and report their final status, but do not monitor their PRs.
Expand Down
2 changes: 2 additions & 0 deletions .claude/skills/start-quest/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ 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.
28 changes: 28 additions & 0 deletions .github/scripts/package-binary.test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,31 @@ cmp "$binary" "$bare"
cmp "$binary" "$tmp/extracted/$name/bin/moq-relay"

echo "release assets package together without path collisions"

# Without --binary the script builds the flake package named after the binary:
# `.#moq` for the moq-cli crate, since `.#moq-cli` is a stub refusing the old name.
cat >"$tmp/bin/nix" <<'NIX'
#!/usr/bin/env bash
set -euo pipefail
[[ "$1 $3" == "build --out-link" && "$2" == *"#moq" ]] || {
echo "unexpected: nix $*" >&2
exit 1
}
mkdir -p "$4/bin"
printf '#!/usr/bin/env sh\necho moq\n' >"$4/bin/moq"
chmod 0755 "$4/bin/moq"
NIX
chmod 0755 "$tmp/bin/nix"

PATH="$tmp/bin:$PATH" "$WORKSPACE_DIR/rs/scripts/package-binary.sh" \
--crate moq-cli \
--bin moq \
--version 0.12.2 \
--target "$target" \
--output "$tmp/dist"

name="moq-cli-v0.12.2-$target"
tar -xzf "$tmp/dist/$name.tar.gz" -C "$tmp/extracted"
[[ "$("$tmp/extracted/$name/bin/moq")" == moq ]]

echo "a nix build packages the flake output named after the binary"
4 changes: 2 additions & 2 deletions .github/workflows/cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,13 +104,13 @@ jobs:
# and the test artifacts (codegen + linked test binaries). They share
# little, and a PR usually needs both.
- name: Check
run: nix develop --command just check --all
run: nix develop --command just ci check --all
env:
MOQ_STRICT: 1

- name: Test
if: ${{ !cancelled() }}
run: nix develop --command just test all
run: nix develop --command just ci test --all
env:
MOQ_STRICT: 1
NEXTEST_PROFILE: ci
8 changes: 4 additions & 4 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Full history so `just check` can diff against origin/$GITHUB_BASE_REF.
# Full history so `just ci check` can diff against origin/$GITHUB_BASE_REF.
fetch-depth: 0

- uses: DeterminateSystems/nix-installer-action@1d87d45818068401a10cf16bdc5f00b24994a83f # main
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:
run: bash .claude/hooks/direnv.test.sh

- name: Check
run: nix develop --command just check
run: nix develop --command just ci check
env:
MOQ_STRICT: 1

Expand All @@ -97,7 +97,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Full history so `just test` can diff against origin/$GITHUB_BASE_REF.
# Full history so `just ci test` can diff against origin/$GITHUB_BASE_REF.
fetch-depth: 0

- uses: DeterminateSystems/nix-installer-action@1d87d45818068401a10cf16bdc5f00b24994a83f # main
Expand All @@ -120,7 +120,7 @@ jobs:
# NEXTEST_PROFILE picks up the longer hang timeout in .config/nextest.toml;
# without it a runner under load could trip the local one.
- name: Test
run: nix develop --command just test
run: nix develop --command just ci test
env:
MOQ_STRICT: 1
NEXTEST_PROFILE: ci
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
/.claude/tmp/
/.claude/worktrees/

# Per-worktree agent scratch (PR bodies, logs, notes); see the start-quest skill.
/.scratch/

# IDE
.idea

Expand Down
3 changes: 1 addition & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,7 @@ Use the Nix dev shell so tooling matches CI.
direnv loads it automatically, but if not: `nix develop --command ...`.

```bash
just check # Lint and compile what the branch changed
just test # Test what the branch changed, same scope
just check # Lint, compile, and test what the branch changed
just fix # Auto-fix lint/formatting, same scope
```

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ When pushing additional commits to an existing PR, update the title and descript
When taking over someone else's PR, push commits on top of theirs so they keep credit.

Create a draft PR.
Switch it to "Ready for review" when you're finished and local `just check` and `just test` pass.
Switch it to "Ready for review" when you're finished and local `just check` passes.
Fix any merge conflicts and failing CI checks.

# AI
Expand Down
Loading
Loading