Skip to content

Fix remaining moq-transport registry values - #3937

Draft
kixelated wants to merge 3 commits into
mainfrom
quest/main/ietf-leftovers
Draft

kixelated wants to merge 3 commits into
mainfrom
quest/main/ietf-leftovers

Conversation

@kixelated

@kixelated kixelated commented Sep 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Encode and decode the registered DEFAULT_PUBLISHER_PRIORITY track property, and wait for SUBSCRIBE_OK before committing immutable track info. Early group and fill streams wait safely for that response.
  • Refuse unsupported TRACK_STATUS with the correct per-draft response instead of hanging in Rust or replying with success in JS.
  • Restore registered FETCH refusal codes for empty ranges and invalid joining request IDs.
  • Correct the quest plan: the priority property is 0x0E, and joining error 0x32 exists only in drafts 15–19. Drafts 20+ use DOES_NOT_EXIST when no subscription exists.

Impact

Public API: additive Rust Error::InvalidRange and Error::InvalidJoiningRequestId variants on the non-exhaustive enum; optional JS Publish.priority. No signature change. An older peer that omits property 0x0E now contributes the IETF wire default 128, which maps to model priority 127. This corrects observable ranking from the previous model default of 0.

Wire: property 0x0E is written in draft 17+ property blocks and read in draft 16+ blocks. TRACK_STATUS uses draft-14 TRACK_STATUS_ERROR 0x0F, then REQUEST_ERROR. FETCH uses INVALID_RANGE 0x05 (draft 14) / 0x11 (draft 15+), and INVALID_JOINING_REQUEST_ID 0x07 (draft 14) / 0x32 (drafts 15–19). These are existing IETF registry values; no new format or codepoint is introduced.

Verification

  • Rust moq-net library suite: 1,191 passed, including 407 IETF tests with exact bytes per draft, older-peer fallback, and early FILL ordering.
  • JS focused IETF suite: 132 passed, including exact bytes per draft and early group ordering.
  • js/net TypeScript check, declaration build, and publint passed.
  • just test smoke --all passed every Rust, Python, Go, JS, C, and GStreamer publisher/subscriber pairing.
  • Scoped moq-net Clippy with -D warnings, Rust formatting, git diff --check, and quest check (364 documents) passed.
  • The affected-package just check passed its JS gates, Rust Clippy, formatting, and doc-name stages. I stopped it during a separate native Rustdoc rebuild on a busy shared host. The broad just fix was likewise stopped after 17 minutes of single-job native dependency compilation. The remaining Rustdoc/wasm portion and downstream affected-package just test have not run locally; CI can finish the broader gates. This PR remains a draft until those results are available.
  • The completed quest was removed from the roadmap, unblocking the track-priority quest.

Closes #3534
Closes #3492

(written by GPT-6 Astra)

opencode agent and others added 3 commits September 22, 2026 16:45
Co-Authored-By: GPT-6 Astra <codex@openai.com>
Implement publisher priority properties, defer track acceptance until SUBSCRIBE_OK, refuse TRACK_STATUS, and restore per-draft FETCH errors.

Co-Authored-By: GPT-6 Astra <codex@openai.com>
Remove the finished roadmap plan and unblock track priority scope.

Co-Authored-By: GPT-6 Astra <codex@openai.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant