Skip to content

refactor(net): parse a moq-transport SETUP's parameters once - #7354

Merged
moq-bot[bot] merged 3 commits into
mainfrom
quest/m2/setup-parse-once
Nov 1, 2026
Merged

moq-bot[bot] merged 3 commits into
mainfrom
quest/m2/setup-parse-once

Conversation

@kixelated

@kixelated kixelated commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Finishes quest/m2/setup-parse-once.md (One typed SETUP parse).

Summary

  • ietf::decode_peer_setup now returns a typed SetupOptions (path, token, implementation, declared Peer). It is the only place a moq-transport SETUP parameter block gets parsed.
  • ietf::accept_setup (the server's pre-read) calls it and embeds the result as PeerSetup::options, the same way lite::AcceptedSetup embeds its setup. The uni loop calls it too. peer_from_params is inlined, since it now has a single caller.
  • server.rs reads the client's path, token, implementation, and declared options from peer_setup.options.
  • Deletes the quest file and its link in quest/m2/README.md.

Choices made without asking

  • The quest's third copy no longer exists. The quest names a "legacy CLIENT_SETUP" copy in server.rs that built Peer by hand without cluster, auth, or epoch. That copy was removed with the moq-transport drafts 14 to 17 in moq-dev/moq#6753, so the Plan's question (was the difference intended?) no longer applies. Two copies remained, both in ietf/session.rs, and this PR merges them.
  • Error precedence on a doubly malformed SETUP. accept_setup now parses every option before it refuses a PATH on a URI-bound transport (ProtocolViolation, from moq-dev/moq#7206). A SETUP that both carries a PATH on a URI binding and has a malformed token, implementation, or extension now closes with the decode error instead. The SETUP is refused either way.
  • The server-side uni loop now decodes PATH as UTF-8. In production a server always pre-reads through accept_setup, so only test sessions reach the uni loop as a server. There, a client PATH that is not UTF-8 is now refused rather than ignored, the same as on the pre-read path. The fuzz property (any block a client accepts from its server, a server accepts from its client) still holds, because the client side refuses any PATH at all.

Checks

  • just check origin/main: passed (check rs, test rs, rs_shapes, markdown, gh, quest, shell, toml, nix, justfile).

Review

  • Reviewer: Codex (quest review), gpt-6.1-sol, medium effort, round 1.
  • Reviewed head: 77369c8.
  • Findings: none.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 2 commits October 30, 2026 05:09
`decode_peer_setup` now returns a typed `SetupOptions` (path, token,
implementation, declared `Peer`) and `accept_setup` builds its `PeerSetup`
from it, so the server's pre-read and the uni loop share one parse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title One typed SETUP parse refactor(net): parse a moq-transport SETUP's parameters once Oct 30, 2026
@kixelated
kixelated marked this pull request as ready for review October 30, 2026 12:52
@coderabbitai

coderabbitai Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You'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 4 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 001b8fc4-6827-4cb0-8fee-50060b437ff4
Commits

Reviewing files that changed from the base of the PR and between 9387174 and 77369c8.

Files selected for processing: 5
  • quest/m2/README.md
  • quest/m2/setup-parse-once.md
  • rs/moq-net/src/fuzz.rs
  • rs/moq-net/src/ietf/session.rs
  • rs/moq-net/src/server.rs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T12:53:39.981945Z 77369c8 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed head 77369c8 against base 9387174.

No actionable findings in the changed code. The typed parser preserves the peer extension fields, role-specific PATH/AUTHORITY refusals, and token/implementation validation. Traced the pre-read server handshake into session startup: path and credentials remain available to the handshake, while declared options and the original SETUP stream reach the session without re-reading SETUP. The documented malformed-input error precedence change still refuses the input, and the added server-side uni-loop PATH UTF-8 validation is consistent with the pre-read path.

Scope and limits: GitHub-only static review of the full diff, surrounding setup/handshake flow, existing validation tests, and fuzz caller. No build, tests, or fuzzing were run.

(Written by OpenAI)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merging via /quest-merge.

  • Head 77369c834a133a48f92d33a51b7186672a79834b: CI green (18/18), mergeable.
  • Local review record (Codex, round 1) names this head with no findings; the posted OpenAI review on this head reports no actionable findings. Nothing to address.
  • quest check --base origin/main (main at 1ea4b1a2c333527e25c8c29ee827290ed6e7d410) passes: the PR deletes quest/m2/setup-parse-once.md and its link.
  • No new commits or decisions in this pass; the choices made without asking in the PR body stand as written.

(Written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge (squash) October 31, 2026 05:08
@moq-bot
moq-bot Bot disabled auto-merge October 31, 2026 10:41
@moq-bot

moq-bot Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

quest land removed this pull request from the queue: the batch check failed (exit 100).

    Checking http-cache v1.0.0-alpha.8
    Checking pipewire v0.10.1
   Compiling proc-macro2-diagnostics v0.10.1
    Checking moq-sock v0.2.0 (/work/rs/moq-sock)
    Checking fs-err v3.3.1
    Checking p384 v0.14.0
    Checking p256 v0.14.0
    Checking arboard v3.7.0
    Checking reqwest-middleware v0.5.2
    Checking web-transport-trait v0.5.2
    Checking moq-auth v0.2.1 (/work/rs/moq-auth)
    Checking axum v0.8.9
    Checking axum-server v0.8.0
    Checking egui-wgpu v0.36.2
    Checking http-cache-reqwest v1.0.0-alpha.9
    Checking egui-winit v0.36.2
   Compiling duplicate v2.0.1
    Checking eframe v0.36.2
    Checking egui_dock v0.21.1
    Checking cpal v0.18.2
    Checking moq-json v0.5.8 (/work/rs/moq-json)
    Checking moq-loc v0.2.19 (/work/rs/moq-loc)
    Checking qmux v0.7.0 (/work/rs/qmux)
    Checking hang v0.21.11 (/work/rs/hang)
    Checking moq-stats v0.2.12 (/work/rs/moq-stats)
    Checking moq-tokio v0.19.23 (/work/rs/moq-tokio)
    Checking moq-mux v0.10.11 (/work/rs/moq-mux)
    Checking moq-relay v0.17.2 (/work/rs/moq-relay)
    Checking moq-audio v0.1.10 (/work/rs/moq-audio)
    Checking moq-scene v0.1.0 (/work/rs/moq-scene)
    Checking moq-studio v0.1.0 (/work/rs/moq-studio)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s

info: running `cargo clippy --locked --tests --all-features -- -D warnings` on moq-wasm (50/51)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.39s

info: running `cargo clippy --locked --tests --all-features -- -D warnings` on uniffi-bindgen (51/51)
   Compiling getrandom v0.4.3
   Compiling winnow v1.0.4
   Compiling uniffi_internal_macros v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling serde v1.0.229
   Compiling libc v0.2.191
    Checking indexmap v2.14.2
   Compiling fs-err v3.3.1
   Compiling askama_parser v0.16.1
   Compiling basic-toml v0.1.10
    Checking nom v7.1.3
   Compiling scroll_derive v0.12.1
    Checking tempfile v3.27.0
    Checking smawk v0.3.3
   Compiling askama_derive v0.16.1
    Checking serde_json v1.0.154
    Checking weedle2 v5.0.0 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling toml_parser v1.1.3+spec-1.1.0
    Checking textwrap v0.16.4
    Checking uniffi_pipeline v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking scroll v0.12.0
    Checking uniffi_meta v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling askama_macros v0.16.1
   Compiling toml_datetime v1.1.1+spec-1.1.0
    Checking plain v0.2.3
   Compiling toml v1.1.6+spec-1.1.0
    Checking clap_builder v4.6.7
    Checking uniffi_udl v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking goblin v0.8.2
    Checking cargo_metadata v0.23.1
    Checking askama v0.16.1
    Checking uniffi_core v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking clap v4.6.7
    Checking uniffi_bindgen v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling uniffi_macros v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking uniffi v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking uniffi-bindgen v0.1.0 (/work/rs/uniffi-bindgen)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.79s
mbx[cache]: object cache: 1219 hits, 0 misses, 209 not looked up; 0 B downloaded, 0 B uploaded, 408.1 MiB stored locally
mbx[cache]: 10m 13s session; 17m 18s estimated compiler time avoided (summed across compilations)
mbx[cache]: 209 compilations had no usable prior inputs or matching prediction for a lookup
mbx[cache]: Cargo artifact reuse and CI cache archive transfers are not included above
mbx[savings]: 2.3 TiB in every checkout, 2.3 TiB on disk. arithmetic declined to comment.
ci: test rs failed
ci: seconds per module
   614  check rs
   307  test rs (failed)
  1262  check rs_shapes
   237  check js
    46  test js
    14  check markdown
     3  check gh
    48  test gh
    66  check flake
     0  check drill
     5  check quest
     9  check ts_paths
    21  check shell
     1  check large_files
     0  check toml
     1  check nix
     0  check justfile
  2183  wall time
error: recipe `ci` failed on line 104 with exit code 100

.

@moq-bot moq-bot Bot removed the quest:merge label Oct 31, 2026
@moq-bot

moq-bot Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Codex land fixer: fixer crashed (exit 101); run /quest-iterate. Recommendation: run /quest-iterate before picking it again.

moq-doc:check                  | (pass) tables render as tables > draft-lcurley-moq-timestamp [5.56ms]
moq-doc:check                  | (pass) tables render as tables > draft-lcurley-moq-use-cases [10.60ms]
moq-doc:check                  | (pass) tables render as tables > draft-lcurley-qmux-websocket [5.88ms]
moq-doc:check                  | (pass) tables render as tables > row separators do not split a table apart [54.24ms]
moq-doc:check                  | 
moq-doc:check                  | .vitepress/api/index.test.ts:
moq-doc:check                  | (pass) a rendered workspace > each entrypoint gets a page named by its import specifier [6.76ms]
moq-doc:check                  | (pass) a rendered workspace > a re-export from another workspace package links to its owner [6.54ms]
moq-doc:check                  | (pass) a rendered workspace > an external re-export is documented under each public name [29.59ms]
moq-doc:check                  | (pass) a rendered workspace > a namespace export keeps its public name [2.52ms]
moq-doc:check                  | (pass) a rendered workspace > a hidden declaration is documented under the alias that re-exports it [2.59ms]
moq-doc:check                  | �[93m[warning]�[0m Value, defined in @test/hidden/src/access.ts, is referenced by read but not included in the documentation
moq-doc:check                  | �[93m[warning]�[0m Value, defined in @test/hidden/src/access.ts, is referenced by read but not included in the documentation
moq-doc:check                  | (pass) an unexported declaration that a public one names fails the run [381.26ms]
moq-doc:check                  | �[93m[warning]�[0m Failed to resolve link to "Missing" in comment for value
moq-doc:check                  | (pass) a link that does not resolve fails the run [324.62ms]
moq-doc:check                  | 
moq-doc:check                  | concept/audio-jitter/corpus.test.ts:
moq-doc:check                  | (pass) audio jitter corpus > paced > matches the checked-in file [0.20ms]
moq-doc:check                  | (pass) audio jitter corpus > paced > is a trace of equal-length clocks [0.03ms]
moq-doc:check                  | (pass) audio jitter corpus > paced > arrives in a monotonic order [0.76ms]
moq-doc:check                  | (pass) audio jitter corpus > paced > names a target for the first frame [0.02ms]
moq-doc:check                  | (pass) audio jitter corpus > paced > reports every target as a change [0.08ms]
moq-doc:check                  | (pass) audio jitter corpus > flush > matches the checked-in file [0.03ms]
moq-doc:check                  | (pass) audio jitter corpus > flush > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > flush > arrives in a monotonic order [0.16ms]
moq-doc:check                  | (pass) audio jitter corpus > flush > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > flush > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > advertised > matches the checked-in file [0.03ms]
moq-doc:check                  | (pass) audio jitter corpus > advertised > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > advertised > arrives in a monotonic order [0.16ms]
moq-doc:check                  | (pass) audio jitter corpus > advertised > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > advertised > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > buildup > matches the checked-in file [0.04ms]
moq-doc:check                  | (pass) audio jitter corpus > buildup > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > buildup > arrives in a monotonic order [0.24ms]
moq-doc:check                  | (pass) audio jitter corpus > buildup > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > buildup > reports every target as a change [0.01ms]
moq-doc:check                  | (pass) audio jitter corpus > reorder > matches the checked-in file [0.03ms]
moq-doc:check                  | (pass) audio jitter corpus > reorder > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > reorder > arrives in a monotonic order [0.13ms]
moq-doc:check                  | (pass) audio jitter corpus > reorder > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > reorder > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > backlog > matches the checked-in file [0.05ms]
moq-doc:check                  | (pass) audio jitter corpus > backlog > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > backlog > arrives in a monotonic order [0.29ms]
moq-doc:check                  | (pass) audio jitter corpus > backlog > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > backlog > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > idle > matches the checked-in file [0.03ms]
moq-doc:check                  | (pass) audio jitter corpus > idle > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > idle > arrives in a monotonic order [0.13ms]
moq-doc:check                  | (pass) audio jitter corpus > idle > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > idle > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > tunein > matches the checked-in file [0.04ms]
moq-doc:check                  | (pass) audio jitter corpus > tunein > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > tunein > arrives in a monotonic order [0.19ms]
moq-doc:check                  | (pass) audio jitter corpus > tunein > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > tunein > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > spike > matches the checked-in file [0.07ms]
moq-doc:check                  | (pass) audio jitter corpus > spike > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > spike > arrives in a monotonic order [0.33ms]
moq-doc:check                  | (pass) audio jitter corpus > spike > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > spike > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > straggler > matches the checked-in file [0.04ms]
moq-doc:check                  | (pass) audio jitter corpus > straggler > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > straggler > arrives in a monotonic order [0.17ms]
moq-doc:check                  | (pass) audio jitter corpus > straggler > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > straggler > reports every target as a change
moq-doc:check                  | (pass) audio jitter corpus > fixed > matches the checked-in file [0.02ms]
moq-doc:check                  | (pass) audio jitter corpus > fixed > is a trace of equal-length clocks
moq-doc:check                  | (pass) audio jitter corpus > fixed > arrives in a monotonic order [0.09ms]
moq-doc:check                  | (pass) audio jitter corpus > fixed > names a target for the first frame
moq-doc:check                  | (pass) audio jitter corpus > fixed > reports every target as a change
moq-doc:check                  | 
moq-doc:check                  |  130 pass
moq-doc:check                  |  0 fail
moq-doc:check                  |  15955 expect() calls
moq-doc:check                  | Ran 130 tests across 3 files. [5.08s]
moq-doc:check                  | API reference: 17 packages in 59.0s
moq-doc:check                  | 
moq-doc:check                  |   �[32m�[1mvitepress�[22m v1.6.4�[39m
moq-doc:check                  | 
moq-doc:check                  | - building client + server bundles...
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  �[1mvitepress-plugin-llms�[22m initialized �[2m(client build)�[22m with workDir: �[36m/work/doc�[39m
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  Build started, file collection cleared
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  Processing �[1m123�[22m markdown files from �[36m/work/doc�[39m
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  Generating �[36mllms.txt�[39m...
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  Generating full documentation bundle (�[36mllms-full.txt�[39m)...
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed concept/audio-jitter.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/c.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed draft/moq-flate.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed bin/demo.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/rs/hang.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed concept/use-case/ai.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed bin/relay/http.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Generated �[36mllms.txt�[39m (~�[1m4.6K�[22m tokens, �[1m14.2 kB�[22m) with �[1m123�[22m documentation links
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed setup/agent.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed bin.md
moq-doc:chequest: fixer agent exited 101

(written by Codex)

@kixelated
kixelated enabled auto-merge (squash) October 31, 2026 15:00
@moq-bot
moq-bot Bot disabled auto-merge October 31, 2026 21:48
@moq-bot moq-bot Bot removed the quest:merge label Oct 31, 2026
@moq-bot

moq-bot Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

quest land removed this pull request from the queue: the batch check failed (exit 1).

    Checking rcgen v0.14.10
    Checking ashpd v0.13.13
   Compiling proc-macro2-diagnostics v0.10.1
    Checking http-cache v1.0.0-alpha.8
    Checking moq-sock v0.2.0 (/work/rs/moq-sock)
    Checking fs-err v3.3.1
    Checking p256 v0.14.0
    Checking p384 v0.14.0
    Checking arboard v3.7.0
    Checking reqwest-middleware v0.5.2
    Checking web-transport-trait v0.5.2
    Checking egui-winit v0.36.2
    Checking prometheus-client v0.25.1
    Checking axum v0.8.9
    Checking axum-server v0.8.0
    Checking egui-wgpu v0.36.2
    Checking http-cache-reqwest v1.0.0-alpha.9
    Checking moq-auth v0.2.1 (/work/rs/moq-auth)
   Compiling duplicate v2.0.1
    Checking moq-stats v0.2.12 (/work/rs/moq-stats)
    Checking eframe v0.36.2
    Checking egui_dock v0.21.1
    Checking moq-tokio v0.19.23 (/work/rs/moq-tokio)
    Checking moq-relay v0.17.2 (/work/rs/moq-relay)
    Checking pipewire v0.10.1
    Checking cpal v0.18.2
    Checking moq-audio v0.1.10 (/work/rs/moq-audio)
    Checking moq-scene v0.1.0 (/work/rs/moq-scene)
    Checking moq-studio v0.1.0 (/work/rs/moq-studio)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.87s

info: running `cargo clippy --locked --tests --all-features -- -D warnings` on moq-wasm (51/52)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.32s

info: running `cargo clippy --locked --tests --all-features -- -D warnings` on uniffi-bindgen (52/52)
   Compiling getrandom v0.4.3
   Compiling winnow v1.0.4
   Compiling uniffi_internal_macros v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling serde v1.0.229
   Compiling libc v0.2.191
    Checking indexmap v2.14.2
   Compiling fs-err v3.3.1
   Compiling askama_parser v0.16.1
   Compiling basic-toml v0.1.10
    Checking nom v7.1.3
   Compiling scroll_derive v0.12.1
    Checking smawk v0.3.3
   Compiling askama_derive v0.16.1
    Checking tempfile v3.27.0
    Checking serde_json v1.0.154
    Checking weedle2 v5.0.0 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking textwrap v0.16.4
   Compiling toml_parser v1.1.3+spec-1.1.0
    Checking uniffi_pipeline v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking scroll v0.12.0
   Compiling toml_datetime v1.1.1+spec-1.1.0
    Checking uniffi_meta v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling askama_macros v0.16.1
    Checking plain v0.2.3
    Checking clap_builder v4.6.7
    Checking cargo_metadata v0.23.1
   Compiling toml v1.1.6+spec-1.1.0
    Checking uniffi_udl v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking goblin v0.8.2
    Checking askama v0.16.1
    Checking clap v4.6.7
    Checking uniffi_core v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking uniffi_bindgen v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
   Compiling uniffi_macros v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking uniffi v0.32.2 (https://github.com/kixelated/uniffi-rs?rev=88d835d#88d835d6)
    Checking uniffi-bindgen v0.1.0 (/work/rs/uniffi-bindgen)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.74s
mbx[cache]: object cache: 1328 hits, 58 misses, 40 not looked up; 0 B downloaded, 0 B uploaded, 192.7 KiB stored locally
mbx[cache]: 2m 41s session; 27m 41s estimated compiler time avoided (summed across compilations)
mbx[cache]: 40 compilations had no usable prior inputs or matching prediction for a lookup
mbx[cache]: Cargo artifact reuse and CI cache archive transfers are not included above
mbx[savings]: every checkout believes it owns 2.5 TiB of outputs. the disk keeps one copy and says nothing.
ci: check quest failed
ci: seconds per module
   310  check rs
   159  test rs
   326  check rs_shapes
   170  check obs_compile
   498  check js
    80  test js
    15  check markdown
     3  check gh
    73  test gh
   218  check flake
     0  check drill
    10  check quest (failed)
     4  check obs
    12  check ts_paths
    48  check shell
     1  check large_files
     1  check toml
     0  check nix
     0  check justfile
   796  wall time
error: recipe `ci` failed on line 106 with exit code 1

.

@moq-bot
moq-bot Bot enabled auto-merge (squash) October 31, 2026 21:52
@moq-bot moq-bot Bot added the quest:merge label Oct 31, 2026
@moq-bot

moq-bot Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

codex / Codex land fixer: Requeued unchanged: Healthy; batch checks passed except the stale quest dependency introduced by PR &#35;7366.

(written by codex / Codex)

@moq-bot

moq-bot Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

quest land removed this pull request from the queue: the batch check failed (exit 101).

moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/msf.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/loc.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/hang/hls.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/hang/catalog.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/pattern.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/publish.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/net.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/json.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/hang/util.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/publish/support.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/net.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/publish.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/publish/ui.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/publish/element.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/room.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/room.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/qmux.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/signals.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/video.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/video.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/signals.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/ui.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/signals/react.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/watch.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/watch.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/signals/solid.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/watch/support.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/watch/element.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed lib/js/api/watch/ui.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed bin/relay/auth.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed bin/relay/config.md
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m�[32m✓�[39m Processed bin/relay/cluster.md
moq-doc:check                  | �[33m
moq-doc:check                  | (!) Some chunks are larger than 500 kB after minification. Consider:
moq-doc:check                  | - Using dynamic import() to code-split the application
moq-doc:check                  | - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
moq-doc:check                  | - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.�[39m
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  �[1mvitepress-plugin-llms�[22m initialized �[2m(SSR build)�[22m with workDir: �[36m/work/doc�[39m
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  Build started, file collection cleared
moq-doc:check                  | �[34mllmstxt�[39m�[2m » �[22m  Skipping LLMs docs generation in SSR build
moq-doc:check                  | �[32m✓�[0m building client + server bundles...
moq-doc:check                  | - rendering pages...
moq-doc:check                  | �[32m✓�[0m rendering pages...
moq-doc:check                  | build complete in 65.28s.
moq-doc:check                  | Done in 68.79s
Checked 1236 files in 3s. No fixes applied.
@moq/auth:build       | ✍️  Rewriting package.json...
@moq/auth:build       | 🔗 Converted @moq/clock: workspace:^ → ^0.1.0
@moq/auth:build       | 🔗 Converted @moq/pattern: workspace:^ → ^0.2.1
@moq/auth:build       | 📄 Copying README.md...
@moq/auth:build       | 🔍 Running publint...
@moq/auth:build       | 📦 Package built successfully in dist/
@moq/auth:build       | ✍️  Generating jsr.json...
@moq/auth:build       | 📦 jsr.json written
@moq/auth:build       | Done in 2.18s
@moq/boy:build        | �[36mvite v8.3.4 �[32mbuilding client environment for production...�[36m�[39m
@moq/boy:build        | transforming...
@moq/boy:build        | ✓ 133 modules transformed.
@moq/boy:build        | rendering chunks...
@moq/boy:build        | computing gzip size...
@moq/boy:build        | dist/index.js           0.23 kB │ gzip:  0.17 kB
@moq/boy:build        | dist/element.js        41.59 kB │ gzip: 12.36 kB │ map: 159.54 kB
@moq/boy:build        | dist/game-DQmV_y9C.js  42.28 kB │ gzip: 11.67 kB │ map: 376.14 kB
@moq/boy:build        | 
@moq/boy:build        | �[32m✓ built in 7.06s�[39m
@moq/boy:build        | ✍️  Rewriting package.json...
@moq/boy:build        | 🔗 Converted @moq/clock: workspace:^ → ^0.1.0
@moq/boy:build        | 🔗 Converted @moq/json: workspace:^ → ^0.4.2
@moq/boy:build        | 🔗 Converted @moq/net: workspace:^ → ^0.4.2
@moq/boy:build        | 🔗 Converted @moq/watch: workspace:^ → ^0.6.2
@moq/boy:build        | 🔗 Converted @moq/signals: workspace:^ → ^0.2.5
@moq/boy:build        | 📄 Copying README.md...
@moq/boy:build        | 🔍 Running publint...
@moq/boy:build        | 📦 Package built successfully in dist/
@moq/boy:build        | Done in 31.60s
@moq/clock:build      | ✍️  Rewriting package.json...
@moq/clock:build      | 📄 Copying README.md...
@moq/clock:build      | 🔍 Running publint...
@moq/clock:build      | 📦 Package built successfully in dist/
@moq/clock:build      | ✍️  Generating jsr.json...
@moq/clock:build      | 📦 jsr.json written
@moq/clock:build      | Done in 1.24s
@moq/demo:build       | �[36mvite v8.3.4 �[32mbuilding client environment for production...�[36m�[39m
error: recipe `check-changed` failed on line 31 with exit code 143
ci: test rs failed
ci: seconds per module
    42  check rs
    90  test rs (failed)
   132  check js (cancelled)
    40  check flake
     0  check drill
     2  check quest
     2  check ts_paths
    15  check shell
     0  check large_files
     1  check toml
     0  check nix
     0  check justfile
   132  wall time
error: recipe `ci` failed on line 107 with exit code 101

.

@moq-bot

moq-bot Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

codex / Codex land fixer: This maintainer pick already used its mechanical fi·x attempt. Run /quest-iterate to diagnose the repeated failure, then pick it again.

(written by codex / Codex)

@kixelated
kixelated enabled auto-merge (squash) November 1, 2026 09:34
@moq-bot
moq-bot Bot disabled auto-merge November 1, 2026 09:48
@moq-bot moq-bot Bot removed the quest:merge label Nov 1, 2026
@moq-bot

moq-bot Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

quest land removed this pull request from the queue: the batch check failed (exit 1).

    Checking tokio-stream v0.1.19
    Checking md-5 v0.11.0
    Checking arc-swap v1.9.2
    Checking tinytemplate v1.2.1
    Checking page_size v0.6.0
    Checking pretty-hex v0.4.2
    Checking anes v0.1.6
    Checking oorandom v11.1.5
    Checking retina v0.4.21
    Checking object_store v0.14.2
    Checking axum-server v0.8.0
    Checking srt-tokio v0.4.4
    Checking uniffi v0.32.2
    Checking http-cache-reqwest v1.0.0-alpha.9
    Checking egui_dock v0.21.1
    Checking gstreamer-audio v0.25.4
    Checking criterion-plot v0.8.2
    Checking rustls-acme v0.15.4
    Checking eframe v0.36.2
    Checking moq-ice v0.1.0 (/work/rs/moq-ice)
    Checking m3u8-rs v6.0.1
    Checking quick_cache v0.7.0
    Checking rind v0.1.0
    Checking sd-notify v0.5.0
    Checking sysinfo v0.39.6
    Checking bytesize v2.7.0
    Checking send_wrapper v0.6.0
 Documenting moq-ice v0.1.0 (/work/rs/moq-ice)
 Documenting moq-auth v0.2.1 (/work/rs/moq-auth)
 Documenting moq-nvenc v0.1.2 (/work/rs/moq-nvenc)
 Documenting moq-sock v0.2.0 (/work/rs/moq-sock)
    Checking criterion v0.8.2
 Documenting moq-shaper v0.0.1 (/work/rs/moq-shaper)
 Documenting moq-quic v0.1.0 (/work/rs/moq-quic)
 Documenting moq-congestion v0.1.0 (/work/rs/moq-congestion)
 Documenting kio-macros v0.1.0 (/work/rs/kio/macros)
 Documenting moq-net v0.3.10 (/work/rs/moq-net)
 Documenting moq-msf v0.5.1 (/work/rs/moq-msf)
 Documenting bench-harness v0.0.1 (/work/rs/bench-harness)
 Documenting kio v0.6.2 (/work/rs/kio)
 Documenting moq-pattern v0.1.2 (/work/rs/moq-pattern)
 Documenting moq-v4l v0.1.0 (/work/rs/moq-v4l)
 Documenting libmoq v0.6.12 (/work/rs/libmoq)
 Documenting moq-native v0.20.0 (/work/rs/moq-native)
 Documenting test-env v0.0.1 (/work/rs/test-env)
    Checking moq-json v0.5.8 (/work/rs/moq-json)
    Checking moq-loc v0.2.19 (/work/rs/moq-loc)
    Checking qmux v0.7.0 (/work/rs/qmux)
 Documenting moq-json v0.5.8 (/work/rs/moq-json)
 Documenting moq-archive v0.0.11 (/work/rs/moq-archive)
 Documenting moq-sign v0.0.1 (/work/rs/moq-sign)
 Documenting qmux v0.7.0 (/work/rs/qmux)
 Documenting moq-e2ee v0.0.11 (/work/rs/moq-e2ee)
    Checking hang v0.21.11 (/work/rs/hang)
    Checking moq-tokio v0.19.23 (/work/rs/moq-tokio)
    Checking moq-stats v0.2.12 (/work/rs/moq-stats)
 Documenting moq-tokio v0.19.23 (/work/rs/moq-tokio)
 Documenting hang v0.21.11 (/work/rs/hang)
 Documenting moq-room v0.2.11 (/work/rs/moq-room)
    Checking moq-mux v0.10.11 (/work/rs/moq-mux)
 Documenting moq-mux v0.10.11 (/work/rs/moq-mux)
 Documenting moq-stats v0.2.12 (/work/rs/moq-stats)
 Documenting moq-uring v0.0.12 (/work/rs/moq-uring)
 Documenting moq-loc v0.2.19 (/work/rs/moq-loc)
error[E0609]: no field `entries` on type `&&mp4_atom::Trun`
   --> rs/moq-mux/src/container/mp4.rs:286:52
    |
286 |         for trun in traf.trun.iter().filter(|trun| !trun.entries.is_empty()) {
    |                                                          ^^^^^^^ unknown field
    |
    = note: available fields are: `data_offset`, `samples`

error[E0609]: no field `entries` on type `&mp4_atom::Trun`
   --> rs/moq-mux/src/container/mp4.rs:293:17
    |
293 |                 count: trun.entries.len() as u32,
    |                             ^^^^^^^ unknown field
    |
    = note: available fields are: `data_offset`, `samples`

error[E0609]: no field `entries` on type `&mp4_atom::Trun`
   --> rs/moq-mux/src/container/mp4.rs:295:23
    |
295 |             for entry in &trun.entries {
    |                                ^^^^^^^ unknown field
    |
    = note: available fields are: `data_offset`, `samples`

 Documenting moq-relay v0.17.2 (/work/rs/moq-relay)
For more information about this error, try `rustc --explain E0609`.
error: could not compile `moq-mux` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: recipe `lint-changed` failed on line 70 with exit code 143
ci: check py failed
ci: seconds per module
    28  check py (failed)
    28  check rs (cancelled)
    28  check c (cancelled)
    28  wall time
error: recipe `ci` failed on line 107 with exit code 1

.

@moq-bot
moq-bot Bot enabled auto-merge (squash) November 1, 2026 09:51
@moq-bot moq-bot Bot added the quest:merge label Nov 1, 2026
@moq-bot

moq-bot Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

codex / Codex land fixer: Requeued unchanged: No independent failure; batch failed compiling PR &#35;7357.

(written by codex / Codex)

@moq-bot
moq-bot Bot merged commit 14e9973 into main Nov 1, 2026
1 check passed
@moq-bot
moq-bot Bot deleted the quest/m2/setup-parse-once branch November 1, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant