Skip to content

test(ietf): moq-test conformance through a two-relay cluster - #6729

Merged
kixelated merged 7 commits into
mainfrom
quest/m1/ietf-extension/README
Oct 25, 2026
Merged

kixelated merged 7 commits into
mainfrom
quest/m1/ietf-extension/README

Conversation

@kixelated

@kixelated kixelated commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Finishes quest/m1/ietf-extension/README.md (moq-transport passthrough) and deletes it.

Changes

  • nix/moxygen-track-status.patch makes two changes to the pinned Moxygen. Both are mirrored upstream in facebookexperimental/moxygen#264, and the patch goes away at the next pin bump once that lands:
    • MoQTestPublisher answers TRACK_STATUS with what its SUBSCRIBE_OK carries (largest location, group order, track properties including publisher priority) instead of NOT_SUPPORTED, without starting the track.
    • TRACK_STATUS_OK no longer carries a GROUP_ORDER parameter. Draft-18 allows GROUP_ORDER only in SUBSCRIBE, PUBLISH_OK and FETCH (§10.2.8), and a receiver closes the session on a parameter in any other message type (§10.2.1). So our decoder was right to refuse it, and Moxygen was wrong.
  • test/ietf-conformance/run.sh runs the two-relay cell again on draft 18 only. A draft-16 TRACK_STATUS_OK has no Track Properties block, and draft 16 is being dropped.
  • The harness README has the result table, the local patch, and the known verifier flake, so a nightly failure points at it.
  • Deletes the passthrough quest. Its goal is met: sections 1-7 pass nightly through one relay and through a cluster.

Public API and wire impact: none. Only the test harness and the pinned test dependency change.

Results

just test ietf-conformance, three consecutive runs, all passing:

Draft Direct origin One relay Two relays
16 29 pass 29 pass not run
18 29 pass 29 pass 29 pass

Upstream Moxygen tests built with the patch: MoQTrackServerTests 48, MoQTests 332, MoQSessionTests 640, all pass.

Local just check: shell, nix, quest, toml and justfile checks pass. check flake could not run here: the local sandbox refuses user namespaces when building github-runner, which this PR does not touch.

Decisions

  1. ✅ Unblock the two-relay cell with a second local patch in nix/, and file the fix upstream (facebookexperimental/moxygen#264).
  2. ✅ Reorder flake: wait for a recurrence in nightly; don't fix it now. Documented in the harness README.
  3. ✅ Draft-15/16 TRACK_STATUS has no track properties: old drafts are being dropped (moq-dev/moq#6753, moq-dev/moq#6754), so don't widen metadata requests into SUBSCRIBE. Run the cluster cell only on drafts that stay, and add no code for the gap.
  4. ✅ GROUP_ORDER on a draft-18 TRACK_STATUS_OK: the spec decides. It forbids the parameter there, so Moxygen gets the frame-writer patch and the upstream fix grows to include it.

Follow-ups

(Written by Claude Opus 5.5)

kixelated and others added 5 commits October 24, 2026 22:44
…the two-relay cells

A local Moxygen patch makes MoQTestPublisher answer TRACK_STATUS with what
its SUBSCRIBE_OK carries, mirroring facebookexperimental/moxygen#264. The
harness runs the cluster topology again on drafts 16 and 18; both cells
still fail at the relay, recorded in the passthrough quest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Moxygen wrote GROUP_ORDER in TRACK_STATUS_OK, which draft-18 forbids outside
SUBSCRIBE, PUBLISH_OK and FETCH, so the origin refused every cluster
metadata query. The local patch drops it, as facebookexperimental/moxygen#264
now does. Draft 16 has no cluster cell: its TRACK_STATUS_OK cannot carry the
track properties, and that draft is being dropped.

All cells pass over three runs, which finishes the passthrough quest. The
reorder flake it tracked is documented with the harness.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title moq-transport passthrough test(ietf): moq-test conformance through a two-relay cluster Oct 25, 2026
@kixelated
kixelated marked this pull request as ready for review October 25, 2026 16:48
@coderabbitai

coderabbitai Bot commented Oct 25, 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 19 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: 3796312d-d443-4906-8431-b7203ccb1634
Commits

Reviewing files that changed from the base of the PR and between fe08ce0 and 1c0fe3b.

Files selected for processing: 9
  • nix/moxygen-track-status.patch
  • nix/moxygen.nix
  • quest/m1/README.md
  • quest/m1/api-audit/model-private.md
  • quest/m1/ietf-extension/README.md
  • quest/m1/interop-coverage/README.md
  • quest/m1/smoke-moxygen.md
  • test/ietf-conformance/README.md
  • test/ietf-conformance/run.sh
  • 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 25, 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-25T22:45:57.441917Z 1c0fe3b New commits
ℹ️ 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 commit: b6ef61f

No actionable bugs found. Keeping the interoperability correction in the pinned test dependency rather than weakening the relay decoder is sound. Draft-18 cluster coverage returns without widening metadata queries into subscriptions; shared track-property helper and harness lifecycle keep complexity modest.

Verification: static patch, pinned upstream context, Nix integration and harness startup/routing/cleanup inspection. No Moxygen build or conformance matrix execution; reported passing runs not independently reproduced.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Landing b6ef61f. The two-relay cell is back on draft 18 and passes 29/29 over three runs, next to the direct-origin and one-relay cells on drafts 16 and 18. This finishes the passthrough quest.

All four decisions are recorded with ✅ in the body. Reviews on this head: OpenAI found no actionable bugs, Codex gave a thumbs-up, and CodeRabbit was rate-limited. quest check --base origin/main passes.

Follow-ups:

(Written by Claude Opus 5.5)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Maintainer decisions (2026-10-25):

  1. Draft-15/16 TRACK_STATUS: moot, because moq-dev/moq#6753 drops drafts 14-17. Gate the conformance cell on drafts 18 and 22, and retarget the epic README's "drafts 16 and 18" lines.
  2. Moxygen's draft-18 GROUP_ORDER on TRACK_STATUS_OK: keep refusing it. Carry a third Moxygen patch, and widen the upstream fix. Posting upstream outside moq-dev needs the maintainer's approval first.

(Written by Claude Opus 5.5)

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Oct 25, 2026
kixelated and others added 2 commits October 25, 2026 15:42
# Conflicts:
#	quest/m1/README.md
#	quest/m1/ietf-extension/README.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Merged origin/main to clear the conflict (main finished the ffi-durations and ietf-private quests; this PR still deletes the passthrough epic) and dropped model-private.md's link to the deleted ietf-private quest.

On the 17:12Z decisions comment: the cluster cell already runs only on draft 18. Draft 22 can't be added here, since the pinned Moxygen (MoQVersions.h) speaks only drafts 16 and 18; it joins with the pin bump after facebookexperimental/moxygen#264 lands. The epic README's "drafts 16 and 18" lines go away with the epic, and the remaining draft-16 cells leave with moq-dev/moq#6753. The GROUP_ORDER fix is in nix/moxygen-track-status.patch.

(Written by Claude Opus 5.5)

@kixelated

Copy link
Copy Markdown
Collaborator Author

Landing 1c0fe3b: origin/main merged in to clear the conflict, plus a dead-link fix in quest/m1/api-audit/model-private.md. The harness, Moxygen patch, and decisions in the body are unchanged from the reviewed head. Required checks pass, Codex gave a thumbs-up on this head, and quest check --base origin/main passes.

Follow-ups:

(Written by Claude Opus 5.5)

@kixelated
kixelated added this pull request to the merge queue Oct 25, 2026
Merged via the queue into main with commit 2feb88b Oct 25, 2026
10 checks passed
@kixelated
kixelated deleted the quest/m1/ietf-extension/README branch October 25, 2026 23:50
kixelated added a commit that referenced this pull request Oct 26, 2026
Take #6177's SETUP tokens on the uni SETUP only, since the moql SETUP now
negotiates lite alone, and #6729's two-relay conformance cell on draft 18.
Drop the stale draft 14-17 notes left in js/net comments and test names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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