Chronological record of all ingestions, queries, and maintenance operations.

2026-06-07 — London agenda published, DTS consensus flips to extension draft

TL;DR:

  • London interim (June 11-12) agenda is PUBLISHED on DatatrackerMartin Duke June 5 “shifted a bit more time to MOQT blockers”: Day-1 (interim-08) is almost entirely MOQT blockers (Concurrent Subscribe, Object Range Filters, Joining FETCH PR #1642, Request Blocking, two hour-long “Other MOQT Issues” blocks), with SWITCH/DTS demoted to a 1-hour Ali “Implementation Lessons” tail slot; Day-2 still conditional on the SWITCH/DTS outcome. LOCMAF + catalog-format are not on either agenda.
  • DTS consensus readout flips to “separate WG extension document” — Cullen Jennings contests it June 6. Chairs conclude “strong consensus for DTS to be adopted as an extension described by a WG document” (not base-spec integration) and invite Will Law to publish wilaw/dts4moq as draft-ietf-moq-dts4moq; this reverses the late-May integration trajectory, and Cullen — who had argued against a separate draft — now asks “How did you reach the conclusion that there is consensus this should be an extension?“. Separately, Torbjörn Einarsson ships a CUE-based MSF/CMSF catalog validator that found draft-01 bugs → moq-wg/msf PR #177 + moq-wg/cmsf PR #23; thibmeu opens 2 privacy-pass issues (#14/#15); transport PR #1640 EXPIRES + sharmafb editorial PRs MERGE; Kota Yatagai debuts Moqtopus (C++/MsQuic Unreal Engine client).
  • Implementations: moq ~20 merges (kixelated) — new moq-hls gateway (PR #1626 OPEN), VP8/VP9 (#1625 mux + #1632 gst), moq-gst maturation (#1627/#1633/#1646), moq-net TrackTrackInfo reshape (#1631 +1331/−1217), moq-json JSON Merge Patch catalog deltas (#1637), moq-lite-05 TRACK-stream #1648. moqx: afrind PR #386 per-session auth filters MERGED + multithread stack still OPEN + auto-regression CI #379 MERGED. quiche moqt: 3 vasilvv commits (control-message-queue factoring + subgroup “first object” bit). moqlivemock v0.11.0 + warp-player v0.11.0 ship MSF/CMSF draft-01 (+ LOCMAF 0.2); NEW Eyevinn/msf-catalog-validator. moq-rs, moq-js (PR #72), moqtail, imquic (PR #27), mondain/moqxr (TilsonJoji PR #14), mondain/moq2ts quiet.
  • Interop: 176 / 38 / 137 / 1 at 2026-06-07 00:49:07 UTC (draft-18) — sequence June 5 41 → June 6 37 → June 7 38, a −13 to −16 drop from June 4’s 54, most plausibly from moq-dev/moq’s June-5 moq-net Track reshape (matrix runs against main). Still 0 at target · 0 ahead · 176 behind (no impl registered at draft-18). 20-day cadence streak (new longest). London hackathon/interop June 9-10, formal sessions June 11-12.

Operation: Update Sources:

  • Slack #moq (new since June 4 update): Tobbe June 5 10:44 CEST catalog-validator announcement; Kota Yatagai June 4 16:44 CEST Moqtopus debut + interop-sheet question; Mike English June 4 17:39-17:57 CEST (automated runner replaces spreadsheet, more test cases next week, #moq-interop-runner channel); Alan Frindell June 4 17:46 “Are there new test cases coming?“. #moq-rs/#moq-js/#libquicr/#moq-interop-runner not separately surfaced.
  • GitHub moq-wg repos:
  • GitHub implementations:
    • moq-dev/moq: ~20 merges June 4-7 (PR 1625-1648). Highlights #1626 moq-hls OPEN, 1632 VP8/VP9, 1646 moq-gst, #1631 moq-net Track reshape, #1634 subscription+N-fetch, #1637 moq-json merge-patch, #1640 RAII announcements, #1648 moq-lite-05 TRACK stream OPEN, #1601 FETCH past groups MERGED, 1630 relay GOAWAY+TLS-reload OPEN.
    • openmoq/moqx: afrind PR #386 per-session auth filters MERGED, #389 static-Boost probe MERGED; gmarzot #385/#383; peterchave #379 auto-regression MERGED + #388 OPEN; multithread stack 363 OPEN; mondain #286 OPEN; sync-bot 392.
    • google/quiche (quiche/quic/moqt): vasilvv 8a11928a+6b6a9b74 June 5 (MoqtControlMessageQueue factoring) + f3ce1892 June 6 (subgroup “has first object” bit).
    • Eyevinn: moqlivemock PR #91 v0.11.0 MERGED; warp-player PR #139 v0.11.0 MERGED; msf-catalog-validator NEW (4 PRs merged June 4-5).
    • cloudflare/moq-rs (PR 171 untouched), video-dev/moq-js (PR #72 OPEN), moqtail/moqtail, meetecho/imquic (PR #27 updated June 5), mondain/moqxr (PR #14 OPEN), mondain/moq2ts, t-gazzy/Moqintosh, birneee/quiche_moq, Quicr/cat-token: quiet.
  • Mailing list (June 4-7): “New Agenda for London” (Martin Duke June 5), “London interim details” (Mike English June 5), “Consensus Call: DTS and SWITCH” readout + replies (Suhas/Dai Tongyu/Martin/Gwendal June 5, Cullen June 6), “Request Synchronization Use Case” (Gwendal + Cullen), weekly GitHub digest (June 7).
  • IETF Datatracker: no new revisions June 4-7 — transport-18 (Day +26), msf-01, cmsf-01, loc-02, secure-objects-00, privacy-pass-02, locmaf-00, msfts-00 unchanged. draft-ietf-moq-dts4moq invited but not yet submitted. London interim agendas posted (interim-08/-10/-11).
  • Interop runner: reports June 5 (177/41/135/1), June 6 (176/37/138/1), June 7 (176/38/137/1); −13 to −16 vs June 4, 0 at target.
  • MoQ Monthly: no new issue since #2 (May 31, Day +7).
  • tobbee/moq-llm-wiki: no open issues.

Pages updated: discussions/discussions-2026-06.md (June 4→7 activity section), discussions/interim-meetings.md (June 7 note + published-agenda table rows), drafts/moq-transport.md (June 7: DTS consensus reversal + merges + new issues), drafts/moq-locmaf.md (June 7: LOCMAF 0.2 + validator + agenda absence), drafts/moq-msf.md + drafts/moq-cmsf.md (June 7: validator-driven errata PRs), drafts/moq-privacy-pass.md (thibmeu issues), implementations/moq-dev.md (June 7: moq-hls + VP8/VP9 + moq-net reshape), implementations/openmoq.md (June 7: per-session auth filters + auto-regression CI), interop/interop-runner.md (June 5/6/7 reports), index.md (Moqtopus + date bumps), log.md (this entry).

Key findings:

  • The DTS consensus readout is a genuine reversal the wiki must record carefully. From late May the public on-list vote tally favored integration into the base MOQT draft (Will Law, Gwendal, Nokia, Ali Begen all YES/YES), and Cullen Jennings explicitly argued against a separate draft (May 27), which is exactly why wilaw opened the base-spec PR #1638. The chairs’ June-4-close readout instead lands on a separate WG extension document (draft-ietf-moq-dts4moq) — closer to Magnus Westerlund’s original proposal — and Cullen now contests the process of how that consensus was read (June 6). Net effect: PR #1638’s base-spec path is superseded-in-direction, the new draft is invited-but-unsubmitted, and the extension-vs-base-spec question may reopen on the June-12 floor. This is the first time the wiki has tracked a chair consensus readout diverging from the visible on-list vote distribution.
  • Martin Duke’s “shifted more time to MOQT blockers” is structurally visible in the agenda. Day-1 gives Alan+Ian two full hours of “Other MOQT Issues” to triage the 14-item draft-18 errata/design backlog, while SWITCH/DTS — the May-26-interim centerpiece — is compressed to a single Ali “Implementation Lessons” report at 1600-1700. The agenda treats the draft-18 errata wave (sharmafb + kixelated + the new 1652) as the binding constraint on shippability, not the SWITCH/DTS adoption question (now substantively closed). LOCMAF and catalog-format get no floor time.
  • Tobbe’s catalog validator closes a tooling gap and immediately produces errata. The CUE-schema validator validating against draft-01 definitions rather than examples found wrong version values + typos, filed as MSF PR #177 + CMSF PR #23. This is the first machine-validation feedback loop into MSF/CMSF, and it independently confirms the draft-18/draft-01 thesis that the compressed pre-London publication timeline left machine-detectable inconsistencies in the published examples. It also means LOCMAF 0.2’s catalog-referenced-initData design (dropping initData compression because MSF -01 added catalog initData references) is now exercised against validated catalogs in moqlivemock v0.11.0.
  • moq-dev/moq’s gateway footprint is now the broadest in the ecosystem. With the new moq-hls PR #1626 (HLS / LL-HLS), kixelated adds a third gateway vertical on top of the May-29 WebRTC bridge and June-2 MPEG-TS bridge — MoQ now bridges WebRTC + MPEG-TS + HLS plus fMP4/MKV interchange, with 6-codec coverage (H.264/H.265/VP8/VP9/AAC/Opus after the VP8/VP9 additions). The June-5 moq-net TrackTrackInfo reshape is the likeliest cause of the interop −13 drop (the matrix runs against main), a recurring cost of moq-dev/moq’s high-velocity core-API churn.
  • The interop matrix is now at a ~21% floor against a target no registered impl advertises. Every cell is a cross-version pairing (0 at target · 0 ahead · 176 behind), so the −13 to −16 drop from June 4’s 54 reflects both the moq-net reshape and the structural fact that the draft-18 target outran every registration. The standing levers are unchanged: an impl registering draft-18 (Nokia’s announced v17/v18 relay being the obvious candidate) and Mike English’s promised post-London test-case expansion. The 20-day daily-report cadence is the longest the wiki has tracked.

2026-06-04 — CMSF -01 lands, LOCMAF Slack design thread, sharmafb editorial sprint, draft-19 wire prep

TL;DR:

  • Two-day WG-draft cluster completes: draft-ietf-moq-cmsf-01 PUBLISHED June 3 by Will Law2nd WG revision in 2 days after MSF -01 June 2. Final pre-submit clean-up moq-wg/cmsf PR #22 MERGED 11:32 UTC (+7/−6, “Fix I-D nits”). wilaw posts companion “MSF updates” + “CMSF updates” mailing-list announcements — first per-spec author-led list updates from wilaw the wiki has tracked. LOCMAF Slack thread engages afrind + wilaw on initData carriage: under Tobbe’s June 3 08:51 CEST announcement, 5-reply thread surfaces 3-way design space — (a) catalog-referenced (msf -01 inline extended to track reference), (b) track property (afrind, wilaw seconds for steady-state immutability — “Currently we do not allow track init properties to change once publish has begun”), (c) per-group subgroup, only when changed (afrind “Only Publish the init subgroup in groups where it changed”); promotes stale moq-msf Issue #153 to active design engagement within 12h of LOCMAF debut.
  • moq-transport: sharmafb (Cisco) 5-item editorial sprint June 3 21:09-21:27 UTC in 18-minute window: PR #1645 PUBLISH_OK code, Issue #1646 §2.5 vs §15.8 codepoint conflict, Issue #1647 TIMESTAMP/SUBGROUP_DELIVERY_TIMEOUT same value, PR #1648 soften REQUEST_UPDATE response, PR #1649 PUBLISH_DONE wording — all draft-18 errata-style. Plus kixelated Issue #1644 duplicate Track Properties on repeated SUBSCRIBE_OK/FETCH_OK (same gap moq-lite-05 PR #1609 already addresses via TRACK_INFO Track Stream). Cumulative active draft-18 issue/PR inventory = 6 normative PRs OPEN + 8 design issues OPEN = 14 items into London Day-1 0900-1045 “MOQT Issues” 180-min slot — infeasible to ship all 6 PRs on the floor, pure-editorial items likely defer to editor discretion. quiche moqt starts draft-19 wire prep: 3 vasilvv commits June 3 (4096d2e3 new varint format, 8427f949 delta encoding for Absolute Range, 96c9a9c0 merge CLIENT_SETUP+SERVER_SETUP) — first sustained draft-19 wire-prep work the wiki has tracked from any impl.
  • Implementations: moq ~12 merges + 7 OPEN cycle (June 3 ~05:00 → June 4 ~05:00 UTC, all kixelated unless noted). Voice-AI/TTS use case landing: PR #1620 OPEN “feat(watch): latency range with buffered playback” (+726/−75, 14f) reframes playback latency as a range [min, max] unifying live + buffered; unblocks voice-AI/TTS (pipecat-ai/pipecat#4629) where response is written faster than real-time. 2 new external contributors: arielmol PR #1617 SCTE-35 from MPEG-TS into a new data catalog track (first broadcast-ad-marker plumbing); vipyne Issue #1614 + PR #1615 AudioProducer Python flush/cancel for AI voice agents. Plus watch refactor (PR #1591 Computed signals MERGED, PR #1592 inputs/outputs MERGED, PR #1588 stop downloads when muted/paused MERGED), CI release pipeline shakedown (PR 1623), moq-net per-control-stream task (PR #1621), apt keyring rename (PR #1611). moqx: paul-mondain CAT token PR #264 MERGED June 3 22:57 UTC after 33 days OPEN (+1807/−13, 20f) — first openmoq/moqx external-contrib-driven auth path now landed in main. Plus TimEvens PR #376 + #377 MERGED (Debian bookworm + macOS Apple Clang 21), gmarzot PR #370 MERGED folly XLOG. afrind opens 3 new tracking issues: #380 standard token type values, #381 auth for MOQT peers, #382 Draft-18 updates for relay behavior (priority-ranked draft-18 catch-up backlog). mondain/moqxr: PR #14 OPEN by TilsonJoji (new external contrib) SRT MPEG-TS ingest with fMP4 repackaging — first MoQ-side SRT ingest path in openmoq orbit. moq-rs PR #167 + PR #171 untouched. moqtail, moq-js (PR #72 OPEN), imquic (PR #27 OPEN, updated June 3 17:14 UTC), Moqintosh, moqlivemock (PR #90 dependabot quic-go), Eyevinn/warp-player, Eyevinn/moqtransport, quiche_moq, Quicr/cat-token all quiet.
  • Interop: 177 / 54 / 122 / 0 at 2026-06-04 00:55:39 UTC−3 pass vs June 3 (57 → 54, 32.2% → 30.5%, −1.7pp), reverses Jun 3’s +6 jump symmetrically; skip 1 → 0; 17-day cadence (new longest streak the wiki has tracked). Version breakdown still 0 at target · 0 ahead · 177 behind. Slack signal June 2 09:18 UTC by Yu You (Nokia): “we are in the process to host a remote relay for the interop. we have the support of v17 and v18” — first impl-side v18 endpoint announcement; if registered, would close the 0-at-target gap. London hackathon 5 days away.

Operation: Update Sources:

  • Slack: #moq substantive — 5-reply thread on Tobbe’s LOCMAF -00 announcement (Tobbe 08:51 CEST + afrind 18:13/20:06/22:00 + Tobbe 19:14 + wilaw 21:37). Plus Yu You (Nokia) June 2 09:18 CEST v17+v18 remote relay announcement. #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos:
    • moq-transport: sharmafb 5-item sprint (PR #1645 / Issue #1646 / Issue #1647 / PR #1648 / PR #1649) plus kixelated Issue #1644. PR #1642 (afrind Fill) updated June 3 20:30 UTC.
    • moq-wg/cmsf: PR #22 MERGED June 3 11:32 UTC by wilaw (+7/−6, “Fix I-D nits”); CMSF -01 SUBMITTED to Datatracker later same day.
    • moq-msf, loc, secure-objects, privacy-pass, catalog-format: all quiet.
  • GitHub implementations:
    • moq-dev/moq: ~12 merges + 7 OPEN. Highlights PR #1620 latency range (voice-AI), PR #1617 arielmol SCTE-35, PR #1615 vipyne AudioProducer flush, PR 1592 watch component refactor, PR #1588 stop downloads when muted, PR #1611 apt keyring, PR #1621 moq-net task per control stream, PR 1623 CI release pipeline.
    • cloudflare/moq-rs: PR #167 + PR #171 untouched.
    • openmoq/moqx: PR #264 paul-mondain CAT token MERGED + TimEvens PR 377 MERGED + gmarzot PR #370 MERGED + sync-bot PR #378 MERGED. afrind opens Issue #380/#381/#382. peterchave PR #379 auto-regression testing OPEN.
    • mondain/moqxr: PR #14 OPEN by TilsonJoji (new external contrib, SRT MPEG-TS ingest), updated June 3 17:51 UTC.
    • google/quiche (quiche/quic/moqt): 3 vasilvv draft-19 wire-prep commits June 3 (4096d2e3 new varint, 8427f949 delta encoding, 96c9a9c0 SETUP merge) + 2 martinduke commits (52de014c June 2 22:45 MessageParameters, c25d5258 June 3 15:30 ASAN fix).
    • moqtail/moqtail, video-dev/moq-js (PR #72 OPEN), meetecho/imquic (PR #27 OPEN, updated June 3 17:14 UTC), birneee/quiche_moq, t-gazzy/Moqintosh, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token: all quiet.
    • Eyevinn/moqlivemock: PR #90 dependabot quic-go 0.59.0 → 0.59.1.
    • mondain/moq2ts: quiet since June 1 announcement.
  • Mailing list (June 3): afrind “Request Synchronization Use Case” (re), wilaw “MSF updates” + “CMSF updates” (new threads), Magnus Westerlund “Support for Track Filters and Top-N” (re), Mo Zanaty + Martin Duke “London Agenda requests” (re), I-D Action draft-ietf-moq-cmsf-01.txt.
  • IETF Datatracker: draft-ietf-moq-cmsf-01 SUBMITTED June 3 (Will Law, Akamai) — 19 pages, first WG revision since adoption Dec 2025. transport-18 Day +23, msf-01 Day +1, loc-02, secure-objects-00 (PR #88 stages content for -01), privacy-pass-02 unchanged.
  • Interop runner: New report 2026-06-04 00:55:39 UTC: 177 / 54 / 122 / 0 (−3 pass vs June 3, 30.5%, 17-day cadence streak; third draft-18-target run).
  • MoQ Monthly: No new issue since #2 May 31 (Day +4).
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: drafts/moq-cmsf.md (June 4: -01 PUBLISHED June 3, draft_version bumped to 01), drafts/moq-transport.md (June 4: sharmafb 5-item editorial sprint + #1644 + quiche moqt draft-19 wire prep), drafts/moq-locmaf.md (June 4: Slack thread engagement), implementations/moq-dev.md (June 4 burst: voice-AI latency range + 2 new external contribs), implementations/openmoq.md (June 4: PR #264 CAT token merged + afrind 3 issues + mondain SRT ingest + TimEvens PRs merged), interop/interop-runner.md (June 4 report 177/54/122/0), discussions/discussions-2026-06.md (June 4 section), index.md (CMSF version bump to draft-01, last_updated bump), log.md (this entry).

Key findings:

  • 2-day WG-draft cluster (MSF -01 June 2 + CMSF -01 June 3) aligns both streaming-format anchors for London Day-2 35-min Will Law slot. CMSF -01 publishing 1 day after MSF -01 is not coincidence: yesterday’s PR #21 bumped CMSF’s MSF reference to draft-01 ~2h after MSF -01 landed, and today’s PR #22 clean-up (+7/−6 “Fix I-D nits”) is purely editorial pre-submit polish. wilaw’s first per-spec author-led mailing-list announcement for both — historically wilaw announces via Slack rather than email — suggests a deliberate London-cycle communication push: getting reviewers’ attention via the WG list before the interim convenes. With 5 days to London, the Day-2 slot now has both anchor docs at current state on Datatracker + active reference alignment + parallel implementation discussion (the LOCMAF thread surfaces design alternatives at exactly the right time for slot inputs).
  • Tobbe’s LOCMAF Slack thread is the first cross-author engagement on the new individual draft within 12h of announcement — counter-signal to the typical “individual MoQ draft sits with no review engagement” pattern. The thread substantively engages afrind (Meta, moq-transport editor) and wilaw (Akamai, MSF/CMSF editor) on initData carriage. The 3-way design space surfaced (catalog-referenced vs track-property vs per-group-subgroup) promotes the stale moq-msf Issue #153 (“initTrack does not work”) from dormant to active editorial item. With both editors-of-record now substantively engaged, LOCMAF design feedback feeds back into MSF -01’s initData extensibility direction. This is also the first time a wiki-maintainer-authored draft has surfaced as an editorial design discussion on the public Slack — reverses the normal “wiki tracks the editor’s work” framing into “wiki maintainer’s draft feeds the editor’s work”.
  • sharmafb’s 5-item editorial sprint reveals the structural cost of draft-18’s compressed publication timeline. All 5 sharmafb items are wire-table-vs-text or codepoint-collision-style — the kind of error that an unhurried draft cycle catches in review. With draft-18 published May 12 to meet the London window, errata-style issues are surfacing in 4-week post-publication batches rather than in pre-publication review. Combined with Issue #1644 (kixelated, duplicate Track Properties) the wiki now tracks 6 normative PRs OPEN + 8 design issues OPEN = 14 active draft-18 items entering the 180-min London “MOQT Issues” slot. The draft-18 → draft-19 cycle may need to be shorter than the typical 6 months to clear the errata backlog cleanly; vasilvv’s draft-19 wire-prep commits June 3 (new varint, CLIENT/SERVER SETUP merge, delta encoding) are the first concrete signal that draft-19 work has begun in earnest.
  • paul-mondain CAT token PR #264 lands first among 3 cross-impl auth-relay PRs OPEN in parallel. Status June 4: openmoq/moqx PR #264 MERGED (33 days OPEN); openmoq/moqx PR #286 still OPEN (Catapult submodule stacked on #264); cloudflare/moq-rs PR #169 design proposal + PR #171 C4M implementation both OPEN, untouched June 3-4. The CAT-token-relay path now exists in production-ready OSS form via openmoq/moqx. afrind’s 3 follow-on issues #380/#381/#382 (auth standard token values + MOQT peer auth + draft-18 catch-up backlog) scope the immediate follow-on work clearly. London Day-1 PRIVACY_PASS slot now has openmoq/moqx as the most mature CAT-token relay reference impl — cloudflare/moq-rs’s auth path remains in PR limbo.
  • moq-dev/moq’s voice-AI/TTS pivot is a structural use-case expansion. PR #1620’s latency range with buffered playback explicitly cites pipecat-ai/pipecat#4629 — the pipecat agent framework PR that wants to use MoQ for AI-voice playback. Combined with PR #1615 (vipyne AudioProducer flush/cancel for AI voice interruption) + PR #1617 (arielmol SCTE-35 broadcast-ad-marker), moq-dev/moq adds 3 use-case verticals in 24h. Voice-AI/TTS is a notable expansion: until now MoQ’s vertical reach was streaming media (CMAF, LOC, RoQ), low-latency broadcast (MoQ Boy game streaming), and conferencing (Nokia’s PoC). Voice-AI playback as a first-class use case is new — and it’s landing as a kixelated-led integration with an external framework (pipecat) rather than a research demo, which is a stronger adoption signal. The new external contributors (arielmol + vipyne + last week’s nuts-rice + Qizot) suggest moq-dev/moq’s community surface continues to widen as the polyglot release infrastructure pays off.

2026-06-03 — MSF -01 lands, LOCMAF -00 debut, Joining-Fetch replacement opens

TL;DR:

  • Two Datatracker submissions June 2 end a long-running drought: draft-ietf-moq-msf-01 published by wilaw + Suhas — Day +134 slippage on wilaw’s May 27 Slack “Friday” pledge finally closes; final pre-submit clean-up was moq-wg/msf PR #176 (RFC references + SCTE35 entry removed, MERGED 11:18 UTC, -7/1f) plus moq-wg/cmsf PR #21 (CMSF reference bump + JSON tweaks, +69/−20, MERGED 13:54 UTC, closes #20). draft-einarsson-moq-locmaf-00 NEW by Torbjörn Einarsson (Eyevinn) + Hugo Björs (KTH)“Low Overhead CMAF for Media over QUIC (LOCMAF)” — compact wire format carrying CMAF chunk metadata as tagged fields with sample data unchanged, receiver reconstructs functionally equivalent CMAF chunks for MSE/EME playback. First IETF artifact from the wiki user, slots between LOC (lean container) and CMSF (CMAF-tied packaging) as a compact-fMP4 carrier.
  • moq-transport PR #1642 OPEN June 2 17:01 UTC by afrind “Replace Joining Fetch with Subscription Fill, add Current Group” (+188/−148, 1f) — structural redesign of MOQT’s past-object retrieval: removes Joining Fetch types, INVALID_JOINING_REQUEST_ID, Joining Locations entirely; introduces new subscription filter types AbsoluteStartFill (0x5), AbsoluteRangeFill (0x6), CurrentGroup (0x7), RelativeStartFill (0x8); adds FillDescending (0x3) group order; new Current Group Delivery + Fill Semantics sections. Publisher opens a fill fetch stream (FETCH_HEADER reusing subscription Request ID) for past objects while delivering current/future via subscribe subgroups/datagrams. Replaces ianswett’s PR #1627 (CLOSED June 3 00:16 UTC). Plus 2 new draft-18 design issues: Issue #1641 OPEN June 2 06:19 UTC by Tim Evens (Cisco) “Publish DONE, control stream or request stream?” — surfaces draft-18 text/wire inconsistency (PUBLISH_DONE described as control-stream message but actually sent on request stream); afrind 20:45 UTC reply: “Request streams are considered ‘control’ streams in most of the text, but we can probably crisp this up”. Issue #1643 OPEN June 2 18:49 UTC by afrind “Is it a request or session error to FIN a response bidi stream without a control message first?” — companion to 1634 FIN/RST semantics thread. London Day-1 0900-1045 “MOQT Issues” 180-min slot now anchored by 3 normative-text deliverables (PR #1642 fill-replacement + PR #1640 EXPIRES + PR #1638 DTS) + 4 design-issue threads (#1641, #1643, #1637, #1519).
  • Implementations: moq another high-throughput cycle (~14 merges + 3 OPEN June 2 20:00 → June 3 04:00 UTC, all kixelated). Operational milestone: PR #1604 MERGED “moq-relay: add /health load-shedding endpoint” (+905/−5, 11f) — GET /health returns 503 + per-threshold breach lines via sysinfo crate when CPU/RAM/RX/TX cross config thresholds (--web-health-* flags / MOQ_WEB_HEALTH_* env), pure liveness probe when unconfigured; first-class CDN load-shedding. moq-lite-05 wire-feature triple: PR #1595 MERGED Frame Start in FETCH (Frame Start (i) after Group Sequence so subscribers resume mid-group; implements moq-dev/drafts#24); PR #1601 OPEN TrackConsumer::fetch(group, options) first-class single-group FETCH (+1027/−63, 7f, no live subscription required, bridges to wire moq-lite FETCH blocking on FETCH_OK); PR #1609 OPEN move immutable track props (Priority/Ordered/Cache/Timescale/Compression) off SUBSCRIBE_OK onto dedicated Track Stream (0x6) answered with single TRACK_INFO (+435/−213, 6f, implements moq-dev/drafts#25, gated on Lite05Wip). MPEG-TS completion: PR #1590 MERGED out-of-band avc1/hvc1 in MPEG-TS export + PR #1593 MERGED “moq-mux: synthesize AAC esds in fMP4 export; guard MKV header race” (+164/−3, 4f) — fMP4 export previously failed with “can’t synthesize CMAF init for audio codec AAC” for any TS-imported or raw-AAC broadcast; now builds mp4_atom::Mp4a with full esds from catalog AudioConfig.description. API ergonomics: PR #1606 MERGED TrackProducer/Consumer::subscribe take impl Into<Option<Subscription>> so .subscribe(None) replaces .subscribe(Subscription::default()); subscribe_default() removed. Dependency wave: PR #1596 (7-day cooldown for cargo/bun/uv + drop bun.lockb), PR 1603 dependabot batches incl. code fixes for rand/rubato/rcgen. PR #1607 chore release moq-relay 0.12.7. moqx: Tim Evens (Cisco) emerges as new external contributorPR #376 OPEN June 2 23:42 UTC “Fix Debian bookworm builds and switch deps to CPM” (+92/−31, 5f, yaml-cpp/reflect-cpp from FetchContent → CPM, no more pip-install-cmake, Boost static libs for moxygen standalone, CLion setup in BUILD.md); PR #377 OPEN June 3 05:09 UTC “fix macOS deps build with Apple Clang 21+ and tidy sanitizer flags” (+21/−6, 2f, FMT_CONSTEVAL workaround for Apple Clang 21 / Xcode 26 rejecting fmt 10.2.1 consteval, fmtlib/fmt#4740; sanitizer flag accumulation in setup-deps-standalone.sh). Same TimEvens who filed transport Issue #1641 — Cisco engineer crossing repos and surfacing draft-18 design questions simultaneously. Plus 1 sync-bot moxygen merge PR #375 (June 2 12:25 UTC). moq-rs still quiet outside PR #167 (Suhas filter framework) refresh June 3 05:37 UTC; PR #169 / #170 / #171 untouched. mondain (moqxr / moq2ts) quiet since June 1 21:08 UTC. quiche moqt, moqtail, moq-js (PR #72 OPEN since May 26), imquic (PR #27 OPEN), quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport all quiet.
  • Interop: 177 / 57 / 119 / 1 at 2026-06-03 00:56:06 UTC+6 pass vs June 2 (51 → 57, 28.8% → 32.2%, +3.4pp); new May+June high since cadence recovery May 19; 16 consecutive days of daily reports (May 19-Jun 3) extends longest cadence streak the wiki has tracked. Second draft-18-target run; pass-count rebound suggests one or more impls now match draft-18 wire behavior or matrix harness’s draft-18 expectations adjusted between June 2 and June 3 runs (no registry/PR change observed). London hackathon 6 days away.

Operation: Update Sources:

  • Slack: #moq quiet since June 2 — no new messages match after:2026-06-02; channel read returns only ≤ March 17 messages (likely MCP staleness rather than retroactive deletion). #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos:
    • moq-transport: PR #1642 OPEN by afrind (Joining-Fetch replacement, +188/−148); Issue #1641 OPEN by TimEvens (PUBLISH_DONE wording) with afrind reply; Issue #1643 OPEN by afrind (bidi-stream FIN semantics); PR #1627 CLOSED June 3 00:16 UTC (superseded by #1642).
    • moq-msf: PR #176 MERGED June 2 11:18 UTC by wilaw (RFC refs + SCTE35 entry removed, -7/1f) — last main clean-up before -01 submission ~2-5h later.
    • moq-wg/cmsf: PR #21 MERGED June 2 13:54 UTC by wilaw (+69/−20, JSON format + new MSF -01 reference, closes #20).
    • moq-wg/loc, secure-objects, privacy-pass, catalog-format: all quiet.
  • GitHub implementations:
    • moq-dev/moq: ~14 merges + 3 OPEN. Highlights #1604 /health endpoint, #1595 Frame Start in FETCH, #1601 fetch() on TrackConsumer OPEN, #1609 TRACK_INFO Track Stream OPEN, #1590 MPEG-TS avc1/hvc1, #1593 AAC esds, #1606 ergonomic subscribe(None), #1607 chore release, plus dependency wave (#1596/1598/1599/1602/1603).
    • cloudflare/moq-rs: PR #167 minor refresh June 3 05:37; PR #169/170/171 untouched.
    • openmoq/moqx: PR #376 + PR #377 OPEN by TimEvens (Cisco, new external contributor); sync-bot PR #375 MERGED June 2 12:25 UTC.
    • moqtail/moqtail, video-dev/moq-js (PR #72 OPEN), meetecho/imquic (PR #27 OPEN), mondain/moqxr + mondain/moq2ts, birneee/quiche_moq, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token: all quiet.
    • google/quiche (quiche/quic/moqt): no new commits observed since June 1 17:34 UTC.
  • Mailing list: I-D Action announcements for draft-ietf-moq-msf-01.txt + draft-einarsson-moq-locmaf-00.txt (June 2). New “Joining FETCH Replacement Proposal” thread by afrind linking PR #1642 with Magnus Westerlund replies. “London Agenda requests” replies from Mo Zanaty + Martin Duke. “Support for Track Filters and Top-N” thread continues (Suhas + Magnus).
  • IETF Datatracker: draft-ietf-moq-msf-01 SUBMITTED June 2 by Will Law (Akamai) + Suhas Nandakumar (Cisco) — first MSF revision in 134 days; draft-einarsson-moq-locmaf-00 SUBMITTED June 2 by Torbjörn Einarsson (Eyevinn) + Hugo Björs (KTH); transport-18 Day +22, loc-02, secure-objects-00 (PR #88 stages content for -01, no submission), privacy-pass-02, cmsf-00 unchanged.
  • Interop runner: New report 2026-06-03 00:56:06 UTC: 177 / 57 / 119 / 1 (+6 pass vs June 2, 32.2%, new May+June high; 16-day cadence streak).
  • MoQ Monthly: No new issue since #2 May 31 (Day +3).
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: drafts/moq-msf.md (June 3: -01 PUBLISHED June 2, 134-day saga closes), drafts/moq-locmaf.md (NEW PAGE — individual draft by Tobbe + Hugo Björs), drafts/moq-cmsf.md (PR #21 merged with MSF -01 reference bump), drafts/moq-transport.md (PR #1642 Joining-Fetch replacement, Issues 1643), implementations/moq-dev.md (June 3 burst: /health endpoint, moq-lite-05 wire features, MPEG-TS fMP4 close-out), implementations/openmoq.md (TimEvens emerges as new external contributor), interop/interop-runner.md (June 3 report 177/57/119/1, +6 pass new high), discussions/discussions-2026-06.md (June 3 section), index.md (MSF version bump to draft-01, add LOCMAF entry, last_updated bump), log.md (this entry).

Key findings:

  • MSF -01 finally publishes after 5-day slippage saga ending wilaw’s May 27 Slack “Friday” pledge from Day +130 → Day +134 → June 2. Cumulative wilaw MSF events May 24-Jun 2 = 18 including 6 sprint PRs MERGED, 1 final clean-up PR (#176), and the -01 xml2rfc submission itself. The 134-day -00 → -01 cadence sets MSF’s publication tempo as ~4 months per revision, slower than moq-transport (49 days from -17 → -18) but consistent with MSF being a packaging-format spec rather than wire-protocol spec. London Day-2 35-min MSF/CMSF slot now has both anchor docs in current state: MSF -01 published, CMSF main updated against MSF -01 normative reference via PR #21.
  • LOCMAF debut by the wiki user. Torbjörn Einarsson + Hugo Björs publish draft-einarsson-moq-locmaf-00 June 2 with title “Low Overhead CMAF for Media over QUIC (LOCMAF)” — compact wire format carrying CMAF chunk metadata as tagged fields while preserving sample data unchanged, receiver reconstructs functionally-equivalent CMAF chunks suitable for MSE/EME playback pipelines. Slots into the LOC vs CMSF design space: LOC strips CMAF overhead but loses MSE/EME compatibility; CMSF keeps CMAF semantics at full chunk size; LOCMAF aims for the middle — compact-fMP4 carrier the player reconstructs to a CMAF chunk in browser memory before handing to MSE. First IETF artifact from the wiki maintainer, completes the wiki’s coverage of individual drafts in the loc- family alongside LOC (WG) + compressed-mp4 (mzanaty individual) + LOC media-interop (individual, expired Apr 23).
  • afrind’s PR #1642 fundamentally restructures MOQT’s past-object retrieval. Joining Fetch (introduced draft-15) is removed entirely; SUBSCRIBE’s existing filter-type field is overloaded with new fill filter types so the publisher opens a single FETCH_HEADER reusing the subscription’s Request ID for past objects, delivering current and future via subscribe subgroups/datagrams. The redesign replaces ianswett’s PR #1627 (OPEN since May 3, 30 days) — afrind opens #1642 June 2 17:01 UTC; ianswett auto-CLOSES #1627 June 3 00:16 UTC. The architectural simplification (one filter dimension instead of two request types) and the FillDescending group order (descending for fill, ascending for subscribe) both directly answer ianswett’s Issue #1614 “(JOINING) FETCH + SUBSCRIBE prioritization”. London Day-1 0900-1045 MOQT Issues 180-min slot now has three concurrent normative-text deliverables (PR #1642 fill, PR #1640 EXPIRES, PR #1638 DTS) plus 4 design-issue threads — the slot will need triage to fit all three PR-reviews into 3 hours.
  • TimEvens (Cisco) emerges as a new cross-repo contributor. TimEvens opens 2 openmoq/moqx PRs (#376 Debian bookworm CMake migration to CPM + #377 Apple Clang 21 fmt workaround) and 1 moq-wg/moq-transport issue (#1641 PUBLISH_DONE control-vs-request-stream wording) within ~18h June 2 06:19-23:42 UTC. Cisco’s surface area across MoQ now spans: Suhas Nandakumar (cmsf, msf, secure-objects, privacy-pass editorial; cloudflare/moq-rs PR #167 filter framework + PR #171 C4M AuthHook); Mo Zanaty (loc draft author, agenda contributions); now Tim Evens (transport draft-18 design + openmoq/moqx build-system hardening). 3rd cisco contributor reaching mainline moq-wg artifacts within May-June 2026.
  • moq-dev/moq’s /health endpoint is its first explicit production-CDN load-shedding feature. PR #1604 (+905/−5) adds an unauthenticated GET /health to moq-relay’s web server returning 200 ok or 503 overloaded with per-threshold breach lines. Configurable CPU/RAM percentages plus absolute throughput thresholds (rx / tx, unit-required so b = bits, B = bytes), Unix-only load-average flag. With no thresholds configured it’s a pure liveness probe. Pairs with PR #1571 May 31 (externalized --cluster-connect-api peer list) and PR #1574 (per-auth-root presence-based billing) — together: moq-dev/moq is now structurally a production CDN substrate with load-balancer integration, peer-list externalization, presence billing, and the moq-pro pattern (proprietary policy in moq-pro, agnostic substrate in OSS moq-dev/moq) consolidated.
  • moq-lite-05 wire spec maturing at pace. Counting from PR #1518 (Lite05Wip version variant May 27) the wire-feature additions are now: deflate compression (PR #1531 May 28), AnnounceOk (PR #1573 June 1), Frame Start to FETCH (PR #1595 June 3), TrackConsumer::fetch first-class single-group FETCH (PR #1601 OPEN), TRACK_INFO Track Stream 0x6 removing immutable props from SUBSCRIBE_OK (PR #1609 OPEN) — 5 wire features in 7 days, all gated on Lite05Wip so default ALPN/Versions don’t advertise. moq-lite-05 is structurally the most active wire-protocol evolution venue in the MoQ ecosystem, outpacing moq-transport draft-18 → draft-19 prep both in feature count and merge cadence.

2026-06-02 — DTS PR-against-transport-18 lands; 3 MSF PRs merge; moq-dev/moq MPEG-TS bridge + 14 merges; moq-rs PR #171 C4M; moq2ts MSFTS demonstrator; first draft-18 interop run

TL;DR:

  • wilaw opens moq-transport PR #1638 “Add Dynamic Track Switching (DTS)” June 1 11:06 UTC (+147/−0, fixes #259) — DTS lands as a PR-against-moq-transport-18 base spec per Cullen Jennings’s May 27 explicit preference over Magnus Westerlund’s separate-Internet-Draft proposal; the consensus-decided design from the May 26-Jun 4 mailing-list call now has concrete normative text staged for merge with new SWITCHING-SET-ASSIGNMENT parameter. Plus same day Issue #1639 + PR #1640 by martinduke extending EXPIRES to most request types — London Day-1 “MOQT Issues” slot now anchored by 2 normative-text deliverables (DTS + EXPIRES) plus 2 issue threads (bidi-stream-credit + request-blocking). MSF 3 PRs MERGED June 1 clearing the trailing editorial work: PR #159 catalog compression by suhasHere (fixes Vasil’s 21-day-old #144), PR #165 bitrate properties making sampleRate/channels/codec/width/height required (kixelated’s third schema-strengthening ask), PR #175 version-string-instead-of-number. MSF -01 still NOT submitted to Datatracker — Day +134, 5th consecutive day of slippage. mondain/moq2ts MSFTS demonstrator publicly announced on Slack by Paul Gregoire (created May 21, 9-commit June 1-2 surge to cross-platform CI build, linking against pinned moqxr SDK).
  • moq 14 merges + 6 OPEN June 1-2 clearing pre-London backlog incl. 3 long-pending PRs: PR #1587 OPEN moq-mux MPEG-TS import/export (+1548/−2, 15f, bridges to MPEG-2 TS, complements moq2ts MSFTS-conformant path), PR #1573 MERGED moq-lite-05 AnnounceOk (was OPEN), PR #1540 MERGED subscribe_track async (+1221/−632, OPEN 4 days), PR #1439 MERGED per-track timescale long-pending, PR #1513 MERGED qmux version mapping long-pending, PR #1581 MERGED unified —auth-api for moq-pro CDN dashboard. cloudflare/moq-rs PR #171 OPEN June 1 by suhasHere “Add pluggable AuthHook trait and C4M token authentication”concrete implementation of PR #169 design proposal (+2090/−15, 30f, 2 new crates moq-auth+moq-auth-cat); first concrete cross-impl auth implementation engagement after May 30 thibmeu review burst. Slack moq breaks 7-day silence with Martin Duke June 1 22:43 UTC asking if anyone wants draft-16 interop at London → Alan Frindell + Mike English confirm moxygen and moq-rs will have 14+16+partial-18 simultaneously; Mike: “I’m also feeling like 18+ might be where we finally start on proper multi-version support”.
  • Implementations: moq see above. moq-rs PR #171 C4M auth impl + PR #167 minor refresh. moq2ts (NEW PUBLIC REPO, C++) ~9 commits June 1-2 cross-platform CI + ffmpeg 8 + native AVCaptureSession + moqxr SDK link. moqxr 3 commits June 1 packaging publisher static library + picoquic/picotls bundle. moqx afrind 9-event June 1 sprint: 5-PR multi-thread stack OPEN (PR #361-#365) for threads > 1 production milestone + several merges including PR #371 bpf, PR #372 stop() idempotent, PR #373 perf, PR #374 UDP socket buffer config. quiche moqt breaks 5-day quiet with 2 martinduke commits (3b9d5450 parameter handling refactor + 0b92a8b4 FETCH stream LocationIsValid removal). moqtail, moq-js (PR #72 OPEN), imquic (PR #27 OPEN, last updated June 1 13:15), quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport all quiet.
  • Interop: 177 / 51 / 125 / 1 at 2026-06-02 00:50:22 UTCfirst run at new draft-18 target following PR #68 merge June 1 05:21 UTC. −3 pass vs June 1 (54 → 51, 30.5% → 28.8%, −1.7pp); skip 0 → 1; 15-day cadence (new longest streak). Version breakdown shifts to 0 at target · 0 ahead · 177 behind — no impl is registered with the runner as advertising draft-18 even though 3 impls have draft-18 main-branch code. Drift between runner-registered-version and impl-main-branch-version is now the visible structural gap (Martin Duke’s Slack question 4h later is the implementer-side response).

Operation: Update Sources:

  • Slack: #moq breaks 7-day silence with 5 messages June 1-2 (Paul Gregoire moq2ts announcement, Martin Duke draft-16 London poll, Alan Frindell + Mike English × 2 multi-version responses). #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos: moq-transport 4 events: PR #1638 DTS OPEN by wilaw (fixes #259), Issue #1639 + PR #1640 EXPIRES extension by martinduke, Issue #1519 vasilvv updated. moq-msf 3 PRs MERGED June 1 (#159 compression, #165 bitrate, #175 version-string) — last sprint PR lands; only #156 + #169 still OPEN. moq-wg/loc, cmsf, catalog-format, secure-objects, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 14 PRs MERGED + 6 OPEN June 1-2. Highlights: #1587 MPEG-TS import/export OPEN, #1573 AnnounceOk MERGED, #1540 subscribe_track async MERGED, #1439 per-track timescale MERGED, #1513 qmux version mapping MERGED, #1581 unified —auth-api MERGED, 1589 MERGED, #1583 external Opus DTX OPEN, 1592 OPEN.
    • cloudflare/moq-rs: PR #171 OPEN June 1 18:40 UTC suhasHere “Add pluggable AuthHook trait and C4M token authentication” (+2090/−15, 30 files); PR #167 updated June 2 06:02 UTC; PR 170 untouched.
    • video-dev/moq-js: quiet (PR #72 OPEN since May 26).
    • moqtail/moqtail, meetecho/imquic (PR #27 OPEN since May 25), moqxr mondain 3 commits SDK packaging, mondain/moq2ts NEW announcement + 9 commits, birneee/quiche_moq, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token: all quiet (Eyevinn).
    • openmoq/moqx: afrind 5-PR multi-thread stack OPEN (#361-#365), 5 PR MERGED (#360, #371, #372, #373, #374), 1 sync-bot moxygen merge (#369); paul-mondain PR 286 unchanged.
    • google/quiche (quiche/quic/moqt): 2 martinduke commits June 1 17:28-17:34 UTC (parameter handling refactor + FETCH stream LocationIsValid removal).
    • englishm/moq-interop-runner: New report 2026-06-02 00:50:22 UTC (first draft-18 target run); no new PRs.
  • Mailing list: NO new messages June 1 or 2 beyond the May 31 03:01 UTC Repository Activity Summary Bot weekly digest. Weekend → Monday silence extends into 4th day.
  • IETF Datatracker: No new revisions June 1 or 2. WG state: transport-18 (Day +21), msf-00 (Day +134 since -00, wilaw -01 still NOT submitted), loc-02, secure-objects-00, privacy-pass-02, cmsf-00.
  • Interop runner: New report 2026-06-02 00:50:22 UTC: 177 / 51 / 125 / 1 (first run at new draft-18 target, −3 pass vs June 1, 28.8% pass rate, 15-day cadence longest streak, 0 at target · 0 ahead · 177 behind reflects impl-registration drift).
  • MoQ Monthly: No new issue since #2 May 31 (Day +1).
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-06.md (NEW June 2 section), drafts/moq-msf.md (June 2 entry: 3 PR merges + Day +134 5th day slippage), drafts/moq-transport.md (June 2 entry: DTS PR #1638 + EXPIRES Issue/PR + 2 quiche moqt commits), drafts/moq-msfts.md (June 2 entry: moq2ts demonstrator + cross-impl MPEG-TS adjacency), implementations/moq-dev.md (June 2 entry: 14-merge burst + MPEG-TS bridge + long-pending merges), implementations/moq-rs.md (June 2 entry: PR #171 C4M implementation), implementations/openmoq.md (June 2 entry: afrind multi-thread sprint Day 4 + mondain SDK packaging), interop/interop-runner.md (June 2 first draft-18 target report 177/51/125/1), index.md (last_updated bump), log.md (this entry).

Key findings:

  • DTS lands as a PR-against-moq-transport-18 base spec — Cullen Jennings’s May 27 preference wins over Magnus Westerlund’s separate-Internet-Draft proposal. moq-transport PR #1638 (+147/−0, 1 file, fixes #259) by wilaw June 1 11:06 UTC adds Dynamic Track Switching directly to the base specification with a new SWITCHING-SET-ASSIGNMENT parameter. Heading into the June 4 consensus call close, the tally is 4 YES + 0 NO (Will Law / Cullen Jennings / Gwendal Simon / Yu You-Nokia / Ali Begen) with 3 of 4 SWITCH co-authors + Nokia implementation report — substantively decided 14 days before close. The PR’s structural choice (base-spec PR vs separate companion draft) matches Cullen’s preference and the implementer pattern (MOQtail + Nokia both implemented DTS as integrated transport feature). Carry-forward: London Day-1 0900-1045 “MOQT Issues” 180-min slot now structurally anchored around 2 normative-text deliverables (DTS PR #1638 + EXPIRES PR #1640) plus 2 issue threads (bidi-stream-credit Issue #1637 + request-blocking Issue #1519). Wider impact: the DTS PR-against-base-spec landing structurally breaks the precedent of “controversial features get their own RFC” — future MOQT features may follow the same path, which simplifies the dependency tree for impl conformance testing.
  • cloudflare/moq-rs PR #171 ships concrete C4M AuthHook implementation 4 days after thibmeu review burst — design vs implementation cleavage now visible. PR #171 by suhasHere (+2090/−15, 30 files) adds moq-auth + moq-auth-cat crates implementing PR #169’s AuthHook trait with C4M (CAT for MoQ) signature verification. Suhas advances from design proposal to working code with end-to-end test plans for both shared-secret and C4M auth modes. The thibmeu PR #169 review critiqued the trait surface for accommodating Privacy Pass challenge-reply (issuer-aware) — PR #171 does not yet address that pivot; Suhas ships the verify-callback shape and lets Privacy Pass adapt or extend later. PR #169 stays OPEN as design venue, PR #171 stays OPEN as concrete implementation to test against — first wiki-tracked example of explicit design-PR-vs-implementation-PR cleavage in MoQ. Cross-impl significance: moqx has been driving CAT token auth via PR #264 + PR #286 since May 1; cloudflare/moq-rs PR #171 is the second relay implementation of CAT auth under the C4M framing — structurally parallels rather than reuses openmoq/moqx’s pattern. Carry-forward: London Day-1 PRIVACY_PASS slot now has 2 concrete relay implementations (openmoq/moqx CAT + cloudflare/moq-rs C4M) plus thibmeu’s pending PrivacyPass critique on PR #169 = 3 vectors of auth-implementation experience.
  • First impl of MSFTS spec publicly announced — moq2ts + moq-dev/moq PR #1587 together = first cross-impl MPEG-TS substrate for MoQ. mondain/moq2ts (C++, created May 21 2026) publicly announced by Paul Gregoire on Slack June 1 19:43 UTC — first publicly-announced reference implementation of draft-gregoire-moq-msfts-00 which Paul co-authored. Same June 2 02:25 UTC window, moq-dev/moq PR #1587 opens MPEG-TS import/export for moq-mux via single mpeg2ts crate — two complementary MoQ-side MPEG-2 TS paths now exist (moq2ts MSFTS-spec-conformant + moq-dev/moq codec-agnostic via mpeg2ts crate). Carry-forward: with mondain/moqxr SDK packaging June 1 + moq2ts CI builds linking against it + moq-dev/moq PR #1587 import/export, MSFTS becomes the second concrete MoQ-side MPEG-2 TS path (after moqlivemock catalog work). London Day-2 35-min MSF/CMSF/MSFTS slot now has concrete reference impls to discuss.
  • First draft-18 interop run reveals impl-registration drift — 0 at target · 0 ahead · 177 behind despite 3 impls having draft-18 main code. June 2 00:50 UTC report (first after PR #68 merge) shows the matrix is now structurally ahead of every impl: no impl is registered with the runner as advertising draft-18 even though moq-dev/moq, mondain/moqxr, meetecho/imquic have draft-18 code in main. The −3 pass count (54 → 51) is the cost of recategorization, not regression — previously-passing draft-16↔draft-16 cells likely still pass; the “ahead-of-target” category (8 tests, all draft-17) shifts to “behind”. Carry-forward: only remaining structural lever is each impl updating its runner registration to advertise draft-18 (3 impls have the code, none have updated their registration). Same-day Slack response is the implementer-side answer: Martin Duke’s June 1 22:43 UTC question about draft-16 London interop confirms impls are intentionally maintaining 14+16+partial-18 simultaneously rather than rushing single-version migration. Mike English’s “I’m also feeling like 18+ might be where we finally start on proper multi-version support” signals a structural shift in impl strategy — until now MoQ impls tracked latest draft with best-effort migration; draft-18 may be the version where multi-version support becomes deliberate impl feature, not slow-migration side effect.
  • MSF -01 unfulfilled on Datatracker now in 5th consecutive day of slippage (Day +134 since -00) — but all editorial work is now complete with the June 1 3-PR merge wave (#159 compression, #165 bitrate, #175 version-string). Only the xml2rfc Datatracker submission remains. With London hackathon 7 days away, the London Day-2 35-min MSF/CMSF slot is structurally without an anchor normative artifact unless -01 lands in next ~3 business days. Carry-forward: the announced-but-unmet draft cadence is now a 5-day data point the wiki is tracking; if -01 doesn’t publish before London, the structural credibility cost on wilaw’s Slack-pledged release cadence widens further. The June 1 3-PR merge wave closes the loop on 3 long-standing MSF issues (Vasil V’s 21-day-old #144 compression, kixelated’s May 22 #164 mandatory-fields ask, the version-string interop debate from #163) all in one ~4-hour window — strong signal that the editor side is unblocking for submission rather than holding for further design work.

2026-06-01 — interop runner PR #68 draft-18 target bump MERGED; MoQ Monthly #2 published; moq-dev/moq cluster-mesh burst

TL;DR:

  • interop runner PR #68 “Update interop target to draft-18” MERGED June 1 05:21:25 UTC by englishm-cloudflare — 14 days after OPEN (May 18 21:01 UTC). First interop-target version bump since matrix inception and first matrix-shape change since PR #71 May 25 (moqx docker adapter). The June 1 00:49 UTC interop report still shows draft-16 as target (PR merged ~4.5h after report cut); June 2 will be the first run targeting draft-18. Three impls have been on draft-18 main 2-3 weeks (moq May 18, moqxr May 19-20, imquic May 20); the structural gap closes precisely 8 days before London.
  • MoQ Monthly #2 published May 31 by Mike English“A new draft, an industry town hall, and London next week”. Ends Day-+31 silence since #1 (Apr 30). Coverage: Draft-18 May 12, London interim June 9-12, Dan Rayburn town hall May 12, Streaming Tech Sweden May 21 (Vindral + SVT), Luke Curley’s “MoQ Boy” Game Boy demo, CacheFly + Red5 announce MoQ beta for summer 2026 (new ecosystem signal), 3 ACM MMSys 2026 papers from Özyeğin University, MPEG-2 TS + neural codec drafts, Jan Ozer overview, upcoming FOKUS Media Web Symposium (June 16-17) + CommCon (June 9-11) + RTC.ON (Sep 16-18).
  • moq cluster-mesh infrastructure burst May 31 17:51 UTC → June 1 03:20 UTC = 5 merges + 1 OPEN in ~12h, all kixelated. Externalizes cluster topology to operator-owned endpoint + deterministic FNV-1a route tie-break + per-auth-root billing + moq-lite-05 AnnounceOk wire feature. PR #1571 MERGED --cluster-connect-api polls operator’s HTTP endpoint or local file for peer list (+874/−150, breaking change to PR #1504’s --cluster-mesh). PR #1570 MERGED deterministic FNV-1a route tie-break — DefaultHasher not stable across Rust versions, mismatched binaries in rolling deploy must still converge. PR #1574 MERGED per-auth-root session counts for presence-based billing (idle authenticated sessions billable). PR #1573 OPEN moq-lite-05 AnnounceOk (second concrete moq-lite-05 wire feature after PR #1531 deflate) reports responder origin once + active: N count + initial-set boundary enables connect() to block until initial set landed. moq-pro pattern visible: externalize policy (routing endpoint in moq-pro), leave mechanism in OSS moq-dev/moq.
  • Implementations: moq see above + dependabot merges + #1575 chore-release closes #1557. moqx afrind PR #359 MERGED May 31 22:08 UTC “relay: fix shutdown hang when sessions hold lingering server refs” (+31/−0, 5f) — unique_ptr-owned IOThreadPoolExecutor + idempotent stop, completes May 28 PR #351 ownership model. Plus 2 sync-bot moxygen merges (PR #357 + #358). moqxr 2 commits June 1 by Paul Gregoire: ced45c85 cancellable publish_live_objects + c18924cc bound graceful flush — incremental shutdown polish. moq-rs quiet Day +2 since 8-thibmeu review burst May 30 (PR #169 AuthHook + PR #170 Manish draft-16 rewrite untouched). quiche moqt Day +2 silent. moqtail, moq-js (PR #72 still OPEN), imquic (PR #27 still OPEN), quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport all quiet.
  • Interop: 177 / 54 / 122 / 0 at 2026-06-01 00:49:16 UTC+2 pass vs May 31 (52 → 54, 29.4% → 30.5%, +1.1pp). First 30%+ pass rate since cadence recovery May 19. 14 consecutive days of daily reports (May 19-Jun 1), longest cadence streak the wiki has tracked. 5-day monotonic uptick continues (46 → 49 → 50 → 52 → 54 from May 28→Jun 1, +8 pass over 5 days). Target at report time still draft-16 but PR #68 MERGED ~4.5h after report cut; June 2 first draft-18 run.

Operation: Update Sources:

  • Slack: #moq, #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet May 31-Jun 1. Latest substantive messages remain afrind self-fetch (May 28) + Lorenzo moq-mi/LOC (May 27).
  • GitHub moq-wg repos: All quiet since May 31 06:00 UTC. moq-wg/msf: PRs 174 all MERGED previously; only PR #165 (bitrate properties) remains OPEN; MSF -01 still NOT published on Datatracker (Day +133 since -00). moq-wg/moq-transport: Issues #1637 + #1519 still OPEN. moq-wg/cmsf: Issue #122 zapping debate unresolved. moq-wg/secure-objects: PR #88 still OPEN. moq-wg/loc, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 5 merges + 1 OPEN May 31-Jun 1. #1569 dedup mesh dials MERGED 17:51 UTC; #1570 deterministic route tie-break MERGED 19:26 UTC; #1571 cluster-connect-api MERGED Jun 1 00:22 UTC; #1572 simplify polling onto HTTP cache MERGED 01:11 UTC; #1574 per-auth-root billing MERGED 03:20 UTC; #1573 moq-lite-05 AnnounceOk OPEN 02:47 UTC; #1575 chore release MERGED 03:47 UTC. Dependabot 1568 merged. #1540 subscribe_track async still OPEN.
    • openmoq/moqx: PR #359 shutdown hang fix MERGED May 31 22:08 UTC; PR #357 + #358 sync-bot moxygen MERGED.
    • mondain/moqxr: 2 commits Jun 1 by Paul Gregoire (cancellable + bounded graceful flush).
    • cloudflare/moq-rs, video-dev/moq-js, meetecho/imquic, moqtail/moqtail, birneee/quiche_moq, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token, englishm/moq-interop-runner (other than PR #68): All quiet.
    • google/quiche (quiche/quic/moqt): Day +2 silent.
  • Mailing list: 1 message May 31 03:01 UTCWeekly github digest from Repository Activity Summary Bot (auto-summary). No new substantive MoQ messages May 31-Jun 1. Weekend mailing-list silence into 3rd day.
  • IETF Datatracker: No new revisions May 31 or Jun 1. WG state: transport-18 (Day +20), msf-00 (Day +133 since -00, wilaw -01 still NOT submitted), loc-02, secure-objects-00 (PR #88 stages content for -01, no submission), privacy-pass-02, cmsf-00.
  • Interop runner: New report 2026-06-01 00:49:16 UTC: 177 / 54 / 122 / 0 (+2 pass vs May 31, 30.5% pass rate, 14-day cadence, 5-day monotonic uptick). PR #68 MERGED 05:21:25 UTC — draft-18 target bump.
  • MoQ Monthly: NEW issue #2 published May 31 (Day +31 since #1, cadence shortens from 58 → 31 days). Coverage: Draft-18, London June 9-12, Dan Rayburn town hall, Streaming Tech Sweden (Vindral+SVT), MoQ Boy, CacheFly+Red5 beta, ACM MMSys 2026 (Özyeğin), MPEG-2 TS + neural drafts, Jan Ozer overview, FOKUS/CommCon/RTC.ON.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-06.md (NEW file — June discussions month start), drafts/moq-msf.md (June 1 entry: Day +133 4th day slippage), implementations/moq-dev.md (June 1 entry: cluster-mesh burst with 1573), implementations/openmoq.md (June 1 entry: PR #359 shutdown hang fix + mondain/moqxr Paul Gregoire commits), interop/interop-runner.md (June 1 177/54/122/0 callout + PR #68 MERGED draft-18 target bump), index.md (last_updated bump + add discussions-2026-06 entry), log.md (this entry).

Key findings:

  • The June 1 05:21:25 UTC merge of interop runner PR #68 “Update interop target to draft-18” is the matrix-shape lever the wiki has been tracking since May 18 — 14 days OPEN → MERGED. The +1/−1 diff (a single config string change) sat in CI-gated limbo for 14 days while englishm-cloudflare worked through CI infrastructure issues (May 19 PR #69 per-test timeout fix → matrix cadence resumes; May 25 PR #71 moqx docker adapter; subsequent 13 daily reports). With the merge happening ~4.5h after the June 1 report cut, June 2 will be the first interop matrix run targeting draft-18. The “97 at target · 8 ahead · 72 behind” version breakdown under draft-16 will recompose under draft-18: impls on draft-18 main (moq, moqxr, imquic) become “at target”, draft-17 becomes “behind”, draft-16 becomes “behind”. Whether the net pass count moves up or down depends on whether the matrix harness counts cross-version pairings as expected-fail or genuine-fail. Carry-forward: PR #68’s merge exhausts the only matrix-shape lever the wiki was tracking before London; the next structural feature request is Mike’s May 27 Slack ask for streaming-format-level automated interop (MSF/CMSF/LOC matrix beyond wire-protocol), no implementation started. Wider impact: the structural gap between matrix-target draft-version and shipped-impl draft-versions that the wiki tracked May 18-Jun 1 has closed precisely 8 days before London hackathon (June 9), so London-week interop activity will exercise the same draft-18 protocol on both runner and implementations — the prerequisite for hackathon-time interop counts being directly comparable across impls.
  • MoQ Monthly #2 published May 31 ends the Day-+31 newsletter silence with London-cycle framing. The cadence shortens from 58 days (#0→#1) to 31 days (#1→#2), suggesting Mike English is reasserting per-IETF-interim publication cadence. The new ecosystem signal the wiki had not captured: CacheFly + Red5 MoQ beta announcement for summer 2026 (adds a 4th major CDN actor to the Cloudflare/Akamai/Fastly trio the wiki has been tracking). The retrospective coverage of Dan Rayburn town hall May 12, Streaming Tech Sweden (Vindral + SVT production implementations), and Luke’s MoQ Boy demo provides third-party validation of activity the wiki recorded in 2026-05 discussions. Carry-forward: with #2 published 8 days before London, the natural cadence puts #3 around June 30 (Day +30) covering London interim outcomes — assuming London catalyzes the cadence-shortening trend Mike is establishing.
  • moq-dev/moq cluster-mesh infrastructure burst makes the moq-pro pattern visible. The 5-merge May 31-Jun 1 wave (#1569 dedup mesh dials, #1570 deterministic FNV-1a tie-break, #1571 --cluster-connect-api, #1572 HTTP-cache simplification, #1574 per-auth-root billing) externalizes cluster topology to an operator-owned endpoint. PR #1571’s body is explicit: “The /cluster/connect endpoint itself (proprietary routing over the node inventory) lives in moq-pro”. This is the first public surfacing of the OSS-vs-commercial boundary in moq-dev/moq’s architecture: moq-dev/moq stays topology-agnostic (dials whatever hostnames the source returns); moq-pro owns the routing decisions. The deterministic FNV-1a tie-break (PR #1570) directly enables this split — under rolling deploys with mismatched binaries, every node must converge on the same route, and DefaultHasher explicitly is not stable across Rust versions. PR #1574’s per-auth-root session counting ({sessions, sessions_closed} mapping per auth root) enables presence-based billing of idle authenticated sessions — a SaaS-control-plane feature, not a protocol feature. Carry-forward: the moq-pro pattern (externalize policy via HTTP endpoint, leave mechanism in OSS substrate) is now a deployable architecture; combined with PR #1573’s moq-lite-05 AnnounceOk wire feature opening to gate the protocol behind a Lite05Wip version variant, moq-dev/moq has the dual-track shape of (a) OSS protocol substrate evolving under public PRs and (b) commercial routing/billing layer composed against it. Wider impact: moq-dev/moq becomes the first MoQ implementation to ship a clear OSS-vs-commercial architectural boundary while keeping the protocol substrate fully open; this is the structural pattern any future commercial MoQ deployment (CacheFly+Red5, Cloudflare’s moq-rs production work, etc.) will likely adopt or reject.
  • MSF -01 unfulfilled on Datatracker now in 4th consecutive day of slippage (Day +133 since -00). The editorial work has been complete since May 30 (PRs 174 all MERGED); only the xml2rfc Datatracker submission remains. With London hackathon 8 days away, the London Day-2 35-min MSF/CMSF slot is structurally without an anchor normative artifact unless -01 lands in the next ~3 business days. The interop runner PR #68 draft-18 target bump landing precisely now means the runner can exercise the draft-18 wire-protocol matrix, but MSF/CMSF/LOC media-format-level interop (Issue #32) still depends on the MSF -01 cut to anchor implementation choices. Carry-forward: if MSF -01 doesn’t publish before London, the structural credibility cost on wilaw’s Slack-pledged release cadence widens further — the announced-but-unmet draft cadence is now a 5-day-slippage data point the wiki is tracking. Wider impact: the moq-pro pattern observed in moq-dev/moq (PR #1571 splits proprietary policy from OSS mechanism) and the externalize-routing-to-endpoint approach is structurally analogous to MSF’s “keep the streaming format in IETF, leave the codec/container choices to implementations” design — both reflect the 2026 MoQ pattern of leaving normative envelope open and pushing implementation-specific choices into operator/vendor territory.
  • Interop matrix +2 pass to 54 with 5-day monotonic uptick (+8 pass over 5 days) lands at the same time as PR #68 draft-18 target bump. The trajectory 46 → 49 → 50 → 52 → 54 between May 28-Jun 1 shows the matrix has been steadily catching positives from moq-dev/moq’s May 27-31 refactor wave (cross-language smoke test phase 2 + libmoq auto-reconnect + Python/Swift/Kotlin/Go splits + IETF stats path fix + viewer atomics + cluster-mesh infrastructure). First 30%+ pass rate since cadence recovery May 19 crosses a notable psychological threshold ~30% (54/177). With the draft-18 target bump merged ~4.5h after the report cut, the June 2 report becomes the first composite signal of (a) implementation refactor wave + (b) target version bump in a single report — disentangling the two contributions to pass count will require subsequent runs to settle. Carry-forward: 14 consecutive days of daily cadence (May 19-Jun 1) is the longest streak the wiki has tracked; the matrix has been stable through ~75 PR/commit events across implementations during this window. With PR #68’s merge exhausting the structural levers and 8 days to London hackathon, the runner’s June 1-9 trajectory becomes the wiki’s primary signal for whether implementations are converging on draft-18 conformance pre-London.

2026-05-31 — moq-dev/moq polyglot-split day (Swift+Kotlin+Go follow Python within 24h); cloudflare/moq-rs AuthHook gets 8 thibmeu review comments; MSF -01 still unfulfilled Day +132; interop 52/124 13-day cadence 4-day uptick

TL;DR:

  • moq-dev/moq executes the May 30 Python-split template across Swift + Kotlin + Go in 24h — ~14 PRs. Python PR #1551 MERGED May 30 18:08 UTC → PR #1561 Swift split + Swift-native redesign (+1810/−489) MERGED May 31 02:47 UTC → PR #1562 Kotlin split (+704/−181) MERGED May 31 02:49 UTC → PR #1563 Go split + new ergonomic wrapper (+2333/−309) MERGED May 31 03:48 UTC. All 4 language splits ship two independently-versioned distributions (moq-ffi raw bindings + ergonomic wrapper) using language-native compatibility ranges (PEP 440 ~=, SPM .upToNextMinor, Maven [0.2,0.3), Go MVS) so wrappers float to newest bindings patch automatically. Plus PR #1554 ergonomic announced streams (Swift AsyncSequence + Kotlin Flow), PR #1559 moq-rs (Python) FFI parity gaps, PR #1560 wire session stats into IETF protocol path (closes long-standing gap: IETF connections silently contributed zero to dashboard/billing counters), PR #1553 count viewers as distinct per-session subscriptions, PR #1556 drop in-repo cross-language smoke test (moves to new moq-dev/smoke repo to test published artifacts not source builds). First multi-language FFI release architecture in any tracked MoQ implementation.
  • cloudflare/moq-rs PR #169 AuthHook breaks 2-day silence — 8 thibmeu review comments May 30 14:55-15:20 UTC. Thibault Meunier (Cloudflare privacy-pass author) delivers first substantive design engagement on the May 28 AuthHook trait design proposal: (1) trait surface might be limiting for Privacy Pass challenge reply (§3.4.5.1); (2) reference AUTHORIZATION_TOKEN parameter directly with Token Alias/Type/Value structure; (3) need upstream moqt spec issue; (4) decode-before-scope vs scope-before-challenge ordering matters for two distinct namespaces using two distinct issuers; (5) &[u8] over &str per privacy-pass-moq-auth which uses bytes; (6-8) use SETUP consistently per draft-18, mixed -16/-18 wording. Design wedge: thibmeu’s review forces AuthHook to accommodate issuer-aware challenge reply rather than pure verify-callback — splits “verifier hook” from “challenge protocol participant”. First cross-impl review pressure on englishm’s editorial pace since PR #167.
  • moq-wg/msf — MSF -01 still unfulfilled on Datatracker Day +132. No Datatracker submission May 30 or 31. PR #171 MERGED May 30 16:59 UTC by wilaw “Add optional parent namespace field to clone tracks” (+13/−3, fixes Issue #146 — auto-CLOSED 4 seconds later); wilaw cumulative MSF events May 24-31 = 17. Editorial work on main complete; only xml2rfc Datatracker submission remains. First announced-but-unmet draft cadence the wiki has tracked, now in its 3rd day of slippage. moq-wg/cmsf Issue #122 “initial text on zapping” attracts editorial debate May 30: Gwendal Simon 13:23 UTC argues PR over-explains simple HESP-style fast-switching mechanism; Suhas Nandakumar 21:43 UTC proposes appendix-section split — first cmsf editor-vs-contributor design pushback the wiki has tracked. moq-wg/moq-transport — afrind May 30 16:00:09 UTC reply on Issue #1519: “Most MOQT stacks don’t really offer direct application control of ‘send these two requests in the same QUIC packet’… Are we ok saying ‘this is mostly fine’ or do we need a MOQT mechanism to collect the related requests on the receiver side.” — surfaces stack-level design constraint, asks whether to add receiver-side request-coalescing.
  • Implementations: moq see above. moq-rs PR #169 AuthHook 8 thibmeu review comments; PR #170 (Manish draft-16 rewrite) quiet. moqx quiet Day +1 after afrind 3-day sprint — only 2 sync-bot moxygen merges (PR #355 + #356). 22-event May 27-29 sprint cumulative. quiche moqt 1 small commit e05dcf91 May 30 06:20 UTC ClangTidy fix; substantive draft-19 prep pauses. moqxr 21b791a8 Paul Gregoire May 30 21:46 UTC “Fix live object catalog ordering and stop wakeup” (+53/−7) — first commit since May 24. moqtail, moq-js (PR #72 still OPEN), imquic (PR #27 still OPEN), quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, englishm/moq-interop-runner all quiet.
  • Interop: 177 / 52 / 124 / 0 at 2026-05-31 00:47:05 UTC+2 pass vs May 30 (50 → 52, 28.2% → 29.4%, +1.2pp). 13 consecutive days of daily reports (May 19-31), longest cadence streak the wiki has tracked. Rolling 5-day band 46-52, trajectory 46 → 49 → 50 → 52 = 4-day monotonic uptick, new May high since cadence recovery. Target still draft-16 (PR #68 OPEN since May 18). London hackathon 9 days away.

Operation: Update Sources:

  • Slack: #moq no new top-level messages May 30-31. Lorenzo moq-mi/LOC thread + afrind self-fetch thread already covered. #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos:
    • moq-wg/msfPR #171 MERGED May 30 16:59:09 UTC (+13/−3, fixes Issue #146); only PR #165 (bitrate properties) remains OPEN. -01 still NOT published on Datatracker May 30 or May 31 UTC.
    • moq-wg/moq-transport — afrind comment May 30 16:00:09 UTC on Issue #1519. Issues #1637 + #1519 still OPEN with active design discussion.
    • moq-wg/cmsf — Issue #122 “initial text on zapping” Gwendal + Suhas comments May 30 13:23/21:43 UTC.
    • moq-wg/secure-objects — PR #88 (Suhas test vectors) still OPEN no new commits.
    • moq-wg/loc, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: ~14 PRs in 24h (most kixelated): #1561 Swift split MERGED, #1562 Kotlin split MERGED, #1563 Go split MERGED, #1559 Python FFI parity MERGED, #1554 announced streams MERGED, #1560 IETF stats MERGED, #1553 viewer-count atomics MERGED, #1556 drop in-repo smoke MERGED, #1564 cachix MERGED, #1558 libiconv scrub MERGED, #1552 libmoq announced MERGED, #1555 ci pin cachix MERGED, #1550 chore release MERGED. OPEN: #1557 release-plz moq-net v0.1.8.
    • cloudflare/moq-rs: 8 thibmeu review comments on PR #169 May 30 14:55-15:20 UTC. PR #170 quiet.
    • video-dev/moq-js: PR #72 still OPEN no new commits.
    • meetecho/imquic: PR #27 still OPEN no new commits.
    • openmoq/moqx: 2 sync-bot moxygen PRs (#355 + #356) MERGED, no afrind activity.
    • mondain/moqxr: 21b791a8 Paul Gregoire May 30 21:46 UTC.
    • google/quiche (quiche/quic/moqt): 1 commit e05dcf91 May 30 06:20 UTC ClangTidy fix.
    • moqtail/moqtail, birneee/quiche_moq, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token, englishm/moq-interop-runner: All quiet.
  • Mailing list: No new messages May 30 or 31. Latest archive entries remain Yu You (May 29 05:59) + Ali Begen (May 29 10:02). Weekend mailing-list silence.
  • IETF Datatracker: No new revisions May 30 or 31. WG state: transport-18 (Day +19), msf-00 (Day +132 since -00, wilaw -01 still NOT submitted), loc-02, secure-objects-00 (PR #88 stages content for -01, no submission), privacy-pass-02, cmsf-00.
  • Interop runner: New report 2026-05-31 00:47:05 UTC: 177 / 52 / 124 / 0 (+2 pass vs May 30, 29.4% pass rate, 13-day cadence, 4-day monotonic uptick).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +31 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-05.md (new “May 30 06:00 UTC → May 31 06:00 UTC” section), drafts/moq-msf.md (May 31 entry: -01 still unfulfilled Day +132, PR #171 MERGED), drafts/moq-transport.md (May 31 entry: afrind Issue #1519 comment), drafts/moq-cmsf.md (May 31 entry: Gwendal vs Suhas Issue #122 zapping debate), implementations/moq-dev.md (May 31 entry: polyglot-split day, Swift+Kotlin+Go follow Python within 24h, IETF stats path + viewer atomics), implementations/moq-rs.md (May 31 entry: 8 thibmeu review comments on PR #169 AuthHook), implementations/openmoq.md (May 31 entry: quiet Day +1 after sprint), interop/interop-runner.md (May 31 177/52/124/0 callout, 13-day cadence, 4-day monotonic uptick), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The May 30 → May 31 polyglot-split day is the template moment moq-dev/moq’s May 22-30 multi-language-binding sprint was building toward. PR #1551 OPEN May 30 05:12 UTC framed the Python split as “the repeatable pattern for Swift/Kotlin/Go to follow later”; within 24h kixelated executed exactly that: PR #1551 Python MERGED 18:08 UTC → PR #1561 Swift OPEN 19:44 UTC → PR #1562 Kotlin OPEN 19:53 UTC → PR #1563 Go OPEN 22:07 UTC → all three MERGED by May 31 03:48 UTC. 4 independently-versioned FFI distributions (moq-ffi raw + moq ergonomic wrapper) × 4 languages (Python/Swift/Kotlin/Go) = first multi-language FFI release architecture in any tracked MoQ implementation where ergonomic wrappers float to the latest bindings patch via language-native compatibility ranges (PEP 440 ~=, SPM .upToNextMinor, Maven [0.2,0.3), Go 0.2.x MVS). Carry-forward: with the polyglot-split-day pattern now codified across 4 languages and the in-repo cross-language smoke test moved to moq-dev/smoke (which installs published artifacts not source builds, so it catches missing wheels/stale Homebrew formulas/broken .debs/un-buildable Go modules), moq-dev/moq has produced a reproducible multi-language reference architecture for FFI-distributed protocol stacks that extends well beyond MoQ. Wider impact: PR #1560 “wire session stats into the IETF protocol path” fixed a pre-existing silent-undercount bug where IETF MoQT connections contributed zero to dashboard/billing counters — a structural observability gap that any other implementation deploying both moq-lite and IETF MoQT alongside each other likely also has. The fix surfaces only because moq-dev/moq runs both protocol paths on the same code.
  • cloudflare/moq-rs PR #169 AuthHook design proposal gets 8 thibmeu review comments — first cross-impl review pressure on englishm’s editorial pace since PR #167 May 11. Thibmeu’s review forces the trait surface to accommodate issuer-aware challenge reply rather than pure verify-callback — splits “verifier hook” from “challenge protocol participant”. The May 28 “intended as a shared reference for contributors working on PP and C4M implementations in parallel” framing now collides with the privacy-pass model’s bidirectional challenge requirement; the trait shape will likely need to grow to a state machine rather than a stateless verifier. Carry-forward: with London hackathon 9 days away, the AuthHook trait surface decisions are now actively contested — whether the trait becomes a pure verifier (CAT-friendly) or a challenge-protocol-aware abstraction (PrivacyPass-friendly) sets the implementation baseline for both auth efforts. Openmoq/moqx’s PR 286 CAT token integration is on a parallel track and afrind has stayed silent on the cloudflare/moq-rs AuthHook proposal so far. Wider impact: thibmeu (Cloudflare, privacy-pass-moq-auth-02 author) review-engaging on cloudflare/moq-rs PR (englishm-cloudflare) is first cross-impl review engagement by a non-Cloudflare-stewarded contributor since PR #167 even though both reviewers are Cloudflare employees — the review-cadence pressure for cloudflare/moq-rs design PRs is now bimodal (same-day for cloudflare engineers, multi-week for external contributors).
  • MSF -01 unfulfilled on Datatracker for 3rd consecutive day (May 29/30/31, Day +132 since -00) despite wilaw merging PR #171 parent-namespace May 30 16:59 UTC. Editorial work on main is complete (PR #166 typed-object initDataList, #167 targetBuffer, #168 catalog object numbering, #171 parent-namespace, #173 normative refs, #174 timestamp rounding — all MERGED); only the xml2rfc Datatracker submission remains. Plausible attribution: (a) wilaw is on a long weekend after the May 24-27 sprint and the May 29-30 follow-on; (b) the draft is being held for a coordinated multi-draft London-cycle drop (MSF + secure-objects + transport bidi-stream-credit issue + potential transport draft-19); (c) review feedback in a non-public channel is gating submission. Carry-forward: with London hackathon 9 days away and MSF -01 still off-schedule, the London Day-2 35-min MSF/CMSF slot is structurally without an anchor normative artifact unless -01 lands in next ~4 business days. The downstream Lorenzo/Mike English/Mo Zanaty interest in MSF-vs-LOC media-format-level interop (interop-runner Issue #32) needs the -01 cut to anchor implementation choices. Wider impact: wilaw’s May 27 Slack pledge slipping from May 29 → May 31+ without on-list explanation is the first announced-but-not-delivered draft date in MoQ WG history that the wiki has tracked; if the slippage extends into next week, the structural credibility cost on the Slack-pledged release cadence widens, even though the editorial work is demonstrably complete.
  • moq-wg/cmsf Issue #122 Gwendal vs Suhas editorial debate is the first cmsf editor-vs-contributor design pushback the wiki has tracked. Gwendal’s “over-explaining something that is quite simple in theory” framing is structurally analogous to his May 27 chair-rebuttal on SWITCH — challenges a published artifact’s framing rather than waiting for show-of-hands at interim. Suhas’s “may be an appendix section?” response proposes a structural normative-vs-informative split that resolves the over-engineering concern without removing the example content. Pattern: cmsf editorial control rests with Suhas (sole maintainer historically); Gwendal’s pushback comes from a contributor-not-editor seat. The Issue #122 resolution will shape the post-London editorial process: either Gwendal’s “simple in theory” framing wins and the PR shrinks to the bare HESP-style switching mechanism description, or Suhas’s appendix-section compromise lands and the example-heavy text moves to non-normative status. Carry-forward: zapping/fast-switching is now one of two open CMSF schema threads alongside emsg signaling (Issue #16 reactivated May 25); both are slot candidates for the London Day-2 35-min MSF/CMSF Will Law slot.
  • Interop 177/52/124/0 (+2 pass, 29.4%, 13-day cadence, 4-day monotonic uptick) sets a new May high since cadence recovery. Rolling 5-day trajectory 46 → 49 → 50 → 52 = 4-day monotonic uptick continues; matrix breaks above 50 pass for the second consecutive day. Plausibly attributable to moq-dev/moq’s polyglot-split-day ~14-PR wave shaking some test combinations stable: PR #1560 “wire session stats into the IETF protocol path” in particular fixes a silent undercount bug that may have been registering as “no data” cells; PR #1559 closes Python FFI parity gaps that could have caused test scaffolding to throw spurious errors. Carry-forward: 13 consecutive days of daily cadence (May 19-31) extends the longest streak the wiki has tracked; the 4-day monotonic uptick (46 → 52, +6 pass over 4 days) suggests moq-dev/moq’s refactor wave is shaking down to net-positive matrix impact rather than the wire-level-noise-sensitivity pattern observed earlier in May. Target still draft-16 (PR #68 OPEN since May 18, no commits since May 19); London hackathon 9 days away. PR #68’s draft-18 target bump remains the only outstanding matrix-shape lever before London, with the matrix now in a 50-52 pass band that any new wire-level refactor wave could swing within.

2026-05-30 — Ali Begen 4th explicit YES on SWITCH/DTS; MSF -01 wilaw “Friday” promise unfulfilled; martinduke bidi-stream-credit issue surfaces post-draft-18 design gap; moq-dev/moq cross-language smoke phase 2 (rust×python×js-browser passes)

TL;DR:

  • Mailing list — Ali C. Begen May 29 10:02:29 UTC Re: Consensus Call: DTS and SWITCH votes YES/YES on both SWITCH and DTS adoption + integration into MOQT draft, with note that he’d accept “a separate normative RFC … published together with the MOQT draft” if necessary; both features are complementary, “my team has already implemented both in MOQtail and plans to share implementation results with the working group”. 4th explicit on-list YES vote within 4 days after Will Law (May 26 Yes/Yes/Yes/Yes), Gwendal Simon (May 28 YES/YES + DTS reservations), Yu You/Nokia (May 29 YES/YES + measured benefit numbers); all 4 SWITCH co-authors and the only on-list implementation reporter from a non-co-author team (Nokia) have now publicly voted YES — June 4 close substantively decided.
  • MSF -01 wilaw “Friday” promise unfulfilled (so far): wilaw merged 2 more MSF PRs May 29 morning UTC (PR #173 normative refs MERGED 08:52 UTC + PR #174 timestamp rounding MERGED 11:12 UTC, both closing 2 issues #108 + #172) but datatracker still shows MSF -00 only at 06:00 UTC May 30 — Will Law’s May 27 Slack pledge to “release a new draft this Friday ahead of the London interop” did NOT materialize as a Datatracker submission on May 29; first announced-but-unmet draft publication cadence the wiki has tracked. Suhas Nandakumar moq-wg/secure-objects PR #88 OPEN May 30 03:26 UTC “Add test vectors appendix” (+326/−0) = first secure-objects content PR in weeks, signals draft-01 prep. Martin Duke moq-transport Issue #1637 OPEN May 29 22:30 UTC “What does MOQT do without bidi stream credit?” — surfaces a draft-18 design gap: REQUEST_BLOCKED was removed but PUBLISH_BLOCKED exists asymmetrically; “if both directions are blocked, who is responsible?“. Ian Swett 4 comments May 30 01:53-02:27 UTC on #1637 + #1519 advancing the ABR/blocked-request discussion — first martinduke design issue with engaged-multi-implementer thread within hours of opening.
  • Implementations: moq continues the burst — PR #1528 moq-rtc MERGED May 30 00:41 UTC (originally OPEN on May 28; the WebRTC↔MoQ bridge lands in main 36 hours after open), PR #1542 MERGED “test/browser: headless-browser smoke client (phase 2)” (+228/−5, 11f) — Playwright + nix-provisioned Chromium drives <moq-publish>/<moq-watch> against fake-camera H.264 WebCodecs encode/decode; full rust × python × js-browser cross-language matrix now passes both ways (3×3 = 9 cells), first browser-included cross-language interop harness in any tracked MoQ impl; PR #1544 MERGED “libmoq: auto-reconnect sessions; conducer-based Reconnect notifications” (+160/−42) = libmoq C consumers now get exponential-backoff reconnect with re-announced broadcasts + re-subscribed consumers automatically (closes Apr’s “single session that dies permanently” gap); PR #1551 OPEN May 30 05:12 UTC “py: split moq-ffi bindings from the ergonomic wrapper into two packages” (+2284/−1016, 133f) = architectural Python-release-flow change so moq-ffi (raw uniffi) + moq (pure-python wrapper) version independently via PEP 440 ~= 0.2.16 compatibility lock; documents the repeatable pattern for Swift/Kotlin/Go to follow. PR #1541 MERGED “moq-ffi: route Android logs to logcat” by Qizot (new external contributor) — first contribution from Qizot completes the iOS-Xcode/Android-Logcat platform-logging parity. PR #1546 MERGED libmoq terminal-callback lifetime contract for C consumers; PR #1547 MERGED kio: rename conducer crate to kio; PR #1548 MERGED stats: retain entries by liveness instead of tick window; PR #1549 MERGED go: ship moq.h + linux staticlibs so Go module builds for consumers; PR #1536 MERGED moq-net auto-create Origin on connect/accept; PR #1537 MERGED stats StatsConfig value type. moq-rsPR #170 OPEN May 29 07:09 UTC by itzmanish (Manish) “[Rewrite] Draft-16 migration” (+5289/−3115, 81 files) — fresh draft-16 rewrite; PR #131 (155-day-old previous attempt) CLOSED simultaneously by Manish himself with note “please use this branch instead of older #131 because that is not compatible with base branch”; Manish writes off 155 days of work to start over. moqx — afrind continues multi-thread sprint: PR #346 PublishOk NGR forwarding tests MERGED, PR #352 CrossExecFilter MERGED, PR #354 omoq-sync-bot moxygen 608fca6 MERGED. moqx CAT token PRs — Paul Mondain’s PR #264 (+1804/−11 opt-in CAT token authorization) + PR #286 (+179/−521 Catapult CWT integration) both still OPEN with continued commits May 30 04:48-05:47 UTC. quiche moqt quiet Day +1 since martinduke’s May 28 c4503a21/997d6543 “requests on bidi streams” prep commits — note Issue #1637 (bidi stream credit) appearing May 29 22:30 UTC is the design-discussion counterpart to the May 28 implementation prep, confirming “requests on bidi streams” as a structural draft-19 direction. moqtail, moq-js, imquic, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, englishm/moq-interop-runner all quiet.
  • Interop: 177 / 50 / 126 / 0 at 2026-05-30 00:43:27 UTC+1 pass vs May 29 (49 → 50, 27.7% → 28.2%, +0.5pp); 12 consecutive days of daily reports (May 19-30), extends the longest cadence streak the wiki has tracked. Rolling 5-day band 46-50, trajectory 48 → 46 → 49 → 50 = 3-day monotonic uptick, first time pass count crosses 50 since cadence recovery May 19. Target still draft-16 (PR #68 OPEN since May 18, no commits since May 19). London hackathon 10 days away.

Operation: Update Sources:

  • Slack: #moq no new top-level messages May 29-30. Thread continuations on Lorenzo moq-mi/LOC thread May 27 and afrind self-fetch thread May 28 already covered in May 29 wiki. #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos:
    • moq-wg/msf — 2 PRs MERGED + 2 issues CLOSED May 29: PR #173 (normative refs) MERGED 08:52 UTC + PR #174 (timestamp rounding) MERGED 11:12 UTC, closing Issues #172 + #108. PRs 122 still OPEN. wilaw’s announced MSF -01 publication on Datatracker did NOT materialize May 29.
    • moq-wg/moq-transport — Issue #1637 NEW May 29 22:30 UTC by martinduke (bidi stream credit), with 4 ianswett/martinduke comments through May 30 02:27 UTC; Issue #1519 ianswett ABR-approaches comment May 30 02:27 UTC.
    • moq-wg/secure-objects — PR #88 NEW May 30 03:26 UTC by suhasHere “Add test vectors appendix” (+326/−0 to draft-ietf-moq-secure-objects.md, 1 file).
    • moq-wg/cmsf — Issue #16 Gwendal comment May 29 06:50 UTC (suggests Event Timeline over emsg, “I was just notetaker”).
    • moq-wg/loc, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: ~15 merges + 3 OPEN May 29-30. Notable merges detailed above.
    • cloudflare/moq-rs: PR #170 OPEN May 29 07:09 UTC by itzmanish (Manish) “[Rewrite] Draft-16 migration” (+5289/−3115, 81 files); PR #131 (155 days old) CLOSED 07:09:54 UTC by Manish in favor of #170.
    • video-dev/moq-js: PR #72 still OPEN no new commits.
    • meetecho/imquic: PR #27 still OPEN (last updated May 29 17:44 UTC, Lorenzo thread reply).
    • moqtail/moqtail: No new commits since Ali Begen 3e9b788c May 25 18:52 UTC.
    • openmoq/moqx: afrind PR #346 + PR #352 MERGED + PR #354 sync-bot MERGED; mondain CAT token PRs 286 continued commits.
    • mondain/moqxr, birneee/quiche_moq, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token, englishm/moq-interop-runner: All quiet.
    • google/quiche (quiche/quic/moqt): Day +1 silent since 997d6543 May 28 21:51 UTC.
  • Mailing list: 1 substantive message May 29-30Ali C. Begen “Re: Consensus Call: DTS and SWITCH” May 29 10:02:29 UTC.
  • IETF Datatracker: No new revisions May 29 or 30. WG state: transport-18 (Day +18), msf-00 (wilaw’s announced -01 NOT yet submitted, Day +131 since -00), loc-02, secure-objects-00 (PR #88 stages content for -01), privacy-pass-02, cmsf-00.
  • Interop runner: New report 2026-05-30 00:43:27 UTC: 177 / 50 / 126 / 0 (+1 pass vs May 29, 28.2% pass rate, 12-day cadence).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +30 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-05.md (new “May 29 06:00 UTC → May 30 06:00 UTC” section), discussions/interim-meetings.md (May 30 note: Ali Begen 4th YES vote), drafts/moq-msf.md (May 30 entry: -01 publication promise unfulfilled), drafts/moq-secure-objects.md (May 30 entry: PR #88 test vectors), drafts/moq-transport.md (May 30 entry: Issue #1637 bidi stream credit), implementations/moq-dev.md (May 30 entry: cross-lang smoke phase 2 + libmoq auto-reconnect + python split + Qizot Android logcat + moq-rtc landed), implementations/moq-rs.md (May 30 entry: Manish PR #170 fresh draft-16 rewrite, PR #131 closed), implementations/openmoq.md (May 30 entry: afrind multi-thread sprint Day 3 + mondain CAT activity), interop/interop-runner.md (May 30 177/50/126/0 callout, 12-day cadence), index.md (last_updated bump), log.md (this entry).

Key findings:

  • Ali Begen’s May 29 YES/YES vote brings the public on-list tally to 4 explicit YES votes (Will Law May 26, Gwendal Simon May 28, Yu You/Nokia May 29, Ali Begen May 29) across the SWITCH and DTS adoption consensus calls — 6 days before the June 4 close. Notably, 3 of the 4 SWITCH co-authors (Will Law, Gwendal Simon, Ali Begen) and the only independent implementation reporter (Yu You/Nokia) have all voted YES; the only on-list dissent so far is Magnus Westerlund’s suggestion to move Track Filters / Top-N to a separate draft (Cullen rejected this May 27), and that’s a separate consensus call from SWITCH/DTS. Ali Begen’s footnote “my team has already implemented both [SWITCH and DTS] in MOQtail and plans to share implementation results” adds moqtail as a 6th SWITCH implementation (overlapping with Gwendal’s May 27 count of 4 because Ali is a SWITCH co-author, but distinct from Nokia/Yu You). Carry-forward: with 4 explicit YES votes, no on-list NO votes, and 2 implementation reports (Yu You/Nokia + Ali/moqtail), the June 4 close is substantively decided. Open question: whether SWITCH and DTS land as a PR against moq-transport-18 (Cullen’s May 27 preference) or as a separate companion RFC (Ali Begen’s May 29 “if necessary” framing). The chair (Martin Duke) has not yet posted a position on the integration question since his May 26 “Thoughts on SWITCH” technical analysis. Wider impact: the WG’s running-code-as-vote pattern now has 2 measured-benefit reports in 24h driving the consensus call, replacing the prior “carry to interim → show-of-hands → close after weeks” cadence.
  • MSF -01 publication NOT materializing on Datatracker May 29 despite wilaw’s Slack “this Friday” pledge is the first announced-but-unmet draft cadence the wiki has tracked. wilaw merged 2 more cleanup PRs (#173 normative refs + #174 timestamp rounding) on May 29 morning UTC and closed 2 issues, suggesting the editorial work was completed — but neither the xml2rfc submission to Datatracker nor a @-mention back to the Lorenzo thread / interop runner Issue #32 announced -01 by EOD May 29 UTC. Plausible causes: (a) wilaw discovered last-minute issues that delayed submission; (b) “Friday” was meant as US-Pacific-evening cutoff which extends into May 30 UTC; (c) the draft was held to coincide with secure-objects PR #88 + transport Issue #1637 ripening for a coordinated London-cycle drop. Carry-forward: with London hackathon 10 days away and MSF -01 now off-schedule, the London Day-2 35-min MSF/CMSF slot loses its anchor normative artifact unless -01 lands in the next ~5 business days. The downstream Lorenzo / Mike English / Mo Zanaty interest in MSF-vs-LOC media-format-level interop (Issue #32) needs the -01 cut to anchor implementation choices. Wider impact: if MSF -01 doesn’t publish before London, wilaw faces a structural credibility-cost on the Slack-pledged release cadence — the first announced-but-not-delivered draft date in MoQ WG history that the wiki has observed.
  • Martin Duke’s Issue #1637 “What does MOQT do without bidi stream credit?” May 29 22:30 UTC is the design-discussion counterpart to his May 28 google/quiche moqt “requests on bidi streams” prep commits (c4503a21 + 997d6543) — the implementation work and the design issue are now publicly paired by the same author within 24 hours. Issue #1637’s 4-comment thread (martinduke 2 + ianswett 2) within 4 hours surfaces the asymmetry REQUEST_BLOCKED removed in draft-18 vs PUBLISH_BLOCKED retained is unworkable for the bidi-stream credit case — “if both directions are blocked, who is responsible for finally opening it?”; ianswett’s “create a new MoQT session” suggestion is unprecedented for streaming-pattern protocols. Carry-forward: combined with Issue #1519 vasilvv “Improve design of requests blocking on other requests” (open since March 2 with new ianswett ABR-approaches comment May 30 02:27 UTC), MOQT’s request-message-on-bidi-stream design space is opening for draft-19 — the chair-as-implementer dual role gives Martin Duke a structural advantage to drive both the C++ implementation refactor and the spec issue simultaneously. Wider impact: London Day-1 0900-1045 “MOQT Issues” 180-min slot is now structurally anchored around bidi-stream-credit + request-blocking design, with #1637 + #1519 as the two open issues to resolve.
  • moq-dev/moq cross-language smoke phase 2 May 29-30 completes the 3×3 rust × python × js-browser interop matrix via Playwright + nix-provisioned Chromium driving the real <moq-publish> / <moq-watch> web components against a fake-camera H.264 WebCodecs pipeline — first browser-included cross-language interop harness in any tracked MoQ implementation. Combined with PR #1544 libmoq auto-reconnect (exponential backoff + automatic re-announce + re-subscribe), PR #1551 Python split (architectural change to PyPI release flow so moq-ffi raw uniffi + moq ergonomic wrapper version independently via PEP 440), and PR #1541 Qizot Android logcat (first contribution from new external contributor closing the iOS-Xcode/Android-Logcat platform-logging parity gap), moq-dev/moq’s London pitch is now structurally complete with 6-language coverage + 9-channel distribution + WebRTC↔MoQ bridge + full cross-language CI harness + libmoq production-grade auto-reconnect. Carry-forward: the headless-browser phase-2 smoke client is the foundational infrastructure for browser+native cross-impl interop tests at London — once additional impls expose comparable smoke harnesses, the moq-dev/moq Playwright runner can be extended to cover them. Wider impact: the explicit “this is the pattern Swift/Kotlin/Go should follow” framing in PR #1551 positions moq-dev/moq’s release infrastructure as a multi-language reference architecture for FFI-distributed protocol implementations beyond MoQ.
  • cloudflare/moq-rs PR #131 (155-day-old draft-16 attempt) CLOSED by Manish himself May 29 07:09:54 UTC in favor of fresh PR #170 (+5289/−3115, 81 files) — Manish writes off 155 days of work to start over with a larger rewrite. The new PR notes: “please use this branch instead of older #131 because that is not compatible with base branch.” Combined with video-dev/moq-js PR #72 (Manish’s +11205/−22195 refactor still OPEN since May 26), Manish is now driving both Cloudflare-stewarded TypeScript/Rust stacks as essentially “from-scratch” rewrites within the same week. Carry-forward: if PR #170 ships before London, cloudflare/moq-rs gets its first draft-16 (still 2 drafts behind transport-18) baseline merged by an external contributor whose original attempt (PR #121) took 155 days. Wider impact: the external-contributor-rewrites-twice pattern is structurally different from the corporate-contributor pattern at moq-dev/moq (kixelated owns the main branch and merges his own work in hours) — cloudflare/moq-rs’s PR-merge cadence for external contributors is now visibly bimodal: same-day for Cloudflare staff, multi-month for external.

2026-05-29 — Nokia 5th SWITCH implementer; kixelated ~25-PR single-day burst (moq-rtc WebRTC bridge + lite-05 deflate); quiche moqt breaks 8-day silence

TL;DR:

  • Mailing list 2 messages = Nokia becomes 5th independent SWITCH implementer. Gwendal Simon May 28 14:08:56 UTC Re: Consensus Call: DTS and SWITCH votes YES on DTS adoption with scope reservations (lacks normative bandwidth-measurement guidance, requires relays to fetch all renditions while forwarding one which “moves away from the lightweight, stateless, horizontally scalable model needed for CDN deployment”; advocates “focused, proportionate PR” not full chapter) + YES/YES on SWITCH (real OTT operational need; current 4-message switching insufficient; aligns with charter on rate adaptation + selection of desired encoding; no objection demonstrates concrete harm). Yu You (Nokia) May 29 05:59:04 UTC reports Nokia implemented SWITCH PR #1378 with positive results: “the first object arrival time significantly reduced compared to naive track re-subscription, and catch-up objects using fetch headers over separate unistreams functioned as intended”; YES/YES on both SWITCH and DTS adoption + integration into MOQT draft. Nokia = 5th independent team (after Gwendal’s May 27 count of 4) — first on-list implementation report providing measured benefit numbers, 6 days before June 4 close.
  • #moq Slack — Will Law answers Lorenzo May 27 10:30 UTC (the May 27 thread continued post-prior-cut): “LOC is just a packaging format, so if you want to transmit media, then you should use MSF (MOQT Streaming Format). There is a -00 draft in the ID repo, however its old and we have a bunch of new features. I plan to release a new draft this Friday ahead of the London interop. For a preview, you can view https://moq-wg.github.io/msf/draft-ietf-moq-msf.htmlannounces MSF -01 will publish today May 29 (Friday) before London, converting the wilaw 16-events-in-4-days editorial sprint into a normative artifact (first MSF revision since -00 published Jan 19 2026, 130 days). Lorenzo confirms imquic PR #27 already uses MSF for catalog. Mike English asks for streaming-format level automated interop (interop-runner Issue #32). Alan Frindell suggests Jordi Cenzano moves moq-encoder-player off moqmi; Lorenzo notes encoder-player is still stuck on v14. afrind self-fetch thread continues: Lorenzo “content is content”, Suhas asks usecase, afrind “if we allow [self-subscribe], allowing the other seems right… you can cheat to prime the cache?” — useful for relay-cache testing scaffolding.
  • Implementations: moq — kixelated ~25-PR single-day burst May 28 ~14:00 UTC → May 29 ~05:00 UTC (largest single-day push by single contributor the wiki has tracked). Headline: PR #1528 OPEN “moq-rtc: WebRTC (WHIP/WHEP) gateway, both ingest and egress” (+2590/−17, 30 files) — new rs/moq-rtc crate via str0m 0.19 with 2×2 matrix (server/client × publish/subscribe), Opus/H.264/VP8/VP9 codec support — first WebRTC↔MoQ bridge in any tracked MoQ implementation, unlocks OBS/browser/camera-vendor ingest via WHIP and last-mile distribution via WHEP without custom MoQ clients. PR #1531 MERGED “lite-05: negotiate per-frame compression via SUBSCRIBE_OK (Rust + JS)” (+790/−113) — first concrete moq-lite-05 wire feature since PR #1518 reserved the version variant: opt-in raw DEFLATE per-frame compression negotiated via new Compression codec field in SUBSCRIBE_OK, hop-by-hop not end-to-end, backwards compatible (lite-04 always negotiates None); pure Rust flate2/miniz_oxide and browser CompressionStream "deflate-raw" produce identical bytes; 16 MiB inflated-size cap rejects zip bombs. PR #1530 OPEN “add REANNOUNCE; AnnounceConsumer yields (path, Announced)” (+716/−252) — implements moq-dev/drafts#23 atomic broadcast replacement (ANNOUNCE status 2) so backup promotion + shorter-hop-path arrival surface as single Reannounce delivery rather than Ended-then-Active pair; IETF moq-transport splits to namespace_done+namespace. PR #1529 MERGED “moq-ffi: streaming media import + cross-language interop smoke test” (+535/−7) — adds BroadcastProducer.publish_media_stream(format) so publisher can pipe encoder stdin straight in without manifest/NAL-splitting, plus just test smoke orchestrator running 2×2 rust↔python H.264 publisher/subscriber combinations + negative control. Plus 20+ more merges/opens: #1487 moq-mux catalog filter/Annex-B (+1766/−109), #1514 moq-net linger upstream subscriptions across consumer churn (+725/−164), #1517 moq-net gzipped stats broadcast (+1092/−718), #1521 moq-net 16 MiB cap, #1522 docs route breaking changes to dev branch, #1523 moq-relay stop downgrading WS clients to lite-02, #1524 moq-gst /nix/store leak check, #1525 js/net timeout SUBSCRIBE_OK, #1526 swift+kt re-export FFI + session.shutdown, #1434 split OriginConsumer into cheap read handle + announcement cursor (opened May 21), #1495 moq-mux thiserror, #1473 moq-net runtime Timescale/Timestamp, #1533 libmoq catalog producer + raw moq-net track API, 1538 nixfmt + linger test fix, #1535 moq-relay scope mTLS grants to URL path, #1537 stats StatsConfig type, #1539 js version bump; OPEN: #1527 advertise both qmux drafts on WS fallback, #1532 duration-based jitter buffer skipping, #1536 moq-ffi auto-create Origin, #1540 moq-net subscribe_track async, #1513 still-open qmux version map. moqx — afrind multi-thread sprint continues: PR #348 res→reply coroutine MERGED, #349 TSan MERGED, #350 cBPF reuseport MERGED, #351 IOThreadPoolExecutor MERGED, #337 mvfst recvmmsg + batch 64 MERGED, #353 omoq-sync-bot moxygen 059ed9e MERGED, #352 CrossExecFilter OPEN, #346 PublishOk NGR tests OPEN, #331 relay_thread config OPEN. quiche moqt breaks 8-day silence — martinduke 2 commits May 28: c4503a21 19:59:40 UTC “Move IncomingDataStream to moqt_uni_stream.h. Other preparatory changes for requests on bidi streams” + 997d6543 21:52:27 UTC “Move Incoming Subscribe tests out of MoqtSessionTest”. The “requests on bidi streams” note is significant — preparatory work for a future draft direction (post-draft-18) where SUBSCRIBE-class messages move from the single control stream onto per-request bidi streams. moq-rs PR #169 AuthHook design still OPEN no new comments. moq-js PR #72 Manish refactor still OPEN no new commits. imquic PR #27 still OPEN. moqtail, moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, englishm/moq-interop-runner all quiet.
  • Interop: 177 / 49 / 127 / 0 at 2026-05-29 00:47:39 UTC+3 pass vs May 28 (46 → 49, pass rate 26.0% → 27.7%, +1.7pp). 11 consecutive days of daily reports (May 19-29) — extends the first double-digit cadence streak by one day. Rolling 5-day band 46-49, recent trajectory 48 → 46 → 49 = matrix rebounds past May 27 peak. Target still draft-16 (PR #68 OPEN since May 18, no commits since May 19; three impls on draft-18 main). Version breakdown: 97 at target · 8 ahead · 72 behind. London hackathon 11 days away.

Operation: Update Sources:

  • Slack: #moq thread continuations (Lorenzo moq-mi-vs-LOC thread = Will Law + Mike English + Alan Frindell replies; Alan Frindell self-fetch thread = Lorenzo + Suhas + afrind replies). No new top-level messages May 28-29.
  • GitHub moq-wg repos:
    • moq-wg/msf — PR 165 still OPEN, no new commits May 28-29 (latest commit be8da356 Will Law May 27 20:22 UTC = PR #167 merge). wilaw Slack-announced MSF -01 draft publishes today May 29 (Friday) for London.
    • moq-wg/moq-transport — PR #1378 (SWITCH) updated May 28 11:58 UTC (Yu You agreement comment supporting same SETUP-shared control stream design as Gwendal). Issue #1636 no new comments.
    • moq-wg/cmsf, loc, secure-objects, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: ~25 PRs / merges + opens May 28-29 (kixelated). Largest single-day push by single contributor tracked. Headline merges + opens detailed above.
    • cloudflare/moq-rs: PR #169 AuthHook design still OPEN no new comments since May 28 03:58 UTC.
    • video-dev/moq-js: PR #72 still OPEN no new commits.
    • meetecho/imquic: PR #27 still OPEN no new commits May 28-29 (last updated May 28 17:00 UTC).
    • openmoq/moqx: afrind multi-thread sprint Day 2 — 6 MERGED (#337, 348-351, #353 bot) + 3 OPEN (#346, #352, #331).
    • google/quiche (quiche/quic/moqt): 8-day silence breaks with 2 martinduke commits May 28 (c4503a21 + 997d6543) — preparatory refactoring for “requests on bidi streams” (post-draft-18 direction).
    • moqtail/moqtail, birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token, englishm/moq-interop-runner: All quiet.
  • Mailing list: 2 substantive messages May 28-29Gwendal Simon “Re: Consensus Call: DTS and SWITCH” May 28 14:08:56 UTC (YES/YES on SWITCH with DTS reservations) + Yu You (Nokia) “Re: Consensus Call: DTS and SWITCH” May 29 05:59:04 UTC (Nokia implementation report + YES/YES on both).
  • IETF Datatracker: No new revisions May 28 or 29 yet. WG state: transport-18 (Day +17), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. wilaw-announced MSF -01 publication targeted today May 29 ahead of London.
  • Interop runner: New report 2026-05-29 00:47:39 UTC: 177 / 49 / 127 / 0 (+3 pass vs May 28, 27.7% pass rate, 11-day cadence).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +29 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-05.md (new “May 28 06:00 UTC → May 29 06:00 UTC” section), discussions/interim-meetings.md (May 29 note: Gwendal vote + Yu You Nokia implementation report), drafts/moq-msf.md (May 29 entry: wilaw Slack-announces MSF -01 publication today), implementations/moq-dev.md (May 29 entry: ~25-PR burst with moq-rtc + lite-05 compression + REANNOUNCE), implementations/openmoq.md (May 29 entry: afrind multi-thread sprint Day 2), implementations/moq-rs.md (May 29 quiet note), implementations/moq-js.md (May 29 quiet note), implementations/imquic.md (May 29 entry: thread continuations), interop/interop-runner.md (May 29 177/49/127/0 callout, 11-day cadence), index.md (last_updated bump), log.md (this entry).

Key findings:

  • Yu You’s Nokia SWITCH implementation report May 29 05:59:04 UTC is the first on-list implementation report providing measured benefit numbers for SWITCH“the first object arrival time significantly reduced compared to naive track re-subscription, and catch-up objects using fetch headers over separate unistreams functioned as intended”. Combined with Gwendal’s May 27 count of 4 teams already implementing/exploring SWITCH, Nokia becomes the 5th independent team. The implementation evidence shifts the June 4 consensus call from architectural debate to measured deployment readiness — Yu You’s vote of YES/YES on both adoption + integration with concrete catch-up-unistream functioning report carries more weight than Cisco’s Cullen Jennings procedural objection or Martin Duke’s chair-neutral “trade-off analysis is correct” posture. Carry-forward: with Gwendal’s May 28 14:08:56 UTC reservations-on-DTS-not-on-SWITCH posture, Will Law’s May 26 Yes/Yes/Yes/Yes vote, and Nokia’s May 29 Yes/Yes + implementation report, the public vote tally favors SWITCH adoption with integration into the main MOQT draft. The June 4 close is now substantively decided ahead of the formal deadline. Wider impact: the moq-wg’s consensus-call pattern of “publish PR + open consensus call + interim show-of-hands + close after weeks” is structurally being supplemented by public implementation evidence on-list — the WG’s preference for running-code-as-vote moves implementation reports from “carry to interim” status to “post on list before close” status, accelerating decision cycles.
  • kixelated’s ~25-PR single-day burst May 28-29 is the largest single-day push by any single contributor the wiki has tracked across any MoQ implementation — exceeds afrind’s 13-event May 27 openmoq/moqx single-day burst (which itself exceeded kixelated’s overnight ~17-PR waves spanning 8+ hours; afrind’s 13 within ~6h; kixelated’s May 28-29 ~25 within ~15h). The PR theme cluster reveals structural completion of moq-dev/moq’s London pitch: (1) moq-rtc = first WebRTC↔MoQ bridge → unlocks OBS/camera-vendor ingest and last-mile WHEP distribution → completes the “MoQ as plumbing for existing WebRTC ecosystems” deployment story; (2) lite-05 deflate = first concrete moq-lite-05 wire feature → demonstrates the May 27 PR #1518 Lite05Wip unadvertised version variant works as intended (features land gated without wire exposure); (3) REANNOUNCE = atomic broadcast replacement → operationally important for relay failover + upstream restart + shorter-hop-path arrival without subscriber-visible gaps; (4) moq-ffi streaming media import + cross-language smoke test = first cross-language interop validation harness inside the repo, complementing the just test smoke rust↔python 2×2 matrix already passing. Carry-forward: combined with the May 22-25 packaging story (Homebrew + .deb + .rpm) + May 24 cluster-discovery + May 26 preferred_address + May 27 qmux version mapping + May 28 mTLS path scoping + May 29 moq-rtc + lite-05 compression + REANNOUNCE, moq-dev/moq’s London pitch is now “single-tree polyglot full-stack production-grade MoQ deployment” — exceeds any other tracked implementation’s deployment-readiness story by structural margin. Wider impact: with London 11 days away and moq-dev/moq shipping a WebRTC bridge as a single-day PR, the “MoQ replaces WebRTC” framing Luke Curley pushed in the May 9 HN flame war converts to “MoQ ingests-from + serves-to WebRTC peers” — narrower, more operationally tractable, and immediately deployable against any WHIP/WHEP-compliant peer.
  • google/quiche moqt 8-day silence breaks with martinduke’s two May 28 commits preparing “requests on bidi streams”c4503a21 “Move IncomingDataStream to moqt_uni_stream.h. Other preparatory changes for requests on bidi streams” + 997d6543 “Move Incoming Subscribe tests out of MoqtSessionTest”. The commit message’s explicit “requests on bidi streams” note signals a structural direction for draft-19 (or a later draft): moving SUBSCRIBE-class messages from the single control stream (current draft-18 design) onto per-request bidirectional QUIC streams. This would echo the H/3 “every request is a bidi stream” model rather than the current H/2-multiplex-over-single-control-stream model. Carry-forward: with the May 28 commit theme already preparing this refactor in the chair-led C++ implementation, draft-19 is likely to surface this as a major redesign topic at London or at the June 22 interim. Martin Duke wearing both chair and quiche-moqt-implementer hats means the implementation precedes formal spec proposal — same pattern as wilaw’s MSF-spec-and-PRs editorial control and afrind’s openmoq/moqx multi-thread sprint preceding the London Day-1 MOQT Issues slot. Wider impact: SUBSCRIBE-on-bidi-streams would resolve the long-standing head-of-line-blocking concern on the control stream (currently every SUBSCRIBE waits behind every other in-flight control message); cost is per-subscription QUIC stream-table overhead and reduced batching. The fact that the chair is preparing the C++ implementation before publishing a draft proposal suggests this is not a hypothetical — London discussion is likely.
  • wilaw’s Slack-announced MSF -01 publication “this Friday” = May 29 today is the first announced draft revision since wilaw’s 16-events-in-4-days editorial sprint May 24-27. Converts the editorial sprint into a normative artifact: PR #166 typed-object initDataList + PR #167 targetBuffer + PR #168 catalog object numbering + PR #173 normative refs update will land in -01. Open PRs not yet merged (#171 parent-namespace, #174 timestamp rounding, #165 bitrate properties) may or may not make -01 depending on cut. Carry-forward: MSF -01 publication today provides the first concrete spec artifact for the London Day-2 35-min MSF/CMSF slot; combined with Tobbe’s three remaining Issue #153 points (per-language lang override + Safari/FairPlay AVC1-vs-AVC3 + mid-stream-init-change scheduling) still open, the post—01 issue backlog continues to shape the editorial agenda. Wider impact: with MSF -01 publishing 130 days after MSF -00 (Jan 19 → May 29), wilaw establishes the publication cadence as “draft-XX every ~4 months” — slower than moq-transport (draft-17 Mar 24 → draft-18 May 12 = 49 days) but consistent with the higher relative editorial stability MSF has had as a packaging-format spec rather than a wire-protocol spec.
  • Interop matrix 177 / 49 / 127 / 0 (+3 pass, 27.7% pass rate, 11-day cadence) rebounds past the May 27 peak of 48 — recent 3-day trajectory 48 → 46 → 49 = monotonic uptick re-established, exceeds the May 27 high. The +3 is plausibly attributable to moq-dev/moq’s massive ~25-PR refactor wave shaking some test combinations stable: PR #1487 moq-mux catalog filter/Annex-B + PR #1514 linger + PR #1473 timescale refactors touch a lot of code, and the matrix harness may have picked up some new pass combinations that were previously borderline. Carry-forward: the 11 consecutive days of daily reports (May 19-29) is the longest cadence streak the wiki has tracked, and the pass rate has now climbed above 27% for the first time since cadence recovery. With the draft-18 target bump still gated on PR #68 (no commits since May 19), the matrix-shape lever remains untouched. Wider impact: London hackathon is 11 days away; pass-rate 27.7% on draft-16 matrix while 3 implementations (moq-dev/moq, mondain/moqxr, meetecho/imquic) run draft-18 on main suggests the matrix-vs-impl version lag will become the dominant interop story at London — implementations that won’t downgrade to draft-16 for the matrix will not produce passes regardless of correctness.

2026-05-28 — Gwendal disputes chair SWITCH framing; afrind 13-event moqx burst

TL;DR:

  • Gwendal Simon May 27 10:58 UTC disputes Martin Duke’s “Thoughts on SWITCH” analysis with 4 points — (1) down-switch is actually 4 coordinated messages, not 3 (REQUEST_UPDATE old + SUBSCRIBE new + Absolute Joining FETCH + REQUEST_UPDATE priority reset), with a break-before-make vulnerability: “if the FETCH fails or the new track is unavailable, the old subscription is already gone”, producing “an unacceptable hard freeze in live streaming contexts”; (2) up-switch group N+k selection requires relay-side information subscribers cannot compute (SWITCH does the smallest-group-where-both-tracks-fully-available computation server-side); (3) SWITCH is additive, not replacive — coexists with the current approach, opponents can keep using REQUEST_UPDATE+SUBSCRIBE+AJF; (4) 4 independent teams have already implemented or explored SWITCH, indicating genuine OTT Live TV demand (subscribers running 2-5 groups behind live edge). First strong technical rebuttal of the chair’s framing on the May 21 SWITCH consensus call. Plus Cullen Fluffy Jennings May 27 19:26 UTC“I disagree it should be done as a separate draft. I think it should be worked as a PR that can be discussed in context. … or are you concluding that it cannot move forward as something we put in MoQT?” — Cullen rejects Magnus Westerlund’s suggestion to move Track Filters + Top-N to a separate draft, references the DTS experience as evidence that off-base-spec extension drafts create unnecessary confusion. Two senior contributors pushing back on chair-side framing in the same 24h window.
  • #moq Slack ends 7-day silence with two substantive questions. Lorenzo Miniero May 27 08:21 UTC: “Is moq-mi still relevant, or should all A/V efforts focus on LOC now? I’ve started playing with media in my demo applications, and my first step was to revive the old interop I had with moq-encoder-player: that used moq-mi, though, and I’m not sure if it’s still considered of interest for interop purposes. I started tinkering with catalogs too, so if I want to play with different codecs the latest LOC makes more sense, but from my understanding it may change a lot post the upcoming interims” — strategic question about LOC vs moq-mi consolidation, first ecosystem-level “where do we focus?” question from an implementer since draft-18 published May 12. Lorenzo’s question pairs with his own meetecho/imquic PR #27 opened May 25 15:56 UTC (still OPEN) — “New MoQ demos to test publishing/subscribing LOC with live capture/playback” (+3057/−492) implementing H.264 + Opus capture/render via libavcodec + libopus + SDL2; PR body explicitly acknowledges the dual-identity moq-mi/LOC question (“this started arguably more of an implementation of moq-mi”). Alan Frindell May 28 04:43 UTC: “we allow self-subscribe. Do we allow self-fetch?” — novel question about whether the publisher-as-subscriber-of-its-own-track pattern extends to FETCH.
  • moq-wg/msfWill Law sprint Day 3 (May 27): 3 PRs MERGED + 3 PRs OPEN + Issue #150 CLOSED + Issue #172 NEW = 7 events. PR #166 (Tobbe’s typed-object design) MERGED 08:35 UTC; PR #167 “Introduce target buffer property in track object” MERGED 20:22 UTC closing kixelated’s Apr 1 Issue #150 “Wall clock is problematic” (open 56 days) — wilaw’s resolution: per-track targetBuffer property defining required end-to-end buffer in seconds for smooth playback; PR #168 “Revise catalog object specifications and numbering” MERGED 08:14 UTC (fixes #149); PR #171 “Add optional parent namespace field to clone tracks” still OPEN; PR #173 “Update normative references for MoQ drafts” OPEN — fixes new Issue #172 wilaw filed same day flagging that MSF still points to draft-mzanaty-moq-loc-05 (individual) instead of draft-ietf-moq-loc-02 (WG); PR #174 “Update media presentation timestamp rounding description” OPEN (fixes #108). wilaw 16 MSF events in 4 days (May 24-27) — extends the largest single-contributor MSF push since draft adopted; closes kixelated’s longest-open issue via PR #167.
  • Implementations: moqx first openly-tracked single-day push of the wikiafrind 13 events May 27: 6 PRs MERGED (#338 moxygen sync, #341 perf scripts, #342 cross-exec handle wrappers, #343 publisher/subscriber accessors, #344 verifyOnRelayExec wrapping, #345 NGR test downcast removal) + 6 PRs OPEN (#346 PublishOk NGR forwarding tests, #348 res→reply coroutine, #349 TSan build mode, #350 bpf cBPF reuseport steering filter for QUIC worker socket multi-thread prep, #351 IOThreadPoolExecutor owned exclusively by main, #352 CrossExecFilter wrapping) + Issue #347 OPEN “moqx+picoquic can block when the highest pri stream is flow control blocked”. Theme: cross-exec thread-safety + multi-threaded I/O prep + relay-level test scaffolding. moq-rs breaks its own quiet streak: PR #169 OPENED May 28 03:13 UTC by englishm-cloudflare “docs: add AuthHook trait design proposal” (+724/−0, 1 file) — pluggable AuthHook trait surface + invocation points for PrivacyPass + C4M (CAT for MoQ) auth schemes in parallel; first cloudflare/moq-rs design-PR since PR #167 Suhas filter-framework May 11 (still OPEN Day +16). moq-js PR #72 OPEN by itzmanish (Manish) May 26 12:49 UTC “Refactor project structure and APIs” (+11205/−22195, draft-16 baseline) — massive code reorganisation, same external contributor whose PR #121 took 155 days to merge in cloudflare/moq-rs and whose PR #131 (draft-16) is still open. moq 5 merges + 3 OPEN + Issue #1499 CLOSED: PR #1515 moq-mux seek(sequence) MERGED; PR #1518 Lite05Wip version variant (unadvertised, gates future moq-lite-05 work without exposing wire/ALPN) MERGED 21:26 UTC; PR #1519 lint shell/workflows/TOML/Nix/justfiles via nix devShell (+973/−656, actionlint/shellcheck/shfmt/taplo/nixfmt/just —fmt) MERGED; PR #1520 moq-ffi 0.2.15 MERGED; PR #1513 OPEN qmux version mapping (WG decided: moq-transport-18 → qmux-01, 14-17 → qmux-00, moq-lite unconstrained); PR #1514 OPEN moq-lite linger; PR #1517 OPEN moq-net stats aggregate into single gzipped broadcast (+653/−684). Issue #1499 (natmurella cluster discovery) CLOSED May 27 19:42 UTC — kixelated explained: cluster nodes now proxy via multi-hop (San Jose → Texas → Virginia → London) for cache efficiency rather than full mesh; natmurella requests gossip-style as opt-in. moqtail, imquic (still PR #27 carry-forward open), moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, englishm/moq-interop-runner, google/quiche moqt all quiet (last quiche commit 083b83b3 May 20 22:36 UTC = Day +7, longest post-draft-18-publication silence for chair-led C++ impl).
  • Interop: 177 / 46 / 130 / 0 at 2026-05-28 00:41:34 UTC−2 pass vs May 27 (48 → 46, pass rate 27.1% → 26.0%, −1.1pp). 10 consecutive days of daily reports (May 19-28) — first double-digit cadence streak. Rolling 5-day band 42-48, recent trajectory 47 → 48 → 46 = monotonic uptick broken. Target still draft-16 (PR #68 OPEN since May 18, no commits since May 19). Version breakdown of 177 tests: 97 at target · 8 ahead · 72 behind. London hackathon 12 days away.

Operation: Update Sources:

  • Slack: #moq ends 7-day silence with Lorenzo Miniero May 27 08:21 UTC moq-mi-vs-LOC question + Alan Frindell May 28 04:43 UTC “self-fetch?“. #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-wg/msf — wilaw 7 events May 27: PR #166 MERGED 08:35 UTC, PR #168 MERGED 08:14 UTC, PR #167 MERGED 20:22 UTC closing Issue #150 (kixelated wall-clock, open 56 days), PR #171 still OPEN, PR #173 OPEN (fixes #172), PR #174 OPEN (fixes #108), Issue #172 NEW.
    • moq-wg/moq-transport — Issue #1636 (RichLogan Empty namespace clarification) still active, no new comments since prior wiki cut.
    • moq-wg/cmsf, loc, secure-objects, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 5 merges + 3 OPEN + Issue #1499 CLOSED. Merges: #1510 (diegonieto docs), #1515 (moq-mux seek), #1518 (Lite05Wip), #1519 (CI lint), #1520 (moq-ffi 0.2.15). Open: #1513 (qmux version map), #1514 (moq-lite linger), #1517 (gzipped stats broadcast). Closed: #1499 (kixelated multi-hop explanation).
    • cloudflare/moq-rs: PR #169 OPENED May 28 03:13 UTC (englishm-cloudflare AuthHook trait design proposal +724/−0); first design PR since PR #167 May 11.
    • video-dev/moq-js: PR #72 OPEN by itzmanish (+11205/−22195) since May 26 12:49 UTC, project structure refactor on draft-16.
    • meetecho/imquic: PR #27 still OPEN since May 25 15:56 UTC (lminiero +3057/−492 MoQ LOC demos with H.264+Opus capture/render).
    • openmoq/moqx: 13-event afrind burst May 27: 6 MERGED (#338, 341-345), 6 OPEN (#346, 348-352), Issue #347 OPEN.
    • moqtail/moqtail: No new commits.
    • google/quiche (quiche/quic/moqt): No new commits since 083b83b3 martinduke May 20 22:36 UTC (Day +7).
    • birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token, englishm/moq-interop-runner: All quiet.
  • Mailing list: 2 substantive messages May 27Gwendal Simon “Re: Thoughts on SWITCH” 10:58 UTC (disputes Martin Duke 4-point) + Cullen Fluffy Jennings “Re: Support for Track Filters and Top-N” 19:26 UTC (rejects Magnus’s separate-draft suggestion). Magnus Westerlund 2 messages May 27 (Object filters + Track Filters/Top-N replies).
  • IETF Datatracker: No new revisions May 27 or 28. WG state: transport-18 (Day +16), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +22), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-28 00:41:34 UTC: 177 / 46 / 130 / 0 (−2 pass vs May 27, 26.0% pass rate, 10-day cadence).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +28 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-05.md (new “May 27 06:00 UTC → May 28 06:00 UTC” section), drafts/moq-msf.md (May 28 entry: wilaw Day-3 sprint with 3 merges + 3 opens + Issue #150 close + Issue #172 new), implementations/moq-dev.md (May 28 entry: 5 merges + 3 open + Issue #1499 close), implementations/moq-rs.md (May 28 entry: PR #169 AuthHook design ends quiet streak), implementations/openmoq.md (May 28 entry: afrind 13-event burst), implementations/imquic.md (May 28 entry: PR #27 LOC demos + Lorenzo’s moq-mi-vs-LOC question), implementations/moq-js.md (May 28 entry: PR #72 Manish refactor), interop/interop-runner.md (May 28 177/46/130/0 callout, 10-day cadence milestone), discussions/interim-meetings.md (May 28 note: Gwendal SWITCH rebuttal + Cullen Track Filters preference), index.md (last_updated bump), log.md (this entry).

Key findings:

  • Gwendal Simon’s May 27 10:58 UTC 4-point rebuttal of Martin Duke’s “Thoughts on SWITCH” is the first instance the wiki has tracked of a non-chair WG member directly contesting a chair-published technical analysis on the moq mailing list with multi-point structured argument. The break-before-make hard-freeze risk in the current 4-message down-switch sequence is a concrete operational concern that the chair’s May 26 framing did not surface — Martin Duke counted 3 messages (UNSUBSCRIBE + SUBSCRIBE + Absolute Joining FETCH), Gwendal correctly identifies that this requires a 4th REQUEST_UPDATE to reset priority after FETCH completes, and the 4-message sequence has a window where the old track is gone before the new one delivers. Carry-forward: with the May 26 interim consensus call closing on June 4 (DTS+SWITCH), Gwendal’s rebuttal effectively raises a “current draft is broken for OTT Live TV” signal alongside Will Law’s May 26 Yes/Yes vote — combined, the May 26 interim outcome (yet to record on list) is being post-litigated on the mailing list before the formal June 4 close. Wider impact: Cullen Jennings’s same-day rejection of the separate-draft path for Track Filters + Top-N indicates two senior contributors pushing back on chair-side procedural framing within 24h — Martin Duke’s “I don’t have strong opinions” posture from May 26 leaves room for both pushbacks to land without re-litigating chair authority. The May 26-27 mailing-list pattern suggests the chair’s neutral-position posture is becoming a venue for contributors to drive technical disposition through direct rebuttal rather than chair-tinted discussion.
  • The #moq Slack 7-day silence breaking with TWO substantive questions — Lorenzo’s strategic moq-mi-vs-LOC and Alan Frindell’s novel self-fetch — within 22 hours of each other is the first multi-message Slack day since May 11 interim coverage. Lorenzo’s question is implementer-strategic: he has an existing moq-encoder-player integration on moq-mi (Facebook’s stuck-on-draft-14 stack), wants to do live A/V with imquic, and is asking “is moq-mi still tracked as an interop point or do I migrate everything to LOC?” — the underlying question is whether moq-mi continues to exist as a parallel A/V wire format alongside MSF/CMSF/LOC, or whether LOC’s recent progress effectively makes moq-mi a historical-only reference. Carry-forward: no one has answered Lorenzo on Slack as of May 28 06:00 UTC; the answer matters because his imquic PR #27 (still OPEN) currently uses moq-encoder-player’s draft-14-era LOC property IDs, and an answer of “focus on LOC going forward” would mean re-doing the PR against draft-ietf-moq-loc-02 (or the conflicting moq-transport-18 §15.8-2 values that moq-dev/moq’s PR #1388 ships). Wider impact: the moq-mi-vs-LOC dual-identity question is the same cross-spec coordination gap surfaced by moq-wg/loc Issue #20 and resolved implementation-side by kixelated’s May 23 PR #1388 — but only inside moq-dev/moq’s stack. A WG-level answer is still missing and London is now 12 days away. Alan Frindell’s self-fetch question opens a separate corner of the spec: the current moq-transport-18 §6.1 allows self-subscribe (publisher subscribes to its own track) but doesn’t extend the symmetry to FETCH (publisher fetches its own past objects out of its own egress cache). The question matters for relay-cache testing scaffolding and self-paired publisher-subscriber instrumentation.
  • The afrind 13-event single-day push on openmoq/moqx is the largest single-author single-day push the wiki has tracked across any MoQ implementation — exceeds kixelated’s overnight ~17-PR waves in moq-dev/moq (those spanned 8+ hours of merge cadence; afrind’s 13 events all landed within a 6-hour window May 27 17:29-23:37 UTC). The PR theme cluster — cross-exec handle wrappers, IO thread isolation, multi-threaded I/O prep via cBPF reuseport steering, ThreadSanitizer build mode, perf-test scaffolding, relay-level NGR forwarding tests — reveals afrind is staging openmoq/moqx for multi-threaded production deployment, complementing his moq-wg chair contributions (Joining FETCH/SWITCH/filters), Issue #1636 prose-AI incident, May 22-23 PR #1518 Object Filters extension work, and May 27 0900-1045 London Day-1 slot for “MOQT Issues” (180 minutes). Carry-forward: combined with afrind’s London Day-1 0900-1045 slot, openmoq/moqx PR #350 cBPF reuseport filter (still single-thread “doesn’t do anything yet”) + PR #351 IOThreadPoolExecutor isolation + PR #352 CrossExecFilter + Issue #310 “Support multiple IO threads” sets up an “openmoq/moqx is the multi-threaded MoQ relay reference implementation” positioning for London. Wider impact: the moq-dev/moq operator-quality story (anycast preferred_address + Homebrew/.deb/.rpm packaging + cluster discovery + linger upstream) and openmoq/moqx multi-thread story (May 27 burst) running in parallel are now the two leading “operationally-ready” MoQ relay implementations 12 days before London. Cloudflare/moq-rs has shipped binary fixes (May 20 PR #168 release-plz) but no operator-quality features since.
  • cloudflare/moq-rs PR #169 (englishm-cloudflare AuthHook trait design) ends a 17-day quiet streak from cloudflare/moq-rs design-PR activity (since Suhas’s PR #167 filter-framework May 11, which itself is still OPEN). The PR is a documentation-only design proposal (+724/−0, 1 markdown file) explicitly framed as “shared reference for contributors working on PP and C4M implementations in parallel” — PrivacyPass for moq-privacy-pass-auth-02 (afrind-authored WG draft) and C4M for CAT for MoQ (Cisco-led). Carry-forward: PR #169’s openin signals cloudflare/moq-rs is back in the design-venue rotation alongside its release-cut role; the trait surface deliberately abstracts both schemes so PrivacyPass and C4M can ship as parallel implementations rather than as competing forks. Wider impact: this is the first cloudflare/moq-rs PR in a while whose explicit purpose is to coordinate two competing-but-orthogonal auth efforts inside a single implementation — that coordination work used to happen on the mailing list or in PRs to moq-wg/moq-transport. Moving it inside cloudflare/moq-rs’s repo is a structural choice that pushes the trait-surface decisions toward implementation-driven design rather than spec-driven design.
  • Interop matrix 177 / 46 / 130 / 0 (−2 pass, 26.0% pass rate, 10-day cadence) breaks the 47 → 48 monotonic 2-day uptick with a regression to 46 — a 4-pass round-trip within 3 days (47 → 48 → 46). The −2 is plausibly attributable to moq-dev/moq’s May 27 refactor wave (PR #1519 lint changes touched 973 LOC + 656 LOC across flake.nix and CI; PR #1515 moq-mux seek changed importer trait surfaces; PR #1518 added Lite05Wip version variant that the matrix harness may have noticed). Carry-forward: the 10 consecutive days of daily reports is the first double-digit cadence streak the wiki has tracked since the May 14-18 outage; the daily-cadence story is now structurally stable independent of pass-count oscillation. Wider impact: with 12 days to London and pass rate stuck in a 25-27% band, the matrix-shape-locked-at-177 phase is yielding ~±2 pass swings per day from individual-impl refactors; the structural lever to break out of this band remains PR #68 (draft-16 → draft-18 target bump), which has been OPEN with no commits since May 19. PR #68 merging is now the only remaining matrix-shape event before London.

2026-05-27 — wilaw revises PR #166 to Tobbe’s typed-objects design; Martin Duke posts first chair SWITCH analysis

TL;DR:

  • Will Law revises PR #166 May 26 13:05 UTC adopting Torbjörn Einarsson’s typed-object design ({"id": "1", "type": "inline", "data": "..."} instead of bare base64 strings + numeric indices); Tobbe approves 12 minutes later (“That’s perfect.”). Within 24 hours of Tobbe’s May 25 18:44 UTC review comment proposing the typed shape, his design is in the PR. The wiki user’s design absorption from May 26 (“partially absorbed”) flips to design accepted — wilaw kept editorial control of the diff but adopted the underlying design verbatim, including named-string id refs instead of numeric indices and forward-extensibility hooks for non-"inline" types (separate MoQ track / HTTP URL / content-addressed identifier) in a future PR. Plus 4 more wilaw PRs on moq-wg/msf May 26: PR #170 “Undo commit ae4b7c4” MERGED 13:59:50 UTC (a 1-minute open-to-merge cycle reverting an accidental direct-to-main commit) + PR #171 “Add optional parent namespace field to clone tracks” OPEN (fixes #146) + PR #169 “Update MOQT mapping details in media transmission section” OPEN (fixes #148) + Vasil V’s Issue #144 reply “Accept-Encoding does not really work with MoQ model of fan-out (in general, data can flow from publisher to subscribers, but not back)” — closes Tobbe’s May 25 17:21 UTC negotiated-compression suggestion as architecturally incompatible. wilaw 9 MSF events in 3 days (May 25-27): largest MSF spec-side push by a single contributor since the draft was adopted.
  • Mailing list 5 messages May 26-27 — first post-final-agenda technical content from the chair + first explicit yes/yes vote on DTS+SWITCH adoption + Mo Zanaty endorses both consensus calls. Martin Duke “Thoughts on SWITCH” May 26 17:33 UTC (10:33 PDT) — first technical chair position on the SWITCH consensus call (4 days before May 26 interim, 8 days before June 4 close): outlines that the current 3-step UNSUBSCRIBE+SUBSCRIBE+Absolute Joining FETCH approach is identical to SWITCH when the relay has cache, but SWITCH continues delivering the high-bandwidth track until upstream content arrives vs Absolute Joining FETCH which terminates the old track immediately; for up-switch suggests SUBSCRIBE+Absolute Joining FETCH with delayed-close of the low-bandwidth track as a make-before-break strategy. Self-reply at 18:08 UTC clarifies framing. Will Law “Yes / Yes / Yes / Yes” on DTS+SWITCH adoption May 26 17:50 UTC — first explicit on-list vote from a co-author of one of the two specs (Will Law co-authored SWITCH PR #1378 with Gwendal Simon + Ali Begen + Zafer Gürel). Mo Zanaty 2 messages May 27 00:31-01:00 UTC — endorses Object Filters (“I support Object Range Filters in MOQT”, references PR#1401 Location filters for separate London presentation) + endorses Track Filters and Top-N (“primary concern is finalizing the desired behavior, regardless of whether this lands in MOQT or an extension”). Both before the May 26 interim outcome but after Cullen’s May 24 “filters/top-N” prioritization letter; continues the Cullen-Mo “more filters less of everything else” convergence pattern.
  • Implementations: moq 7 new PRs + 5 merges + 2 new issues May 26 ~06:00 UTC → May 27 ~06:00 UTC. Headline: PR #1512 MERGED 17:20 UTC “moq-native: advertise QUIC preferred_address in the server config” (+81/−0) — adds RFC 9000 §9.6 transport-parameter support so a relay can announce an alternate address that clients migrate to post-handshake. Unlocks a clean BGP anycast deployment shape: anycast /24 handshake target + per-host unicast preferred_address, “overloaded host can withdraw the anycast route from BGP without dropping existing connections, because they are no longer using that address”; Chrome M131+ (Nov 2024) on by default with ~99% migration success per Google’s measurements. PR #1513 / #1514 / #1515 OPEN (qmux version mapping, moq-lite linger-upstream across consumer churn, moq-mux seek(sequence) for explicit group boundaries) all with (Written by Claude) disclaimers — 4 more PRs dogfooding the PR #1503 AI Attribution H2 norm. PR #1510 Diego Nieto external-contributor docs fix MERGED. New Issue #1516 by danrossi May 27 05:12 UTC: “Cargo project audit checks — Crates is now vulnerable to supply chain attacks… worth adding into the CI checks or build system somehow” references cargo-vet Mozilla tool. moqtail quiet 24h+. moq-rs, moq-js, imquic, moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, englishm/moq-interop-runner, google/quiche moqt (last 083b83b3 martinduke May 20 22:36 UTC = Day +6, longest post-draft-18-publication silence for the chair-led C++ implementation) all quiet.
  • Interop: 177 / 48 / 128 / 0 at 2026-05-27 00:44:59 UTC+1 pass vs May 26 (47 → 48, pass rate 26.6% → 27.1%, +0.5pp). Matrix shape steady at 177 post-PR-71 expansion. 9 consecutive days of daily cadence (May 19-27). Target still draft-16 (PR #68 OPEN since May 18, no new commits since May 19). Version breakdown: 97 at target · 8 ahead · 72 behind. London hackathon 13 days away.

Operation: Update Sources:

  • Slack: #moq quiet 7 days (last meaningful gazzy May 20 15:22 CEST Moqintosh announcement; only Alina join-event May 21 17:08 CEST since). #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-wg/msf — 5 wilaw events May 26: PR #170 MERGED (revert accidental commit, 1-min cycle), PR #171 OPEN parent-namespace for clones (fixes #146), PR #169 OPEN MOQT mapping details (fixes #148), PR #166 revised to typed-object shape ({“id”,“type”,“data”}) accepting Tobbe’s review. Tobbe approves PR #166 13:16 UTC. Issue #144 Vasil V comment 16:27 UTC (“Accept-Encoding doesn’t work with MoQ fan-out”).
    • moq-wg/cmsf: no activity since May 25 (Issue #16 still open waiting on Gwendal).
    • moq-wg/moq-transport — only PR #1378 SWITCH for Client-side ABR updated metadata May 26 16:17 UTC; no new comments since prior wiki entry.
    • loc, secure-objects, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 5 merges + 4 OPEN PRs since prior wiki cut. Merges: #1510 (Diego Nieto docs ext-contributor), #1511 (changelog fix), #1512 (QUIC preferred_address for anycast deploy), #1509 (jemalloc init fix, already covered in May 26 entry, merged within window). Open: #1513 (qmux version mapping), #1514 (moq-lite linger upstream subscriptions across consumer churn), #1515 (moq-mux seek(sequence)), #1504 (still open from May 25), #1496 release. New issue: #1516 (danrossi cargo audit / cargo-vet). Closed: #1507, #1508 (already covered May 26).
    • moqtail/moqtail: No new commits since 3e9b788c Ali Begen May 25 18:52 UTC.
    • google/quiche (quiche/quic/moqt): No new commits since 083b83b3 martinduke May 20 22:36 UTC (Day +6).
    • cloudflare/moq-rs, video-dev/moq-js, meetecho/imquic, birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, openmoq/moqx, Quicr/cat-token, englishm/moq-interop-runner: All quiet.
  • Mailing list: 5 substantive messages May 26-27Martin Duke “Thoughts on SWITCH” May 26 17:33 UTC + self-reply 18:08 UTC + Will Law “Yes/Yes” on DTS+SWITCH adoption 17:50 UTC + Mo Zanaty Object Filters May 27 00:31 UTC + Mo Zanaty Track Filters/Top-N May 27 01:00 UTC.
  • IETF Datatracker: No new revisions May 26 or 27. WG state: transport-18 (Day +15), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +21), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-27 00:44:59 UTC: 177 / 48 / 128 / 0 (+1 pass vs May 26, 27.1% pass rate, 9-day cadence).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +27 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions/discussions-2026-05.md (new “May 26 06:00 UTC → May 27 06:00 UTC” section covering: wilaw PR #166 revised May 26 13:05 UTC to Tobbe’s typed-object shape + Tobbe approves in 12 min, wilaw 4 more MSF PRs/events same day (#170 1-min revert / #171 parent-namespace / #169 MOQT mapping / Issue #144 Vasil V Accept-Encoding rejection), Martin Duke first chair technical position on SWITCH + self-reply, Will Law Yes/Yes on DTS+SWITCH adoption, Mo Zanaty endorsing both consensus calls May 27, moq-dev/moq PR #1512 QUIC preferred_address for anycast deploy + PRs 1513-1515 dogfooding the AI Attribution H2 norm, new issue #1516 danrossi cargo-vet supply chain audit, interop 177/48/128/0 +1 pass / 9-day cadence, google/quiche moqt Day +6 silent, moq Slack quiet 7 days), drafts/moq-msf.md (May 27 entry: wilaw PR #166 typed-object revision + Tobbe approval + 4 more PRs/events May 26 + Vasil V Accept-Encoding rejection on #144), implementations/moq-dev.md (May 27 entry: PR #1512 preferred_address + 4 open PRs dogfooding LLM-disclaimer + Issue #1516 cargo-vet), interop/interop-runner.md (May 27 177/48/128/0 callout), discussions/interim-meetings.md (May 27 note: Will Law Yes/Yes vote + Martin Duke “Thoughts on SWITCH” chair technical position), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The wilaw PR #166 revision from numeric-index-base64-strings to {"id", "type", "data"} typed-object shape, completed less than 24 hours after Tobbe’s May 25 18:44 UTC review comment proposing exactly that shape, is the first observed case in the wiki’s tracking where a non-Akamai/non-Cloudflare/non-Cisco/non-Google/non-AWS contributor’s design proposal moves an MSF PR’s diff before merge — and the timing structurally upgrades the “editor maintains editorial control” pattern from May 26’s “partially absorbed” framing. wilaw kept commit authorship (Tobbe doesn’t get a PR-author byline) but adopted the underlying design verbatim, including the named-string id refs and forward-extensibility hooks. Carry-forward: Tobbe’s remaining 3 of 4 original Issue #153 points (per-language lang override, Safari/FairPlay AVC1-vs-AVC3, mid-stream-init-change scheduling) are still open; the typed-object PR #166 shape pre-positions a follow-on PR for time-varying init (Tobbe’s Point 3) via the same initDataList references (Tobbe’s "initSchedule": [{"fromGroup": 0, "ref": "v1"}] sketch fits cleanly on top). Wider impact: the 1-day review-to-revision cycle is the fastest spec-side feedback loop the wiki has tracked on moq-wg/msf in May 2026 — wilaw’s 9 events in 3 days (5 PRs + #153 ping + #164 fix + #144 absorption + #19 cmsf merge) shows a London-deadline-driven sprint cadence that responds to outside review faster than the corporate-contributor norm.
  • Martin Duke’s May 26 17:33 UTC “Thoughts on SWITCH” is the first technical chair position on the May 21 SWITCH/DTS consensus call (4 days before May 26 interim + 8 days before June 4 close). The framing is balanced — outlines what SWITCH does that the current draft doesn’t (continued high-bandwidth delivery during down-switch when relay has no cache) and what the current draft does that SWITCH doesn’t (make-before-break via Absolute Joining FETCH + delayed close on up-switch). Critically, the chair doesn’t commit to a position (“I don’t have strong opinions, but I do think the trade-off analysis here is correct”) — leaves room for the show-of-hands at the May 26 interim to drive the disposition. Will Law’s same-day yes/yes vote is the first explicit on-list vote from a SWITCH co-author. Carry-forward: combined with the Cullen May 24 + Mo May 23-24 + Mo May 27 “more filters less of everything else” pattern, the May 26 interim agenda risk is that SWITCH gets show-of-hands consensus to adopt but loses agenda territory to filters/top-N for the formal London June 11-12 sessions. The interim outcome (recorded after the May 26 16:30 UTC start) will be the structural disposition signal. Wider impact: this is the chair (Martin Duke) doing active substance contribution to consensus, not just procedural facilitation — the moq-wg’s chair-cadence has now matured from “schedule and moderate” (Apr-May 2026) to “scheduling + interim outcomes + technical position-taking” (late May 2026).
  • moq-dev/moq PR #1512 (QUIC preferred_address advertising) is structurally significant beyond its diff size: the 81 LOC change unlocks anycast-based BGP deployment for MoQ relays — an operational shape that until now required either (a) DNS-based geo-steering (slow failover, no in-flight migration), or (b) custom load balancers in front of QUIC (TLS termination overhead, no end-to-end QUIC). The advertised preferred_address transport parameter lets a /24 anycast handshake target distribute new connections to the nearest POP, then steady-state connections pin to the unicast IP and survive BGP reconvergence, with the additional property that an overloaded host can withdraw its anycast route without dropping existing connections (they’re now on the unicast IP, not the anycast one). Carry-forward: this puts moq-dev/moq’s deploy model on par with HTTP/3 CDN anycast deployments (Cloudflare’s own posture among others) — operators evaluating MoQ for production no longer have to choose between MoQ semantics and modern QUIC operational tooling. Wider impact: combined with the May 22-25 packaging story (Homebrew + .deb + .rpm + Cloudflare Worker apt/rpm hosts), the May 24 cluster-discovery PR #1504 still-open in-flight, and the May 26 preferred_address landing, moq-dev/moq has gone from “kixelated’s research prototype” to “first MoQ implementation operationally on par with HTTP/3 CDN deployments” within a 5-day window.
  • Continued dogfooding of the PR #1503 AI Attribution H2 norm (PRs #1512 / #1513 / #1514 / #1515 all carry (Written by Claude) disclaimers) confirms the norm has stuck as the operational standard for AI-authored PR bodies in moq-dev/moq within 48 hours of the H2 promotion. Carry-forward: the next institutional test is whether any moq-wg spec repository adopts a parallel rule (afrind’s May 22 “With apologies for answering your question with AI” prose remains unilateral). The PR #1503 exemption design (no-tag on code / doc comments / /doc pages) means the norm only fires on issue replies, PR descriptions, and design-doc prose — exactly the surfaces where afrind’s May 22 hallucination event occurred — so the moq-dev/moq norm is structurally well-positioned to be copy-pasted into moq-wg/moq-transport’s contributing guidelines with minimal modification. Wider impact: this is now the most extensively dogfooded AI-disclosure framework in any tracked open-source protocol working group — every PR opened by kixelated since PR #1469 May 23 has the marker, and the convention propagated organically into 4 different PR bodies without re-litigation.
  • Interop matrix 177 / 48 / 128 / 0 (+1 pass, 27.1% pass rate, 9-day cadence) shows continued small monotonic recovery from the post-PR-71 baseline: 47 → 48 is consistent with the same single-impl-fix-yields-single-pass-delta pattern from May 19-23. Carry-forward: the matrix is now showing 9 consecutive days of daily reports (May 19-27) — the longest sustained streak since the May 14-18 outage. The +1/+5/-3/-1/+4 oscillation pattern over the last 5 days has tightened to a +1/+5/+1 monotonic uptrend over the last 3 days. PR #68 (draft-18 target bump) still OPEN since May 18, no commits since May 19 — the draft-revision lag is now the only outstanding matrix-shape item before London. Three implementations on draft-18 main (moq-dev/moq, mondain/moqxr, meetecho/imquic) vs the matrix targeting draft-16. Wider impact: with London hackathon 13 days away and the matrix shape locked at 177 cells post-PR-71, the focus shifts to whether implementations can move the pass count from 27% toward 50% via individual-impl fixes (Mike English’s “low-hanging fruit” May 19 frame) without the matrix expanding further. The PR #68 target bump merger will be the next discrete event that re-shapes the matrix.

2026-05-26 — wilaw absorbs Tobbe’s #153 into PR #166; post-London interims scheduled

TL;DR:

  • Will Law ships 4 MSF PRs May 25 between 12:55–16:24 UTC: PR #165 “Update bitrate and related properties” (fixes kixelated’s #164: required sampleRate+channels for audio + codec+width+height for video, new maxGOPDuration / maxGroupDuration / averageBitrate, redefines bitrate as max); PR #166 “Enhance root catalog with Initialization Data List” (partial fix for Torbjörn Einarsson’s Issue #153 — adds root-level initDataList[] for readability dedup); PR #167 target buffer property (fixes #150); PR #168 catalog object renumbering (fixes #149). wilaw explicitly pings Tobbe on #153: “please review #166 and see if it meets your needs”Tobbe’s May 23 offered initDatas[] + initDataRefID PR is absorbed back into Akamai-authored form within 48 hours; covers Point (2) readability dedup but NOT the Safari/FairPlay Point (4) AVC1-vs-AVC3 or Point (3) per-language override. Editor-maintains-editorial-control pattern: external design proposals partially absorbed rather than merged via outside PR. Plus PR #157 MERGED by Suhas (clarifies group numbering for restarts, fixes #147). cmsf activity by wilaw same day: PR #19 MERGED (drops loose “GOP” terminology + redundant decode-order text, fixes #12 yekuiwang); Issue #16 reactivated (wilaw asks Gwendal about emsg signaling — catalog presence flag + per-track scheme_id_uri + multiple emsg tags). Will Law sprinting toward London Day-2 35-min MSF/CMSF slot with 4 concrete diffs + emsg follow-on inbound.
  • Martin Duke May 25 17:44 UTC schedules June 22 + July 6 virtual interims (archive, both 16:30–18:00 UTC), feedback deadline June 8 (“the day before London begins”). First post-London interim cadence announcement; the four May-26-to-June-5 consensus calls (Object Filters May 26 close, DTS/SWITCH June 4 close, Filters June 5 close, London formal June 11-12) all resolve before June 22, making it the first interim after all four are settled. The 6-week London→June 22→July 6→Vienna cadence mirrors the Apr 27→May 26 two-interims-in-the-gap pacing. moq lighter ~8-PR day breaks the 3-day overnight wave pattern: PR #1504 OPEN “moq-relay: restore gossip-style cluster discovery” (+797/−121) opened ~12h after Issue #1499 by natmurella — re-introduces --cluster-node <self-url> publishing .internal/origins/<url> placeholder broadcasts so peers auto-discover via --cluster-connect; new .block(prefix) view refuses publishes + hides announces under non-mTLS sessions. First downstream-user-flagged regression in the May 22-25 refactor wave to get a same-day fix-in-flight. PR #1503 MERGED “docs(claude): tighten conventions” (+33/−3 to CLAUDE.md) — AI Attribution promoted from a buried Comment Conventions bullet into its own H2 covering “LLM-authored prose visible to humans” with explicit no-tag list (code, doc comments, /doc pages exempt to avoid disclosure noise). Third evolution of the LLM-disclaimer norm in 4 days (PR #1469 source-code rule May 23 → PR-body dogfooding via #1484+#1494 May 24 → policy H2 promotion May 25). PR #1503 also adds Cross-Package Sync table, end-to-end Testing Approach default, Refactor As You Go rule (4+ args = struct in same PR), and divan Benchmarks convention. PR #1509 MERGED “moq-native(jemalloc): drop runtime activation; fixes moq-boy startup crash”28-minute self-issue-to-merge cycle (kixelated filed #1507 at 03:58 UTC, PR #1509 merged at 04:26 UTC). Root cause: dead-code branch flipping prof.active=true at runtime fails with EINVAL unless MALLOC_CONF=prof:true was set at process start; moq-relay’s systemd unit always sets it, moq-boy doesn’t. Swift release-pipeline shakedown: PRs #1502 (decouple release manifest from dev Package.swift, gate publish on SPM resolve) + #1505 (manual moq-ffi 0.2.14 bump; release-plz doesn’t detect binary-only cdylib changes via cargo semver-checks) + #1506 (CI fix: SPM derives path-based package identity from final path component not name: field). New external-user issues May 25-26: #1500 mirakae (HLS fMP4 audio ~47 MoQ groups/s no aggregation control), #1501 danrossi (JS Connection.reload() silently hangs on relay unavailable), #1508 kixelated-self (Reconnect doesn’t retry on DNS failure — open). 3 of 5 issues from external production-deploying users in 24h = adoption signal from operators filing actionable bug reports against May 22-25 refactor breakage.
  • Implementations: moq ~8 merges + 1 still-open PR #1504 cluster-discovery regression-fix (~12h cycle); PR #1503 AI Attribution H2 promotion; PR #1509 28-min self-issue-to-merge; Swift release pipeline first end-to-end exercise; 4 new external-user issues. moqtail single client-js demo fix (Ali Begen 3e9b788c). moq-rs, moq-js, imquic, moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, englishm/moq-interop-runner, google/quiche moqt all quiet (last quiche commit 083b83b3 May 20 22:36 UTC = Day +5, longest post-draft-18-publication silence).
  • Interop: 177 / 47 / 129 / 0 at 2026-05-26 00:43:38 UTCfirst observed matrix-shape change from PR #71 (moqx docker adapter, merged May 25 03:18 UTC), total 168 → 177 (+9), pass 42 → 47 (+5), pass rate 25.0% → 26.6%. Smaller than gmarzot’s predicted ~+75 passes — likely partial-column moqx-as-relay coverage or docker-adapter-specific failures. 8-day cadence holds. Target still draft-16 (PR #68 OPEN, three impls on draft-18 main). Version breakdown: 97 at target · 8 ahead · 72 behind.

Operation: Update Sources:

  • Slack: #moq quiet 6 days (gazzy May 20 15:22 CEST → present; only Alina join-event May 21 17:08 CEST). #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet. Longest stretch since May 11 interim.
  • GitHub moq-wg repos:
    • moq-wg/msf — 4 new PRs by wilaw May 25 12:55-16:24 UTC: #165 (fixes #164), #166 (partial fix #153, pings Tobbe), #167 (fixes #150), #168 (fixes #149). PR #157 by Suhas MERGED 09:16 UTC (fixes #147). Issue #144 updated by Tobbe 17:21 UTC (Accept-Encoding negotiation).
    • moq-wg/cmsf — PR #19 MERGED by wilaw 09:19 UTC (fixes #12 yekuiwang); Issue #16 reactivated by wilaw 09:41 UTC (emsg signaling questions to Gwendal).
    • moq-transport, loc, secure-objects, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: ~8 PR events May 25 06:00 UTC → May 26 ~05:00 UTC. Merges: #1502 (Swift release manifest decoupling), #1503 (CLAUDE.md AI Attribution H2 promotion), #1505 (moq-ffi 0.2.14 bump), #1506 (CI Swift identity fix), #1509 (jemalloc init fix). Closed: #1429 (AWS CMSF awaiting since May 20, formally closed). Open: #1504 (cluster gossip), #1496 (release auto-PR). New issues: #1499 (natmurella, closed in flight by #1504), #1500 (mirakae HLS audio groups), #1501 (danrossi JS reconnect), #1507 (closed by #1509), #1508 (DNS reconnect open).
    • moqtail/moqtail: Single commit 3e9b788c by Ali Begen May 25 18:52 UTC (fix(demo): use next group start for sub). PR #202 release-bot still OPEN.
    • google/quiche (quiche/quic/moqt): No new commits since 083b83b3 martinduke May 20 22:36 UTC (Day +5 — longest post-draft-18-publication silence).
    • cloudflare/moq-rs, video-dev/moq-js, meetecho/imquic, birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, openmoq/moqx, Quicr/cat-token, englishm/moq-interop-runner: All quiet.
  • Mailing list: 2 substantive messages May 25Martin Duke “Upcoming Virtual Interims” 17:44 UTC scheduling June 22 + July 6 16:30-18:00 UTC interims, feedback deadline June 8 + weekly github digest auto-bot summary 17:48 UTC.
  • IETF Datatracker: No new revisions May 25 or 26. WG state: transport-18 (Day +14), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +20), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-26 00:43:38 UTC: 177 / 47 / 129 / 0 (matrix-shape +9 from PR #71 moqx docker adapter, pass +5 vs May 25, 26.6% pass rate, 8-day cadence).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +26 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions-2026-05.md (new “May 25 06:00 UTC → May 26 06:00 UTC” section covering: wilaw 4-PR MSF cluster absorbing Tobbe’s #153 initDatas[] proposal into PR #166, wilaw CMSF PR #19 + Issue #16 reactivation for Denver emsg agenda, Martin Duke June 22 + July 6 virtual interim schedule with June 8 feedback deadline, moq-dev/moq lighter day with PR #1504 12h regression-fix cycle for natmurella #1499, PR #1503 AI Attribution H2 promotion as third LLM-disclaimer evolution in 4 days, PR #1509 28-minute self-issue-to-merge jemalloc fix, Swift release-pipeline first end-to-end exercise, 3-of-5 new issues from external operators, moqtail demo fix Day +1, interop 177/47/129/0 with first observed PR #71 matrix-shape change smaller than predicted, google/quiche moqt Day +5 silent), implementations/moq-dev.md (May 26 entry: lighter ~8-PR day + PR #1504 cluster-discovery regression-fix + PR #1503 AI Attribution H2 promotion + PR #1509 28-min self-fix cycle + Swift pipeline shakedown + 3-of-5 external-user issues), implementations/moqtail.md (May 26 entry: single Ali Begen demo fix), drafts/moq-msf.md (May 26 entry: wilaw 4-PR cluster absorbing #153 + PR #157 merge + #144 Accept-Encoding update), drafts/moq-cmsf.md (May 26 entry: wilaw PR #19 + Issue #16 emsg reactivation), discussions/interim-meetings.md (Martin Duke June 22 + July 6 schedule + new table rows), interop/interop-runner.md (May 26 177/47/129/0 callout + first PR #71 matrix-shape observation), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The wilaw 4-PR MSF cluster (#165 + #166 + #167 + #168) absorbs Tobbe’s May 23 offered initDatas[] PR into Akamai-authored form within 48 hours, with wilaw explicitly pinging Tobbe to review PR #166 (“see if it meets your needs”). Structurally significant: this is the editor-maintains-editorial-control pattern playing out in real time — the MSF spec author (wilaw, Akamai) shipped his own version of Tobbe’s design before Tobbe could file a PR himself. PR #166 covers Tobbe’s Point (2) readability dedup via root-level initDataList[], but does NOT cover Point (3) per-language override (lang as mdhd.language override extender) or Point (4) Safari/FairPlay avc1/hvc1 requirement — both remain open on Issue #153. Carry-forward: Tobbe now has 3 paths: (a) review PR #166 and signal whether Point 2 is closed for him; (b) file a follow-on PR for Points 3-4; (c) request schema treatment of Points 3-4 via the same initDataList[] mechanism (e.g., per-track override sub-objects). The fastest path to both sides getting closure is probably (a) + (b) in parallel — accept #166 as closure of Point 2 and push Point 3-4 as a separate diff. Wider impact: this is the first observed case where the wiki user’s own design contribution gets shipped by a different contributor before the user could ship it — a structural validation that the moq-wg/msf editor cycle is responsive to outside-Akamai design input even if absorbing it into editorial control.
  • The PR #1503 AI Attribution H2 promotion is the third evolution of the LLM-disclaimer norm in 4 days and the most editorially-sophisticated of the three — PR #1469 added a single-rule line; PR-body dogfooding via PR #1484 + #1494 extended the rule informally to PR-description prose; PR #1503 codifies “LLM-authored prose visible to humans” with explicit exemptions for code, doc-comments, and /doc pages. The exemption design is sophisticated norm engineering: it preserves disclosure where humans read it editorially (issue replies, PR descriptions, design docs) and avoids disclosure-noise where it would clutter without informing (inline source comments, generated docs, technical reference pages). Carry-forward: this is now the most explicit AI-attribution framework in any tracked MoQ codebase. Two open questions: (1) does any moq-wg repository (especially moq-wg/moq-transport where afrind has used prose disclaimers) adopt a parallel rule before or at London? (2) does the rule survive the first PR-body-from-Claude that intentionally omits the disclaimer to test whether the convention is human-enforceable vs only-bot-enforceable? Wider impact: PR #1503’s exemption-list is the templatable form other projects can copy — most AI-disclosure conventions in OSS today are include everything and create disclosure fatigue; PR #1503’s include only where editorial is a useful counter-pattern.
  • PR #1504’s 12-hour cycle from natmurella’s Issue #1499 to in-flight fix is the validation signal for moq-dev/moq’s “merge fast, monitor downstream, fix on demand” pattern: the May 22-25 ~40-PR refactor wave (CMSF unified pipeline, LOC support, MKV/WebM I/O, audio FFI, moq-lite→moq-net rename, moq-clock removal, server FFI, Go bindings, Homebrew/.deb/.rpm distribution channels) shipped a known-unknown blast radius. natmurella’s gossip-discovery regression was the first regression report from a non-Cloudflare-non-AWS-non-Eyevinn user to be both filed and have a fix-in-flight within 24 hours. The fact that PR #1504 also re-introduces the previously-removed variable name (--cluster-node) is structural evidence that the removal was a refactor casualty, not an intentional design change. Carry-forward: the next 2-3 weeks before London will see whether the other 3 external-user issues (mirakae #1500 HLS audio fragment aggregation, danrossi #1501 JS reconnect, kixelated-self #1508 DNS retry) get similar same-day fix cycles, or whether the pace settles to a more triaged turnaround. Adoption-vs-velocity tension is now an observable phenomenon. Wider impact: the 12h cycle plus the explicit “Fixes #1499” in PR #1504 builds the operator-trust signal moq-dev/moq needs to keep adoption growing during a high-velocity refactor period; the Day-1 1015-1100 Joining FETCH slot at London is the next chair-led discussion where operator-velocity-trust signal would matter.
  • Martin Duke’s June 22 + July 6 virtual interim schedule (announced May 25 17:44 UTC) settles the post-London cadence with all four consensus calls already closed: the cascading deadlines (May 26 Object Filters close + DTS/SWITCH show-of-hands → June 4 DTS/SWITCH close → June 5 Filters close → June 11-12 London formal) all resolve before June 22, so June 22 is the first interim where the WG can take stock of the four closed consensus calls together. Carry-forward: Martin’s June 8 feedback deadline strategically lands the day before London opens, so the post-London schedule is settled before participants arrive in London. The 6-week London→June 22→July 6→Vienna cadence mirrors the Apr 27→May 26 two-interims-in-the-gap pacing — Martin’s chair-cadence is now established as two interims per IETF-to-IETF cycle, giving the WG ~3 weeks per interim for written discussion + editorial follow-through. Wider impact: this is the first explicit post-London chair-coordination move, and it lands before any London-specific disposition has been recorded. The lack of any agenda preview for June 22 / July 6 is itself a signal — Martin is reserving slots for whatever falls out of London (filters disposition, MSF schema decisions, SWITCH/DTS adoption outcome, joining-FETCH consensus) rather than pre-committing to topics.
  • The interop runner’s +9 total / +5 pass May 26 delta is the first observed matrix-shape change since the May 13 4-PR registry expansion, but is far smaller than gmarzot’s predicted ~+75 from PR #71: only 9 new tests appeared (177 vs 168) and only 5 of them passed. The version breakdown 97-at-target / 8-ahead / 72-behind shows the matrix is now exercising 97 cells against the actual draft-16 target with the moqx-docker rows partially populated. Carry-forward: the gap between gmarzot’s local-validation table (~+75 passes for 6/6 against well-behaved clients) and the runner’s observed +9/+5 means at least one of three things is true: (a) the runner’s docker bringup is producing test failures the local table didn’t see (most likely; CI environments differ from local moq-rs validation rigs), (b) PR #71 only added moqx-as-relay rows against a subset of clients (partial-row insertion), (c) the docker adapter is silently producing skip results that count as fails. A runner-side post-mortem of this matrix-shape change before London is structurally needed — without one, the matrix-shape signal becomes ambiguous (did PR #71 work as designed but the runner is mis-instrumented, or did PR #71 surface real interop gaps in moqx?). Wider impact: London hackathon is 14 days away. The matrix’s 8-day cadence is its longest sustained streak since the May 14-18 outage; the +9/+5 delta from PR #71 means the draft-revision lag (PR #68 target bump still OPEN since May 18) is now the only outstanding matrix-shape item before London — three implementations on draft-18 main vs the matrix on draft-16 makes the matrix structurally lag the field. PR #68’s status (OPEN, no commits since May 19) is the structural gap that PR #71’s partial-success does not address.

2026-05-25 — moq-dev/moq audio FFI; LLM-disclaimer dogfooded; Cullen agenda skeptic

TL;DR:

  • Third consecutive overnight merge wave on moq May 24 06:00 UTC → May 25 ~05:00 UTC (~17 PR events, all kixelated plus 2 external-contributor merges; three-day cumulative ~40 merges, the largest three-day window the wiki has tracked). Theme is audio FFI gap closure + Rust/JS namespace cleanup + first dogfooding of the PR #1469 LLM-disclaimer norm. Headline: PR #1484 “feat: add moq-audio crate, raw-audio FFI, and rename moq-codec to moq-video” MERGED 22:41 UTC (+2576/−71 across 39 files) — new rs/moq-audio crate (Opus encode/decode of raw PCM over moq-mux + hang, rubato resampler so callers can pass any WebCodecs AudioData.format/rate, generic Encoder/Decoder traits with Opus impl at fixed 20 ms frames), moq-ffi + libmoq gain raw-audio publish/subscribe APIs so Python/Swift/Kotlin/C callers can drive a microphone or speaker without bringing their own codec library; ~340 KB stripped size impact for bundled libopus in libmoq_ffi.dylib. Renames empty moq-codec placeholder → moq-video (squat the name; audio/video have different enough I/O shapes to live in separate crates). PR description ends with (Written by Claude) line — first PR to apply the PR #1469 LLM-disclaimer norm in practice, less than 22h after that norm merged. PR #1492 “Remove moq-lite stub crate” MERGED 23:00 UTC (+3/−479) — drops the deprecated rs/moq-lite re-export of moq-net left over from the rename, completing the moq-lite → moq-net Rust-side rename that opened May 18 with PR #1428; protocol-level moq-lite references (wire protocol, ALPN strings, concept/layer/moq-lite docs) intentionally untouched. PR #1498 “js: re-export @moq/net as Net (deprecate Lite/Moq aliases)” MERGED May 25 01:36 UTC@moq/publish + @moq/watch + @moq/hang standardise on Net namespace, Lite + Moq stay as @deprecated aliases. PR #1494 “moq-clock: convert to a moq-native example” MERGED May 25 00:02 UTC (+224/−764) — deletes standalone rs/moq-clock crate, moves source into rs/moq-native/examples/clock.rs alongside the existing chat.rs example; fixes release-plz release failure on main; also ends with (Written by Claude) disclaimer. External-contributor double-merge by metapox (taku) May 24 22:56-22:57 UTC: PR #1396 “feat(lite): implement SUBSCRIBE_UPDATE API for JS subscriber and publisher” (closes Issue #1363 from Apr 30, 24-day cycle) + PR #1397 “fix(lite): update in-flight group priorities on SUBSCRIBE_UPDATE” — adds track.updatePriority(priority) method via internal Signal + SubscribeUpdate send/apply path; motivated by metapox’s own moq-multicam multi-camera streaming project where camera switching needs instant priority changes without re-subscribe to avoid replaying stale groups from relay cache. PR #1485 “hang: non_exhaustive VideoConfig/AudioConfig with constructors” MERGED 18:06 UTC — continues the pre-1.0 API freeze begun by PR #1472. PR #1486 “ci(rs): add cargo-deny” MERGED 18:27 UTC — security/licensing audit added to CI. Plus 8 smaller merges (#1480/#1481 dependabot, #1482 docs lib/bin grouping, #1483 infra: reuse SIGNING_KEY, #1488 fix Kotlin release + stop publishing moq-clock, #1489 multi-segment —stats-node values + cargo-deny to ci, #1490 moq-token-cli stdin/stdout, #1491 relay(stats) TOML config fix, #1497 ci(rpm) skip rclone bucket probe, 1475 release-plz auto-PRs). Still-open follow-ons: PR #1473 “moq-net: runtime Timescale/Timestamp; container::Frame keeps source scale” (follow-on to #1439); PR #1487 “moq-mux: catalog filter/target and Annex-B exporters”; PR #1495 “moq-mux: replace anyhow with thiserror”; PR #1371 “hang: cross-broadcast track references in renditions” OPEN. NEW issue #1499 by natmurella May 25 05:02 UTC: “old leaf discovery strategy gone?” — external user observing a relay-topology behavior change post-refactor; first downstream notice of an unannounced behavioral regression.
  • Cullen Jennings (Cisco) publishes the first public criticism of Martin Duke’s May 21 final London agenda (archive, May 24 14:27 UTC / 08:27 PDT): “I do not think we will make any progress with this agenda. Every topic on it does not have enough time for any meaningful discussion to resolve the issues.” Recommends “pick a limited set of important topics that needs face to face time and finish them” — identifies filters / top N as his preferred London priority. First push-back on the May 21 final agenda since publication, from a senior contributor whose own Secure Object slot was already compressed to 20 min (−60%) and whose 5-minute Top-N slot was kept on the Day-2 conditional agenda. moqx docker adapter shipped on englishm/moq-interop-runner: PR #71 MERGED May 25 03:18 UTC by Giovanni Marzot — new adapters/moqx/Dockerfile.relay wraps ghcr.io/openmoq/moqx:latest with the runner’s /certs convention + UDP port 4443, adds roles.relay.docker to the moqx implementation entry, registers publisher role. Expected next-matrix impact: moqx-as-relay column moves from 13/18 (no docker) to ~75+/162 with full docker bringup for well-behaved clients (moqx, moxygen, moq-rs-*, aiomoqt, moqlivemock all reaching 18/18 against moqx in the local validation table). First matrix-shape change of the post-May-18 cadence-recovery period; will hit the May 26 report. moqtail Day-2 relay-conformance fix by Zafer Gürel: PR #201 MERGED May 24 21:15 UTC “fix(relay): deliver mid-subgroup objects to late subscribers” (+165/−67, 5 files) — caches SubgroupHeader in Track::active_headers map keyed by StreamId when first object of a new subgroup arrives so late subscribers get a new QUIC send stream rather than silently dropping header_info=None objects; second consecutive day of relay-conformance bug fixes (PR #199 FETCH_OK May 23, PR #201 mid-subgroup join May 24). Pattern: methodical pre-London relay hardening. Mailing list: 4 messages May 24 — Cullen’s agenda critique + weekly github digest auto-bot summary + Mo Zanaty Object Filters reply (already covered May 24 wiki entry) + Alan Mallett “Fwd: Your requested identity verification code” (third spam from same address in 4 days, still no chair moderation follow-up). moq Slack quiet 5 days beyond gazzy May 20 15:22 CEST Moqintosh announcement (longest stretch since the May 11 interim). Issue #164 on moq-wg/msf updated May 24 17:56 UTC by kixelated (only moq-wg repo activity).
  • Implementations: moq third consecutive overnight merge wave (~17 PR events; audio-FFI gap closure + Rust/JS namespace cleanup + first PRs dogfooding PR #1469 LLM-disclaimer norm + external metapox SUBSCRIBE_UPDATE merge + pre-1.0 API freeze continuation + new issue #1499 leaf-discovery regression). moqtail Day-2 relay-conformance fix (Zafer Gürel PR #201 mid-subgroup join + PR #202 release auto-PR). moq-interop-runner first commit since May 19 (PR #71 moqx docker adapter by gmarzot, expected next-matrix +moqx-relay expansion). moq-rs, moq-js, imquic, moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, google/quiche moqt all quiet (last quiche commit 083b83b3 May 20 22:36 UTC = Day +4).
  • Interop: 168 / 42 / 125 / 0 at 2026-05-25 00:45:06 UTC−3 pass vs May 24 (45 → 42, pass rate 26.8% → 25.0%, −1.8pp), the matrix has now registered two consecutive day-over-day regressions (May 24 −1, May 25 −3) following the May 23 +4 recovery; rolling 5-day band tightens to 42–46 pass. 7 consecutive days of daily cadence (May 19/20/21/22/23/24/25) — extends the post-May-14-18-outage streak. Plausible attribution: moq-dev/moq’s continuing main-branch refactor (moq-codec → moq-video rename, moq-clock removal, moq-lite stub removal, moq-mux per-codec/per-container restructure follow-ons). Target still draft-16 (PR #68 OPEN since May 18, no new commits since May 19). The May 25 report ran at 00:45 UTC, before PR #71 (moqx docker adapter) merged at 03:18 UTC, so the matrix-shape expansion will hit the May 26 report.

Operation: Update Sources:

  • Slack: #moq quiet ~5 days beyond gazzy May 20 15:22 CEST Moqintosh announcement (longest stretch since the May 11 interim). #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-wg/msfIssue #164 updated May 24 17:56 UTC by kixelated (continued discussion on require-sample-rate-and-channels for audio tracks).
    • moq-transport, loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: ~17 PR events May 24 06:00 UTC → May 25 ~05:00 UTC. Merges: #1480 (dependabot), #1481 (dependabot), #1482, #1483, #1485, #1486, #1488, #1489, #1490, #1491, #1492, #1493, #1494, #1396 (metapox external), #1397 (metapox external), #1484 (audio FFI), #1497, #1498, #1475 (release). Open: #1471 still pending merge state (closed prior day), #1473, #1487, #1495, #1496 (release), #1371, #1401, plus older #1448. New issue #1499 (natmurella May 25). Closed (without merge): #1479 (Joshalphonse).
    • moqtail/moqtail: PR #201 zafergurel MERGED May 24 21:15 UTC (mid-subgroup join fix) + PR #202 release auto-PR.
    • englishm/moq-interop-runner: PR #71 gmarzot MERGED May 25 03:18 UTC (moqx docker adapter + URL update + publisher role). PR #68 still OPEN.
    • google/quiche (quiche/quic/moqt): No new commits since 083b83b3 martinduke May 20 22:36 UTC (Day +4 quiet).
    • cloudflare/moq-rs, video-dev/moq-js, meetecho/imquic, birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token: All quiet.
  • Mailing list: 4 messages May 24: Cullen Jennings “Re: London Interim Preliminary Agenda” (14:27 UTC) + Weekly github digest (auto-bot) + Alan Mallett “Fwd: Your requested identity verification code” (third spam carry-forward; still no chair moderation) + Mo Zanaty Object Filters May 24 (already covered in May 24 wiki entry).
  • IETF Datatracker: No new revisions May 24 or 25. WG state: transport-18 (Day +13), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +19), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-25 00:45:06 UTC: 168 / 42 / 125 / 0 (−3 pass vs May 24, 25.0% pass rate). 7-day cadence holding. PR #71 (moqx docker adapter) merged after report cut, so the matrix-shape expansion hits May 26.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +25 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions-2026-05.md (new “May 24 06:00 UTC → May 25 06:00 UTC” section covering: moq-dev/moq third-day ~17-PR cluster with audio FFI gap closure (PR #1484) + Rust/JS namespace cleanup (PRs #1492 / #1494 / #1498) + first dogfooding of PR #1469 LLM-disclaimer norm, external-contributor metapox SUBSCRIBE_UPDATE double-merge with 24-day issue close cycle, Cullen Jennings agenda-skeptic letter as first push-back on the May 21 final London agenda, moqx docker adapter PR #71 with expected next-matrix +moqx-relay expansion, moqtail Day-2 relay-conformance fix, moq Slack 5-day quiet, interop 168/42/125 second-consecutive regression), implementations/moq-dev.md (May 25 entry: ~17-PR cluster + audio FFI gap closure + 3-day cumulative ~40 merges + LLM-disclaimer first dogfooding), implementations/moqtail.md (May 25 entry: PR #201 mid-subgroup join + Day-2 relay-conformance pattern), interop/interop-runner.md (May 25 168/42/125 callout + table row + PR #71 next-matrix-impact note), interim-meetings.md (Cullen May 24 agenda-skeptic note), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The audio FFI gap closure on PR #1484 is the second of two structural FFI-completeness moves in 48 hours (PR #1417 server API May 23 + PR #1484 audio May 24). With both merged, moq-dev/moq’s FFI now exposes (a) every transport role (client + server), (b) raw-audio publish/subscribe in Opus without an external codec library, across Python/Swift/Kotlin/C, and (c) the existing video pipeline via WebCodecs in JS. The crate split moq-codecmoq-video + moq-audio is structural: it pre-positions video-side raw-frame FFI symmetry (PR #1484 explicitly notes “Once the input/output story for video samples is settled it can mirror moq-audio’s structure”). Carry-forward: by London, the moq-dev/moq value proposition shifts from “single-tree multi-language client” to “single-tree multi-language full-stack with native codec helpers” — Python and Swift apps can now drive microphones end-to-end without external dependencies. Wider impact: the AAC out-of-scope note (“Codec module shape is generic so it can drop in later behind its own feature”) leaves room for third-party crate contributions for AAC encode/decode parity; this is a structural extensibility hook for non-kixelated contributors who want to land in moq-audio without disturbing the Opus default.
  • The PR #1469 LLM-disclaimer norm is fully dogfooded within 22 hours of its merge: PR #1484 (audio FFI) and PR #1494 (moq-clock removal) both end with (Written by Claude) lines, the first PRs in the wiki’s tracking to apply the explicit AI-disclosure marker in PR descriptions. Structurally interesting: the disclaimer norm was added to CLAUDE.md for source-code comments, not PR descriptions; kixelated’s same-day extension to PR bodies shows the norm propagating to adjacent surfaces (PR description = the editorial layer adjacent to the diff). Carry-forward: the next AI-skeptic-narrative test is whether non-moq-dev MoQ repos (especially moq-wg/moq-transport where afrind has already been using a “With apologies for answering your question with AI” prose disclaimer) move toward a similar codified marker. Wider impact: this is the fastest community-norm adoption the wiki has tracked — 22-hour norm-merge-to-dogfood cycle vs the 4–6 day inter-event cadence on the broader AI-skeptic narrative (Mike English May 18 → Lorenzo May 19 → afrind May 22 → PR #1469 May 24).
  • Cullen Jennings’s agenda-skeptic letter is the first structural counter-pressure to the May 21 final London agenda, and it lands from a senior contributor who already lost agenda territory in the May 21 compression: Cullen’s Secure Object slot was cut from 50 → 20 min (−60%) and his Top-N slot was kept only on the Day-2 conditional agenda. His “pick a limited set of important topics that needs face to face time and finish them” framing, with filters/top-N as his top pick, structurally aligns with Mo Zanaty’s (already the dominant Object Filters mailing-list voice 3-of-4 messages May 23-24). Carry-forward: the May 26 interim is now bracketed by two consensus-call closes (Magnus’s Object Filters call closing same day) and two senior contributors (Cullen + Mo) advocating for more time on filters, less on other topics. If Martin Duke concedes any agenda repacking, the prior beneficiaries (afrind’s 180-min slot and Will Law’s MSF/CMSF 35-min slot) become the targets. Wider impact: the agenda-compression-vs-substance tension that has been latent since the May 21 “did not have time to meet all the requests” note is now a public list discussion; the May 26 interim outcome (SWITCH/DTS show-of-hands + Object Filters consensus close) will be the proxy disposition for whether the London formal agenda holds or gets repacked.
  • The moqx docker adapter PR #71 is the first matrix-shape change of the post-May-18 cadence-recovery period and will materially reshape moqx-relay coverage on May 26: gmarzot’s local validation table shows moqx-as-relay reaching 18/18 against moqx, moxygen, moq-rs-draft-16, aiomoqt, and moqlivemock in docker mode (the prior 13/18 remote-only configuration limited moqx to 2 transport modes × 6 tests). Expected next-matrix impact: moqx-as-relay column moves from 13/18 to ~75+/162. Carry-forward: this fills the matrix gap raised by openmoq/moqx#316 (“why does moqx only run 12/12 vs moq-rs’s 18/18?”) and demonstrates that the adapter pattern works for third-party docker images (the prereq landed upstream as MOQX_ENDPOINT env var in openmoq/moqx#319). Wider impact: this is the second-of-two outstanding matrix-shape items (the other being PR #68 draft-18 target bump, still OPEN since May 18). If May 26’s report shows ~75 moqx passes added without breaking other rows, the matrix will have validated its docker-adapter-per-impl posture as the path forward — but the draft-revision lag (matrix on draft-16, three+ impls on draft-18) remains the structural gap that PR #71 does not address.
  • The second consecutive day-over-day pass-count regression (May 24 −1, May 25 −3) confirms that the interop matrix is now sensitive to single-day-cluster-PR effects on moq-dev/moq: the −3 today lands during the third consecutive overnight cluster (moq-codec rename, moq-clock removal, moq-lite stub removal, moq-mux follow-ons), and is causally consistent with the wire-level-refactor-sensitivity hypothesis established May 21-22. Rolling 5-day band tightens from 42–46 to 42–46 (same), but trajectory is downward over 3 days (46 → 45 → 42). Carry-forward: if PR #71 (moqx docker adapter) lands ~75 passes on May 26, total pass-count would jump to ~117/168 (~70%), but the moqx delta is structural matrix-shape, not implementation-quality, so the band-of-comparison shifts. After PR #71 hits the May 26 report, the matrix-quality signal will need to be read against the new equilibrium band, not the pre-May-26 42–46. Wider impact: the draft-revision lag remains the structural gap — PR #68 (draft-18 target bump) has been OPEN since May 18 with no commits since May 19, while moq-dev/moq is shipping audio FFI + post-rename cleanup on draft-18 daily. London hackathon is 17 days away.

2026-05-24 — moq-dev/moq Go FFI + server API + LLM-disclaimer norm; Tobbe joins MSF #153

TL;DR:

  • Second consecutive ~14-PR overnight merge wave on moq May 23 17:56 UTC → May 24 01:30 UTC (~7.5h, all kixelated; two-day cumulative ~24 merges), theme distribution + binding + API hardening. Headline: PR #1470 Go bindings MERGED (+827/−4, 13 files, uniffi-bindgen-go v0.7.1+v0.31.0, 5-target CI matrix linux/darwin/windows × amd64/arm64) — Go added as 4th FFI language after Python+Kotlin+Swift; net language coverage Rust + TypeScript + Python + Swift + Kotlin + Go from a single tree = first 6-language MoQ stack; consumer model go get github.com/moq-dev/moq-go@vX.Y.Z via mirror repo. PR #1417 “Add MoQ server API with session acceptance and handshake” MERGED (+1120/−5, 12 files) — new MoqServer + MoqRequest types expose server role through ALL FFI bindings (previously client-only); Python server_smoke.py demonstrates Python-as-MoQ-server, structurally lowering the barrier to building relays in Python/Swift/Kotlin/Go. PR #1469 “docs: require LLM disclaimer on AI-authored comments” MERGED (+2/−0 in CLAUDE.md: “when an LLM leaves a comment, it should include a short disclaimer like // Written by Claude…“) — first project-level mandatory-LLM-disclaimer policy in any tracked MoQ codebase, direct institutional response 22h after the May 22 moq-wg/moq-transport Issue #1636 afrind AI-hallucination incident; 4th community-side AI-skeptic event in 6 days, first one producing a written normative artifact. PR #1456 Homebrew tap + PR #1457 .deb/.rpm packaging (apt.moq.dev / rpm.moq.dev Cloudflare Workers) — first Linux/macOS binary distribution channels for moq binaries. PR #1452 moq-mux restructured into per-codec + per-container modules (pre-extensibility for future containers like m2ts). PR #1472 Tighten public APIs ahead of release (#[non_exhaustive] + builders) — pre-1.0 API freeze signal. Plus 6 CI fixes + 5 dependabot bumps. Net distribution model post-May 24: cargo/npm/pip/PyPI/brew/apt/dnf/SPM(in-flight)/Maven(in-flight)/Go-mirror = 9 distribution channels in production or in-flight, unique footprint. Torbjörn Einarsson (the wiki user) substantive 4-point comment on moq-wg/msf Issue #153 May 23 16:02 UTC re-opens catalog-bloat / mid-stream-init-change conversation (suhasHere May 14 had asked to close): (1) cross-packaging dedup as design opportunity, (2) readability-not-just-compression rationale for root initDatas[], (3) lang-as-mdhd.language-override as dedup-extender, (4) Safari/FairPlay requires avc1/hvc1 not avc3/hev1 — Will Law’s “use AVC3” resolution doesn’t cover Safari/FairPlay pipelines. Offers a focused PR for initDatas[] + initDataRefID — would be the first MSF schema additive contribution from outside the Akamai/Cloudflare/Cisco/Google/AWS core. Magnus Westerlund “Consensus call on Object filters” thread sees 4 more messages May 23-24 (Mo Zanaty ×3, Alan Frindell ×1), continuing the May 22-23 afrind ↔ Mo Zanaty PR 1518-interpretation back-and-forth — deadline May 26 = 2 days away; Mo Zanaty’s 3-of-4 dominance is structurally significant for the show-of-hands interim May 26.
  • Implementations: moq ~14-PR overnight merge wave (Go FFI + server API + Homebrew + .deb/.rpm + moq-mux restructure + LLM-disclaimer norm + API hardening + CI + dependabots). moqtail breaks long-quiet streak May 23: Zafer Gürel 1c209c5b fix(relay): send FETCH_OK for all non-empty fetch ranges (PR #199) + Ali Begen client-js commits 28c04571 / b69009be + PR #200 release. moq-rs, moq-js, imquic, moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport all quiet. google/quiche moqt quiet Day +3 (last 083b83b3 martinduke May 20 22:36 UTC). englishm/moq-interop-runner PR #68 (draft-18 target bump) still OPEN, no new commits since May 19.
  • Interop: 168 / 45 / 122 / 0 at 2026-05-24 00:43:56 UTC−1 pass vs May 23 (46→45, pass rate 27.4% → 26.8%, −0.6pp), skip drops 1 → 0 (previously-skipped test now runs, contributing to the +1 fail delta). 6 consecutive days of daily cadence (May 19/20/21/22/23/24) = longest stretch since the May 14-18 outage. Rolling 5-day band 42–46 pass. Target still draft-16 (PR #68 OPEN).

Operation: Update Sources:

  • Slack: #moq quiet 84h+ beyond gazzy May 20 15:22 CEST Moqintosh announcement (longest quiet stretch since May 11 interim). #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-wg/msfIssue #153 substantive 4-point comment by tobbee May 23 16:02 UTC (1163 words) re-opening catalog-bloat / mid-stream-init-change discussion; offers focused PR for initDatas[] + initDataRefID. No other moq-wg repo activity.
    • moq-transport / moq-wg/loc / secure-objects / cmsf / catalog-format / privacy-pass: All quiet (Issue #1636 last comment May 22 21:45 UTC afrind apology; no new comments).
  • GitHub implementations:
    • moq-dev/moq: ~14-PR merge wave May 23 17:56 → May 24 01:30 UTC (#1417 / #1452 / #1456 / #1457 / #1463 / #1464 / #1465 / #1466 / #1467 / #1468 / #1469 / #1470 / #1471 / #1472 / #1474 / #1476 / #1477 / #1478 / 5 dependabots #1458–#1462) plus open follow-ons (#1473 follow-on to #1439, #1475 chore release). Total merge cluster ~24 in two days May 22-24.
    • moqtail/moqtail: 5 commits May 23 (Zafer Gürel 1c209c5b PR #199 FETCH_OK fix + Ali Begen 28c04571 + b69009be client-js fixes + 2 release-bot commits PRs 200).
    • google/quiche (quiche/quic/moqt): No new commits since 083b83b3 martinduke May 20 22:36 UTC (Day +3 quiet).
    • cloudflare/moq-rs, video-dev/moq-js, meetecho/imquic, birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token: All quiet.
    • englishm/moq-interop-runner: PR #68 still OPEN; no new commits since May 19.
  • Mailing list: 4 messages May 23-24 all on Magnus Westerlund “Consensus call on Object filters” thread: Mo Zanaty May 23 (archive) + Alan Frindell May 23 (archive) + Mo Zanaty May 23 (archive) + Mo Zanaty May 24 (archive). No other threads.
  • IETF Datatracker: No new revisions May 23 or 24. WG state: transport-18 (Day +12), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +18), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-24 00:43:56 UTC: 168 / 45 / 122 / 0 (−1 pass vs May 23, 26.8% pass rate, skip 1→0). 6-day cadence holding.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +24 since #1.
  • tobbee/moq-llm-wiki: No open issues.

Pages updated: discussions-2026-05.md (new “May 23 06:00 UTC → May 24 06:00 UTC” section covering: moq-dev/moq second-day ~14-PR cluster with Go FFI + server API + LLM-disclaimer + Homebrew + .deb/.rpm + moq-mux restructure + API hardening, PR #1469 first-project-level mandatory-LLM-disclaimer norm + direct causal chain from Issue #1636, PR #1470 Go bindings = 6-language stack analysis + Tobbe-as-Go-user implication, PR #1417 server API lifts moq-dev/moq from client-library to full-stack-binding, PRs 1457 first Linux+macOS binary distribution channels + 9-channel footprint table, Tobbe May 23 MSF Issue #153 4-point substantive comment + Safari/FairPlay AVC3 limitation + initDatas[] PR offer, moqtail Zafer + Ali Begen May 23 cluster breaks long-quiet, Object Filters consensus-call thread 4 more messages, moq Slack 84h+ quiet, interop 168/45/122/0 with 6-day cadence), implementations/moq-dev.md (May 24 entry: 14-PR cluster + 6-language coverage table + 9-channel distribution model), implementations/moqtail.md (May 24 entry: PR #199 FETCH_OK + Ali Begen client-js cluster), drafts/moq-msf.md (Tobbe Issue #153 4-point comment summarised), interop/interop-runner.md (May 24 168/45/122/0 callout + table row), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The Go bindings + server API + LLM-disclaimer triple on May 23 is moq-dev/moq’s most explicit “this is becoming an ecosystem product, not just an implementation” signal yet. Two days after the LOC/CMSF/MKV container-format triple-merge (the implementation-feature peak), kixelated pivots to ecosystem infrastructure — Go FFI brings moq-dev/moq to the 6-language coverage that Eyevinn/moqtransport (Go-only), gazzy/Moqintosh (Swift-only), and other tracked impls cannot match; the server-side FFI lifts every binding language from “consume a MoQ relay” to “build a MoQ relay”; Homebrew + apt + rpm move from cargo install developer-only to consumer-grade Linux/macOS distribution. Carry-forward: by London, moq-dev/moq is positioned to demo “build a relay in Python in 20 lines, install via brew on macOS, install via apt on Debian” — a deployment-friction profile no other tracked MoQ implementation can match. The pre-1.0 API freeze (#[non_exhaustive] + builders in PR #1472) suggests moq-net v1.0 may ship at or shortly after London. Wider impact: the “single repo, six languages, server + client, three distribution channels per OS” posture is structurally how kixelated is competing against the IETF-standard moq-transport — productisation outruns standardisation.
  • The PR #1469 mandatory LLM-disclaimer norm is the first written normative artifact in the MoQ community’s 6-day AI-skeptic-narrative arc: events 1-3 were discussion-only (Mike English / Giovanni Marzot resolution May 18, Lorenzo Miniero “stay away from AI” May 19, afrind #1636 apology May 22). PR #1469 is a 2-line CLAUDE.md edit by kixelated but represents a project-level decision that AI-authored comments MUST be labeled at the source-tree level — making them visible during review and future maintenance. Carry-forward: expect propagation to other MoQ codebases that have been receiving AI-assisted contributions; most directly the moq-wg/moq-transport issue threads where afrind’s preemptive “With apologies for answering your question with AI” disclaimer has already normalised the practice. The structural question this raises for moqlivemock (where Tobbe has been transparent about AI-tooling use) and moq-dev/moq (where #1469 is now enforced) is whether the IETF moq-wg adopts a parallel norm in some written form — currently the disclosure norm is socially required but not procedurally encoded. London Day-1 may surface this as an editorial agenda item or chair-clarification ask.
  • Tobbe’s MSF Issue #153 comment is the first moment the wiki user becomes a wiki subject: by submitting a substantive 4-point design comment on moq-wg/msf and offering to ship a focused PR, Tobbe enters the same content stream the wiki is tracking. The 4 points cover orthogonal dimensions (dedup, readability, override semantics, AVC3-limits-due-to-Safari/FairPlay), each potentially generating its own follow-on issue. Point 4 (Safari/FairPlay requires avc1/hvc1, not avc3/hev1) is the most spec-actionable: it falsifies the suhasHere/wilaw May 14 closing rationale (“streams requiring mid-stream parameter re-initialization can leverage AVC3 self-initializing segments”) for any deployment targeting Safari/FairPlay DRM, which is the dominant consumer-iOS path. Carry-forward: if Tobbe ships the offered initDatas[] + initDataRefID PR, it would be the first MSF schema additive contribution from outside the Akamai/Cloudflare/Cisco/Google/AWS core, and the Safari/FairPlay datapoint will flow into the Cullen Jennings Secure Object London Day-2 discussion (DRM-init-handling cuts across MSF/CMSF/Secure Objects). Wider impact: the wiki user-becomes-subject pattern is the strongest validation signal yet for the Karpathy LLM-wiki concept — the user’s own contributions are now tracked alongside the rest of the ecosystem, and the wiki must self-consistently treat them by the same news-judgement rules.
  • The 6-day daily-cadence interop streak with rolling 42–46 pass band is the new equilibrium: post the May 14-18 5-day outage and May 19-23 +35→+38→+46→−4→+4 oscillation, the May 24 −1 settles the matrix into a 42-46 pass / 121-125 fail steady state. The −1 today is causally legible (PR #1452 moq-mux restructure changed file paths; #1474 follow-on shipped gitignore fix), demonstrating the matrix is now sensitive enough to register single-PR effects within 24h. Carry-forward: this is the cadence-and-stability profile the matrix needs to hit by London — daily cadence + within-band oscillation that reflects upstream PR-level activity. The remaining structural gap is the draft-16 target vs draft-18 implementation reality: PR #68 has been OPEN since May 18 with no commits since May 19, and 3+ implementations are on draft-18 main. The June 11 London hackathon needs draft-18 matrix coverage to have credibility — the next 18 days are the structural window for PR #68 to merge.
  • The Magnus Westerlund Object Filters consensus call deadline (May 26) is now 2 days away with Mo Zanaty as the dominant participant: 3 of the last 4 messages in 26h are by Mo, with afrind’s single response continuing the May 22-23 PR 1518-interpretation back-and-forth. The May 26 interim was repurposed by Martin Duke May 21 as a “SWITCH/DTS show-of-hands” meeting but the Object Filters call closing May 26 will overlap. Carry-forward: the May 26 interim is now structurally the disposition moment for Object Filters (consensus call closes that day) plus the disposition signal for SWITCH/DTS (Martin’s show-of-hands) — two consensus call outcomes in one ~90-minute window. Expected disposition: Object Filters PR #1518 moves toward editorial integration (Mo Zanaty’s read of “filters apply to PUBLISH+Objects” not contested), SWITCH/DTS get a show-of-hands signal that informs Martin’s June 4 formal consensus close. Mo Zanaty’s continued mailing-list dominance is the early indicator that Mo’s London Day-1 50-min slot (already cut from his requested 135 min) will be the focal point for the cascading filter-disposition decisions.

2026-05-23 — moq-dev/moq overnight container-format triple-merge; afrind AI hallucination

TL;DR:

  • moq 10-PR overnight merge wave May 22 18:24 UTC → May 23 02:26 UTC (~8h, all kixelated, ~+7160/−355 across ~120 files) makes moq-dev/moq the first MoQ implementation with all three major container formats unified on main: PR #1444 “feat: Unified CMSF/Hang pipeline (cleanup of #1429)” MERGED (+1278/−14) — kixelated forks AWS’s #1429, strips out-of-scope C API + caller-driven group boundaries, ships MSF-catalog core; third AWS-vs-kixelated design-cycle resolution in 9 days (#1413 close → #1408→#1429 50% shrink → #1429→#1444 33% shrink; AWS net code in merged result ~25-30% of original #1408 scope). PR #1388 “Add Low Overhead Container (LOC) frame format support” MERGED (+844/−16, 30 files) — first LOC impl in the moq-dev/moq stack, new moq-loc Rust crate + @moq/loc JS pkg, votes-with-code for moq-transport-18 §15.8-2 property type IDs (TIMESTAMP=0x06, TIMESCALE=0x08) over the conflicting historical draft-ietf-moq-loc-02 values (TIMESTAMP=0x02) — implementation-side resolution of the moq-wg/loc Issue #20 cross-spec coordination gap. PR #1438 “Add Matroska/WebM import and export support” MERGED (+3087/−66, 18 files) — bidirectional MKV/WebM via rs/moq-mux/src/{import,export}/mkv.rs, supports H.264/H.265/VP8/VP9/AV1 video + AAC/Opus audio; first non-CMAF, non-LOC container packaging shipped in any tracked MoQ impl, predating any individual draft. PR #1442 “Add stats via MoQ broadcasts” MERGED (+1492/−70) — observability dogfooded as a broadcast. Plus 6 smaller merges (PR 1447) covering hang catalog backwards-compat, direnv GC, mandatory reconnect timeout (5min default), broadcast-name catalog format auto-detect, Opus voice-vs-music encoder presets, moq-ffi release pipeline. PR #1448 “swift: wire SPM mirror publish (Phase A)” OPENED May 23 03:08 UTC (next-up in FFI publishing chain). Issue #1636 AI-hallucination incident May 22 afternoon: afrind 18:24 UTC initial reply (prefixed “With apologies for answering your question with AI”) hallucinated “between 1 and 32 Track Namespace Fields” + non-existent line numbers (511 / 544-546 / 3107-3108) claiming 0-element namespaces are PROTOCOL_VIOLATION; RichLogan 21:15 UTC catches the hallucination by quoting actual draft-18 §2.4.1 (“between 0 and 32”); afrind 21:45 UTC explicit apology “Wow, that is pretty embarrassing. I apologize. It spit out that sentence about 1 and 32 and that seemed familiar I didn’t double check it. Ouch.”first explicit on-record acknowledged-AI-hallucination on moq-wg/moq-transport by an editor in spec discussion; third community-side AI-skeptic narrative event in 4 days (after Mike English/Giovanni Marzot resolution + Lorenzo Miniero “stay away from AI”). Martin Duke opens “Consensus call on filters” May 22 12:22 UTC (archive) — “merge all the filters into the MOQT draft except for top N”, deadline June 5 = 4th simultaneous chair-coordinated consensus call (after Joining FETCH Survey, Object Filters May 12, DTS/SWITCH May 21). 4-message afrind↔Mo Zanaty “Object Filters” thread May 22-23: afrind notes ambiguity in PR #1518 (extension-as-extension preference), Mo quotes PR text directly proving filters already apply to PUBLISH + Objects, afrind concedes “Thanks for setting me straight Mo. That’s clear enough and I missed it”, Mo proposes releasing the London Day-1 1015-1020 Track Property Filters slot. New MSF Issue #164 by kixelated “Require sample rate and channels”“It’s reaally annoying that everything is optional”, third successive MSF schema strengthening ask.
  • Implementations: moq 10-PR overnight merge wave (LOC + CMSF + MKV/WebM + stats + Opus + release infra); moq-rs, moq-js, imquic, moqtail, moqxr, quiche_moq, Moqintosh, moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, google/quiche moqt all quiet (last quiche commit May 20 22:36 UTC = Day +2). englishm/moq-interop-runner PR #68 (draft-18 target bump) still OPEN, no commits since May 19.
  • Interop: 168 / 46 / 121 / 1 at 2026-05-23 00:42:56 UTC+4 pass vs May 22 (42→46), pass rate 25.0% → 27.4% (+2.4pp), fully recovers from May 22’s regression restoring to May 21 level. 5 consecutive days of daily cadence (May 19/20/21/22/23). Skip count returns to 1. Target still draft-16 (PR #68 still OPEN).

Operation: Update Sources:

  • Slack: #moq quiet 60h beyond gazzy May 20 15:22 CEST Moqintosh announcement (longest quiet window since May 11 interim). #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-transportIssue #1636 3 substantive comments May 22 18:24-21:45 UTC (afrind initial AI-hallucinated reply + RichLogan catch + afrind apology). No other new issues / PRs.
    • moq-wg/msf — NEW Issue #164 by kixelated May 22 20:17 UTC (require sample rate + channels for audio tracks).
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 10-PR merge wave May 22 18:24 UTC → May 23 02:26 UTC (#1440 / #1441 / #1443 / #1442 / #1444 / #1394 / #1438 / #1388 / #1446 / #1447). Plus PR #1448 OPENED May 23 03:08 UTC. Plus 2 new issues opened May 22-23 (#1445 Opus DTX for voice, #1449 Safari iOS watch demo doesn’t maximise) — both by kixelated + joeblew999 respectively.
    • google/quiche moqt: No commits since 083b83b3 martinduke May 20 22:36 UTC (Day +2).
    • cloudflare/moq-rs, video-dev/moq-js, meetecho/imquic, moqtail/moqtail, birneee/quiche_moq, mondain/moqxr, t-gazzy/Moqintosh, Eyevinn/moqlivemock, Eyevinn/warp-player, Eyevinn/moqtransport, Quicr/cat-token: All quiet.
    • englishm/moq-interop-runner: PR #68 still OPEN; no new commits.
  • Mailing list: 7 messages May 22-23: Martin Duke “Consensus call on filters” May 22 12:22 UTC (archive) + 4-message Object Filters thread (afrind May 22 21:39 UTC + Mo Zanaty May 23 00:29 UTC + afrind May 23 00:48 UTC + Mo Zanaty May 23 01:38 UTC) + Alan Frindell “Re: Joining FETCH Survey” May 22 + Alan Mallett May 22 03:57 UTC “Google Transparency Report” (same spam carry-forward, still no chair moderation follow-up after 31h).
  • IETF Datatracker: No new revisions May 22 or 23. WG state: transport-18 (Day +11), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +17), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-23 00:42:56 UTC: 168 / 46 / 121 / 1 (+4 pass vs May 22, 27.4% pass rate). 5-consecutive-day cadence holding.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +23 since #1.
  • tobbee/moq-llm-wiki: No new open issues (all 3 closed since April).

Pages updated: discussions-2026-05.md (new “May 22 06:00 UTC → May 23 06:00 UTC” section covering: moq-dev/moq 10-PR overnight merge wave + LOC/CMSF/MKV all-three-containers analysis, PR #1444 third AWS-vs-kixelated design-cycle resolution, PR #1388 LOC frame format with property-type votes-with-code, PR #1438 Matroska/WebM bidirectional first-non-spec’d-container, Issue #1636 afrind AI-hallucination incident, MSF Issue #164 kixelated require-sample-rate-and-channels, Martin Duke “Consensus call on filters” 4th simultaneous consensus call, 4-message afrind↔Mo Zanaty Object Filters thread, Slack 60h quiet, google/quiche moqt 60h+ quiet, interop 168/46/121 recovery), interim-meetings.md (added “Consensus call on Object filters” row Magnus May 12 deadline May 26 + “Consensus call on filters” row Martin May 22 deadline June 5 + cascading deadline note), interop/interop-runner.md (May 23 168/46/121 recovery callout + table row), implementations/moq-dev.md (May 23: 10-PR overnight merge wave + LOC/CMSF/MKV table + AWS-vs-kixelated cycle 3 + structural three-container-formats deployment shape), drafts/moq-transport.md (#1636 AI-hallucination incident documented in full), drafts/moq-loc.md (PR #1388 LOC encoder/decoder first-impl-in-moq-dev callout + property type ID votes-with-code), drafts/moq-msf.md (Issue #164 kixelated require-sample-rate callout), drafts/moq-cmsf.md (PR #1444 CMSF/Hang unified pipeline merged callout + third AWS-vs-kixelated cycle), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The three-container-format unification on moq-dev/moq’s main is the most consequential implementation milestone in the wiki’s tracking since draft-18 ship (8 days prior). With CMAF/fMP4 + LOC + MKV/WebM all in one tree, moq-dev/moq is the first implementation positioned to interop on every plausible MoQ packaging value at the London hackathon (June 9-10). The hang::Catalog intermediate representation pattern (single in-memory shape, serializes to MSF or Hang catalog) is the structural answer to the AWS #1408 “parallel CMSF pipeline” approach that kixelated rejected — “CMSF is CMAF with a different catalog format” now demonstrably works as both an architectural principle and shipped code. Carry-forward: by London, moq-dev/moq’s MKV exporter creates a new deployment shape — moq-server-side MoQ-to-MKV transcoding lets standard players (VLC, MPV, browser , dramatically lowering deployment friction for non-real-time use cases. Whether this is positioned as a “MKV is a debug/diagnostic format” or “MKV is a deployment target” will be a kixelated design statement worth watching.
  • The third AWS-vs-kixelated design-cycle resolution (#1429 → #1444) shows the corporate-contributor pattern has stabilised at “kixelated will personally clean up”: previous two cycles (#1413, #1408→#1429) had AWS re-filing in response to review. This third cycle is kixelated forking the AWS branch himself, stripping out-of-scope, and merging — a structurally different relationship. The cumulative AWS code in the merged #1444 is ~25-30% of original #1408 scope (3906 → 1969 → 1278 LOC), but the CMSF feature itself is now live. Carry-forward: the AWS corporate footprint moves from “PR-filer” to “PR-seed-author” — AWS’s main contribution is opening the design conversation, not directly merging large-shape contributions. The Cloudflare/Nokia/Eyevinn/AWS contributor mix is now stably reciprocal but single-maintainer-bottlenecked: ~25 contributions / 5 maintainers ratio in the moq-dev/moq ecosystem means review-throughput by kixelated is the structural rate-limiter.
  • The Issue #1636 AI-hallucination is the first on-record editor-side confirmation that AI-assistance carries reputation risk on moq-wg/moq-transport: afrind’s preemptive “With apologies for answering your question with AI” disclaimer + RichLogan’s catch + afrind’s “Wow, that is pretty embarrassing” apology establishes a norm-formation precedent: AI-generated spec quotes are not trusted without verification, and AI assistance disclosure is becoming socially required. Carry-forward: expect explicit AI disclaimers to become standard etiquette on moq-wg/moq-transport issue threads, and “verify the citation” norms to harden. The substantive question (0-element namespace + empty name: allow or forbid) remains genuinely open and now needs manual editor review at London. Wider impact: this is the third event in a 4-day AI-skeptic-narrative cluster (Mike English/Giovanni Marzot resolution May 18 + Lorenzo Miniero May 19 + afrind May 22) — the MoQ community is collectively crystallizing AI-use norms in real time, with editor-level errors now publicly documented.
  • The 4-simultaneous-consensus-calls structure is the most parallel chair-coordinated decision pipeline in the wiki’s MoQ governance tracking: Joining FETCH Survey (afrind May 11) + Object Filters (Magnus May 12, May 26) + DTS/SWITCH (Martin May 21, June 4) + Filters (Martin May 22, June 5). The Magnus + Martin filter calls overlap in scope but produce a layered disposition matrix: Magnus’s call determines “are Object Filters in MOQT at all?”, Martin’s call determines “if yes, mandatory or extension?“. The cascade deadlines May 26 → June 4 → June 5 → June 11-12 means the London Day-1 0945-1045 filter slate opens with both consensus calls already concluded — radically different agenda dynamics than the May 11 interim where filters were still pre-disposition. Carry-forward: the chair-coordination intensity (Martin Duke 5 mailing-list messages in 26 hours May 21-22) is the structural inverse of his engineering bandwidth — google/quiche moqt has been quiet 60h+ as he handles WG governance. Expect this pattern to persist through London, with the post-London period being the structural moment to watch for resumed Google/quiche commits.
  • The May 22 → May 23 +4 / −4 interop oscillation validates the matrix-against-main design: May 21’s +8 pass jump → May 22’s −4 regression → May 23’s +4 recovery shows the matrix registers both regressions and recoveries within one daily cycle. The wire-level-refactor-sensitivity hypothesis is now confirmed: when moq-dev/moq’s PR cluster is media-pipeline + catalog + stats infrastructure (May 22 wave), the matrix re-stabilises within 24h. When it’s FFI + library refactors (May 21 wave), it briefly regresses. Carry-forward: the matrix is healthy enough to surface real signal, not just noise, but the target-draft-revision lag (PR #68 still OPEN, target still draft-16) means interop validation is happening on a 2-draft-revision-stale wire baseline while moq-dev/moq is shipping LOC + CMSF + MKV on draft-18. The structural gap widens daily until PR #68 merges; Mike English’s bandwidth recovery (#121 + #168 cloudflare/moq-rs May 20 merges) is the only positive signal there.

2026-05-22 — moq-dev Swift+Kotlin FFI ships; London final agenda; SWITCH/DTS consensus call

TL;DR:

  • moq record-tying May 21 PR cluster (7 merges + 4 opens + 1 close + 1 self-close in 24h, ~+6000/−1100 net code): headline PR #1432 MERGED May 22 00:38:56 UTC“Add Swift and Kotlin FFI wrappers” (+1997/−569 across 48 files), shipping first-party iOS/macOS/Android/JVM language bindings via UniFFI 24 hours after gazzy’s Moqintosh announcement on #moq. Plus PR #1438 OPENED “Add Matroska/WebM import and export support” (+3092/−39, third container muxer/demuxer pipeline after CMAF and CMSF), PR #1439 “Add per-track timescale and frame timestamps to moq-lite” (+936/−546, per-track timescale negotiation via SUBSCRIBE_OK — moq-lite-leads-moq-transport-follows precedent), PR #1437 self-closed by kixelated 1h after open“review feedback led us to the right architectural conclusion: the avc3/hev1 importers shouldn’t transcode their own output” (third “right architectural conclusion” self-redirect in 7 days after #1413, #1408, #1437). Plus 2 external-contributor merges (Qizot audio encoder reconfig open since Apr 29 = 23 days, YogiSotho buffering overlay). Chair-triplet on the mailing list within 49 minutes (May 21 17:19 → 18:08 UTC, Martin Duke) structurally locks the May 26 → June 4 → June 11-12 decision pipeline: (1) “26 May Agenda” — interim-2026-moq-16 re-purposed as a SWITCH/DTS show-of-hands meeting, “almost the entire balance of Tuesday’s meeting will be given to Gwendal and Will”; (2) “Consensus Call: DTS and SWITCH” — formal consensus call opened, deadline June 4 (1 week before London opens), 2 questions × 2 docs (PR #1378 + wilaw/dts4moq); (3) “London Interim Preliminary Agenda”final agenda published, “did not have time to meet all the requests”, Day-2 “dependent on the outcome of the SWITCH consensus call”. Compression analysis: Mo Zanaty 135→50 min (−63%), Suhas 55→15 (−73%), Cullen 50→20 (−60%), Will Law 105→35 (−67%), afrind ~240→180 (−25% smallest cut), Tim Evens 15→0 (−100% DENIED). Issue #1633 got a substantive 4-comment make-before-break thread May 21 18:43-21:21 UTC (martinduke ↔ ianswett) where martinduke surfaces a new design alternative: instead of allowing 2 concurrent subscriptions, extend REQUEST_UPDATE with a “start at next group” parameter — “the group-as-join-point thinking in the design is still pretty muddled”. Plus NEW issue #1636 “Empty namespace clarification” by RichLogan (Cisco). moqxr 3 more commits May 21 shifting from docs/i18n (May 20) to feature-adds (“Add live object publish API”, “Add optional MSF media timeline track”) — 17-commit running total May 19-21, highest-cadence open-source MoQ C++ implementation for May.
  • Implementations: moq PR #1432 Swift+Kotlin FFI MERGED (+1997/−569, 48 files); PRs 1358 also merged; PRs 1439 OPEN. moqxr 3 commits May 21 (live publish API + MSF media timeline track + jemalloc merge). All other tracked repos quiet: imquic main quiet, moq-rs quiet again after May 20 burst, google/quiche moqt quiet, moqlivemock v0.9.0 holding, moq-js / moqtail / shaka-player / moqintosh / quiche_moq all longer-quiet.
  • Interop: 168 / 42 / 125 / 0 at 2026-05-22 00:43:51 UTC−4 pass vs May 21 (46→42, pass rate 27.4% → 25.0%, first regression since cadence recovery May 19). 4 consecutive days of daily cadence holding. Skip count drops 1→0. Hypothesis: moq-dev/moq’s high-velocity May 21 PR cluster re-broke some moq-dev-rs/moq-dev-js test combinations stabilised May 19-20. Target still draft-16 while moq-dev/moq is shipping draft-18 + iOS/Android bindings.

Operation: Update Sources:

  • Slack: #moq quiet 36h beyond “Alina joined the channel” May 21 17:08 CEST. #moq-interop-runner, #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-transport — NEW Issue #1636 (RichLogan May 21 10:50 UTC, “Empty namespace clarification”); Issue #1633 4 substantive comments May 21 18:43-21:21 UTC (martinduke ×2 + ianswett ×2 make-before-break thread).
    • moq-wg/msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 13 PR events May 21-22 (PRs #1432 MERGED Swift+Kotlin FFI; #1438 OPENED Matroska/WebM +3092/−39; #1439 OPENED per-track timescale; #1437 self-closed; #1410 / #1362 external-contributor merges; #1433 / #1435 / #1425 / #1431 / #1358 closes-and-merges).
    • mondain/moqxr: 3 commits May 21 (8255194 Add live object publish API 15:49 UTC, 8e90a0e Add optional MSF media timeline track 17:12 UTC, 5c3cf91 Merge PR #13 jemalloc 17:17 UTC).
    • cloudflare/moq-rs, meetecho/imquic, moqtail/moqtail, video-dev/moq-js, google/quiche moqt, Eyevinn/moqlivemock, Eyevinn/warp-player, birneee/quiche_moq, Eyevinn/moqtransport, Quicr/cat-token, t-gazzy/Moqintosh, englishm/moq-interop-runner: All quiet.
  • Mailing list: 8 messages May 21-22: 3 Martin Duke chair messages within 49 min May 21 17:19-18:08 UTC (26 May Agenda, Consensus Call: DTS and SWITCH, London Interim Preliminary Agenda) + Tim Evens 15min draft-evens-moq-bench (denied by agenda) + 3 Joining FETCH Survey responses (Mo Zanaty + Victor Vasiliev + Mo follow-up) + Alan Mallett May 22 03:57 UTC list spam “Google Transparency Report” (no chair follow-up yet).
  • IETF Datatracker: No new revisions May 21 or 22. WG state: transport-18 (Day +10), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +16), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-22 00:43:51 UTC: 168 / 42 / 125 / 0 (−4 pass vs May 21, 25.0% pass rate). 4-consecutive-day cadence holding.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +22 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 21 06:00 UTC → May 22 06:00 UTC” section covering: Martin Duke chair-triplet (Final Agenda, Consensus Call, May 26 prep) + agenda compression analysis, #1633 make-before-break thread, #1636 empty-namespace clarification, moq-dev/moq 13-event PR cluster + Swift+Kotlin FFI ship, mondain/moqxr 3 feature-add commits, interop runner 168/42/125 regression, moq quiet 36h), interim-meetings.md (Upcoming meetings table updated with May 26 SWITCH/DTS show-of-hands + June 4 consensus call deadline + final London Day-1/Day-2 agenda tables + compression-analysis table), interop/interop-runner.md (May 22 168/42/125 regression callout + table row), implementations/moq-dev.md (May 22: PR #1432 Swift+Kotlin FFI + PR #1438 Matroska/WebM + PR #1439 per-track timescale + PR #1437 self-redirect pattern), implementations/openmoq.md (May 22: 3 May 21 feature-add commits + 17-commit running total), drafts/moq-transport.md (#1636 added + #1633 make-before-break thread documented + London Day-1 slot 1300-1310 referenced), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The Swift+Kotlin FFI wrapper merge is the structural moq-dev/moq response to gazzy’s Moqintosh announcement: PR #1432 was opened May 21 16:24 UTC — 25 hours after gazzy’s “Pure Swift Client Only draft-14 based” #moq announcement May 20 15:22 CEST. At +1997/−569 across 48 files with UniFFI-backed Swift+Kotlin async/await APIs, this is far beyond what a “competitive response” PR would be (it had been in progress for some time before May 20); but the merge-timing is the structural signal. moq-dev/moq now spans Rust + TypeScript + Python + Swift + Kotlin from a single tree, while Moqintosh is draft-14 client-only with no relay. Carry-forward: by London hackathon, expect kixelated to demo iOS+Android moq-dev/moq apps at Cloudflare’s office (Mike English flagged “Cloudflare is also looking into catering lunch one or both days; if this happens, we may have some lunch demos” in the May 21 agenda message). Whether gazzy continues Moqintosh independently or pivots to consuming the moq-dev/moq FFI wrappers is the open question — gazzy has been a long-tenured #moq participant since March (datagram-size questions, OS-level audio bug reports) and is unlikely to abandon his approach immediately, but the structural signal is moq-dev/moq has just made the “build your own iOS client” path significantly harder to justify.
  • The Martin Duke chair-triplet in 49 minutes is the most operationally-dense WG governance event tracked by the wiki for 2026: 3 mailing-list messages structurally locking 3 future decision points: (1) May 26 interim = SWITCH/DTS show-of-hands meeting; (2) June 4 = formal consensus call deadline (2 questions × 2 docs); (3) June 11-12 = London final agenda with Day-2 conditional on June 4 outcome. The compression-analysis table in the agenda shows the chairs prioritised core-MOQT (afrind −25%) and structurally compressed implementation/external-format requests (Mo / Suhas / Cullen / Will at −60% to −73%, Tim Evens at −100% DENIED). This is the inverse pattern from prior interims where editor agenda items took a small slot — for London, the chairs have committed to MOQT-issues-as-headline with the Day-2 SWITCH/DTS/Top-N/MSF/CMSF block as conditional and compressed. Carry-forward: the June 4 consensus call outcome determines London Day-2 viability — if both SWITCH and DTS go to /dev/null, Day-2 collapses to ~3h of Top-N + MSF/CMSF + Privacy Pass + Secure Objects, and London becomes effectively a 1.5-day formal meeting. If both are integrated into MOQT, Day-2 is full and afrind’s Day-1 “Other MOQT Issues” 120-min slot has to absorb the post-integration consequences.
  • The Issue #1633 make-before-break thread is now the entry point to a much broader Group-As-Join-Point design conversation: Martin Duke’s May 21 18:57 UTC question — “the group-as-join-point thinking in the design is still pretty muddled. Why can’t a REQUEST_UPDATE be triggered to start on the next group?”opens a new design alternative that is orthogonal to the original Editors’ 4-proposal slate. Ian Swett’s same-day pushback (“doing that for arbitrary parameters/filters might be quite complex”) marks the immediate design tension. The London 10-min Day-1 slot (1300-1310 June 11) for Concurrent Subscribe now needs to decide both proposal-1b-vs-1a AND whether REQUEST_UPDATE gets a next-group offset — likely dramatically under-budgeted. Carry-forward: expect a London afrind/ianswett/martinduke 3-way design debate that overflows the 10-min slot into afrind’s 120-min “Other MOQT Issues” block. The structural conclusion may be that filters + concurrent subscriptions + REQUEST_UPDATE next-group offset all collectively redefine what a Subscription’s lifecycle looks like in draft-19 — a much bigger spec change than the Filter PR #1518 by itself.
  • The interop-runner regression is the first cost-signal of moq-dev/moq’s high-velocity main-branch development: May 22’s 46→42 pass-count drop (−4) cleanly inverts May 21’s +8 jump, putting the rolling 3-day average back to ~+2/day — a more sustainable rate. Hypothesis: moq-dev/moq’s May 21 PR cluster touched origin-consumer / Matroska / per-track-timescale / cargo / Swift+Kotlin FFI — high-surface-area infrastructure changes that broke previously-passing moq-dev-rs/moq-dev-js test combinations. This is the first concrete evidence that the matrix-against-main strategy has a velocity-vs-stability trade-off. Carry-forward: by London hackathon, the matrix-side mitigation may need to be per-impl version pinning (run matrix against moq-dev/moq@v0.16.4 instead of main) to decouple test-suite stability from upstream development velocity. Alternative: accept the noise as a “reality check” signal that catches regressions earlier than per-impl CI.
  • The cumulative London decision-pipeline structurally pre-determines MOQT v1: 3 sequential decision events in 21 days (May 26 show-of-hands → June 4 consensus call close → June 11-12 London formal): SWITCH/DTS integration outcome by June 4, Concurrent Subscribe (#1633) + Filters (PR #1518) + Request Blocking (#1519) by June 11 Day 1, MSF/CMSF + Top-N + Privacy Pass + Secure Objects by June 12 Day 2 (conditional). The afrind 180-min Day-1 block alone covers ~6 distinct MOQT-bedrock issues (Request Blocking, Concurrent Subscribe, Joining FETCH, Other MOQT issues including the 22+ post-draft-18 items). By the end of London, draft-19’s scope will be effectively committed — the wiki’s London hackathon forecast last week (5+ impls on draft-18 with 3 pairwise-tested combinations) is now matched on the spec side: 5+ disposition points across 21 days. Carry-forward: the next 21 days are the highest spec-decision-density 21-day window the MoQ WG has executed.

2026-05-21 — moq-net rename merged; AWS re-files CMSF as #1429; imquic draft-18 on main; new iOS Swift impl

TL;DR:

  • 3 draft-18 codebases now on main after imquic PR #25 MERGED May 20 09:25 UTC (+2184/−1693, Lorenzo Miniero) — joins moq-dev (PR #1418 May 18) and moqxr (main via 14 fix-up commits May 19-20). moqxr +6 more commits May 20 shifting from wire-protocol fixes to docs/i18n (Paul Gregoire considers wire gap closed). AWS files PR #1429 “Unified CMSF/Hang pipeline” May 20 08:37 UTC (+1969/−12, supersedes #1408, “CMSF is CMAF with a different catalog format”) — second AWS-vs-kixelated design-cycle resolution in 7 days, both ending with AWS re-architecting toward kixelated’s preferred shape (50.4% LOC reduction vs #1408). [PR #1428 (moq-lite → moq-net rename) MERGED May 20 14:07 UTC** (+1230/−939, kixelated)** — moq-net v0.1.0 on crates.io/npm/PyPI. cloudflare/moq-rs BREAKS 38-day main-quiet streak May 20 16:34-16:45 UTC — mike-english merges PR #121 itzmanish remote-manager refactor (+762/−647, OPEN since Dec 18 = 155 days) + PR #168 release v0.7.18 with “subscribe cleaning on drop” bug fix. NEW IMPLEMENTATION: t-gazzy/Moqintosh — gazzy announces iOS Swift client on #moq May 20 15:22 UTC, draft-14, client-only — 14th distinct open-source MoQ impl tracked, first iOS-targeted. Slack SVC TPL-vs-SGPL thread adds 2 more replies (afrind: “you cannot NGR a subgroup - only a group”; Ian Swett: “a number of cases you might want multiple at once, particularly in transitions”) — adds 4th technical diff (NGR scoping) to afrind’s “essentially isomorphic” framing. Mailing list London Agenda: Cullen re-files BOTH rejected requests compliantly (Secure Object 20min, NEW track filter DDOS 30min); Martin Duke implicitly declines Mo Zanaty’s May 26 deadline extension with “submit and cancel later” compromise; Mo Zanaty files 135 min filter-focused block May 21 (Object Range / Track Property / Top-N / Subscription Location / LOC). Updated agenda inbox: ~585 min ≈ 9h45m ≈ 22% oversubscribed vs ~8h capacity. Filter-design cluster now structurally top item by allocated time (~260 min Mo+Cullen+afrind+Suhas). NEW thread “User case or question to Joining Fetch” — Zafer Gurel describes moqtail relay cache collision with multi-publisher same-track-same-group scenarios (workaround: randomize base group IDs). google/quiche moqt 1 commit May 20 (martinduke 083b83b3 MoqtSessionTest cleanup — 3rd commit in publisher-refactor sequence).
  • Implementations: moq PR #1428 MERGED (+1230/−939) + AWS PR #1429 OPENED (+1969/−12) + PR #1358 Origin rewrite touched May 20. imquic PR #25 MERGED draft-18 to main. moqxr 6 more commits May 20 (14-commit running total). moq-rs PR #121 + PR #168 MERGED — 38-day main-quiet broken. google/quiche moqt 1 commit (083b83b3). NEW: Moqintosh iOS Swift client announced. moqlivemock, moqtail, moq-js, shaka-player, other all quiet.
  • Interop: 168 / 46 / 121 / 1 at 2026-05-21 00:45:51 UTC+8 pass vs May 20 (38→46, pass rate 22.6% → 27.4%, +4.8pp largest single-day jump). 3 consecutive days of daily cadence. Matrix at 13 implementations (added moqtail since prior wiki summary at 12). Target still draft-16 while 3 codebases now on draft-18.

Operation: Update Sources:

  • Slack: #moq3 substantive messages May 20 (afrind 14:56 + Ian Swett 15:53 SVC-thread replies, gazzy 15:22 Moqintosh announce + Paul Gregoire 15:31 moqntosh-coincidence reply). #moq-interop-runner / #moq-rs / #moq-js / #libquicr all quiet.
  • GitHub moq-wg repos: All quiet. No new issues / PRs / comments on moq-transport since the May 19 afrind tranche (#1633/#1634/#1635). moq-wg/msf PR #157 untouched Day +4.
  • GitHub implementations:
    • moq-dev/moq: PR #1428 MERGED May 20 14:07:45 UTC. PR #1429 OPENED May 20 08:37:20 UTC. PR #1408 CLOSED May 20 08:37:27 UTC (by AWS). PR #1358 touched May 20 16:40 UTC. PR #1425 release-plz auto touched May 20 16:09 UTC.
    • google/quiche (quiche/quic/moqt): 1 commit May 20 22:36 UTC by martinduke (083b83b3 MoqtSessionTest cleanup).
    • meetecho/imquic: PR #25 MERGED May 20 09:25:23 UTC (draft-18). PR #26 MERGED May 20 14:06:55 UTC (RoQ refactor, not MoQ-relevant).
    • mondain/moqxr: 6 commits May 20 (617a58295b912d).
    • cloudflare/moq-rs: PR #121 MERGED May 20 16:34:59 UTC. PR #168 MERGED May 20 16:45:39 UTC.
    • t-gazzy/Moqintosh: Repo metadata — created Apr 10 2026, last push May 20 15:27 UTC, primary language Swift, 3 stars at announcement.
    • Eyevinn/moqlivemock: Quiet (v0.9.0 holding).
    • Eyevinn/warp-player: 3 dependabot PRs (#130/#131/#132) still OPEN Day +2.
    • moqtail/moqtail: Day +8 quiet since dbd7085 May 13 08:44 UTC.
    • video-dev/moq-js, birneee/quiche_moq, Eyevinn/moqtransport, Quicr/cat-token: All longer-quiet.
    • englishm/moq-interop-runner: PR #68 still OPEN; no further commits since May 19 PR #69 merge.
  • Mailing list: 9 messages May 20-21 (4 May 20 + 4 May 21 + … ): London Agenda thread (5 messages — Cullen ×2 re-files [track filter DDOS + Secure Object], Ali C. Begen, Martin Duke implicit-deadline-decline reply to Mo, Mo Zanaty May 21 135-min filter block) + Joining FETCH Survey (4 messages — Ali, Zafer, Victor, Mo) + “User case or question to Joining Fetch” new thread (Zafer Gurel).
  • IETF Datatracker: No new revisions May 20 or 21. WG state: transport-18 (Day +9), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +15), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-21 00:45:51 UTC: 168 / 46 / 121 / 1 (+8 pass vs May 20, 27.4% pass rate). 3-consecutive-day cadence. Matrix at 13 implementations.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +21 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 20 06:00 UTC → May 21 06:00 UTC” section covering: SVC thread continuation with NGR-scoping 4th diff, Moqintosh announcement + Paul Gregoire moqntosh-coincidence, PR #1428 merged + PR #1429 OPENED CMSF-rewrite, imquic PR #25 draft-18 to main, moqxr 6 more commits, cloudflare/moq-rs Day +37 quiet broken, London Agenda 9h45m oversubscription with Cullen re-files + Mo Zanaty 135min + Martin Duke deadline-extension implicit-decline, Joining FETCH Survey 4 responses, NEW User case to Joining Fetch thread (MOQtail cache collision), interop runner 168/46/121 + 3-day cadence), interim-meetings.md (London Agenda table updated with 9h45m oversubscription + Cullen re-files + Mo Zanaty 135min row + Martin Duke implicit-decline row), interop/interop-runner.md (May 21 168/46/121 report row + 13-impl matrix + 3-day cadence callout + structural gap widens narrative), implementations/imquic.md (May 21: draft-18 on main via PR #25), implementations/moq-dev.md (May 21: PR #1428 merged + PR #1429 opened + second AWS design-cycle resolution comparison table), implementations/openmoq.md (May 21: 6 more moqxr commits, docs/i18n shift, Paul moqntosh-coincidence note), implementations/moq-rs.md (NEW May 21 callout: 38-day quiet broken + PR #121 + PR #168 + draft-18 still not staged), implementations/moqintosh.md (NEW PAGE: iOS Swift impl), index.md (last_updated bump + Moqintosh row + new bullet), log.md (this entry).

Key findings:

  • The “AWS re-architects toward kixelated’s preferred shape in 6 days” pattern is now a stable corporate-contributor signal: PR #1408 → #1429 is the second time in a week (after PR #1413 → close + AWS-AVC-fix-as-separate-PR) that AWS engineering took kixelated’s design feedback, rewrote a large PR end-to-end, and re-filed compliantly. The cycle time is 6 days for a structural rewrite of the largest external PR ever filed against moq-dev/moq (3906 LOC → 1969 LOC, 50.4% reduction). This pattern reads as AWS committing to live design dialogue rather than parallel-fork — significant given moq-lite/moq-net is single-maintainer-controlled at the API level. Carry-forward: by London, expect AWS to file ≥1 more material PR addressing kixelated’s MSF/CMSF reservations (probably the encoder-failover-via-separate-broadcasts shape from PR #1413’s resolution); the AWS-as-second-corporate-contributor footprint may stabilize moq-dev/moq’s external-contributor pipeline around the “3-day review, 5-day rewrite” cadence.
  • The “3 codebases on draft-18 main” milestone is the structural fulcrum for London: moq-dev May 18 (PR #1418), imquic May 20 (PR #25), and moqxr May 19-20 (14 commits via main) now all carry draft-18 on main 8 days post-publication. This is the fastest 3-impl spec-to-main cycle the wiki has tracked, and means the London hackathon (June 9-10) has ≥3 distinct draft-18 endpoints before the interop-runner matrix has even bumped to draft-18 target (PR #68 still OPEN). Bilateral testing will outpace matrix testing for at least another week. Carry-forward: the next structural watermark is PR #68 merging + first matrix run on draft-18 target; until then, the 3 implementations’ draft-18 paths exist outside Mike English’s automated regression surface. Lorenzo Miniero’s May 19 09:12-09:55 UTC bidi-vs-uni interop discovery (8 moqxr commits in 10 hours) is precisely the kind of finding that the matrix would not surface; bilateral testing’s signal-to-noise ratio is higher right now.
  • The London Agenda 9h45m oversubscription crystallizes the filter-design cluster as the dominant London topic: Mo Zanaty’s May 21 135-min block — Object Range Filters (30) + Track Property Filters (15) + Top-N Filters (45) + Subscription Location Filters re-proposal (30) + LOC (15) — overlaps with all three of (a) afrind’s “#1633 concurrent subscriptions per Track 30min”, (b) Cullen’s NEW “track filter DDOS 30min”, and (c) Suhas’s “Top-N Track Filter Impl Experiences 35min”. Net ~260 min of London time is reserved for PR #1518 / PR #1401 / #1633 consensus. This dwarfs the Joining FETCH Dissent block (~60 min) as the WG’s biggest design battle. The Cullen “happy to consolidate everyone’s concerns into one deck” offer is a chair-friendly compression vehicle — likely to be accepted to fit the 22% oversubscription into the 8h capacity. Martin Duke’s “submit and cancel later” compromise (declining Mo’s May 26 extension) keeps the deadline-as-policy intact while allowing programmatic compression as the agenda crystalises pre-meeting. The pattern: strict on format, lenient on cancel, compressing-via-consolidation.
  • The cloudflare/moq-rs Day +37 silence-break is a non-draft-18 signal: Mike English’s May 20 16:34-16:45 UTC merges (PR #121 + PR #168) cleared a 155-day-stale community refactor and shipped an actual “subscribe cleaning on drop” bug fix. But the cloudflare/moq-rs draft-18 bump is still not staged — no PR exists to update beyond the draft-14 main / draft-16 PR #131 split. The drift between cloudflare/moq-rs and moq-dev/moq is now 2 full draft revisions with no announced bridge. Carry-forward: by London hackathon, cloudflare/moq-rs as a draft-14 reference and Manish’s PR #131 as a draft-16 branch means the IETF-aligned-fork is structurally falling behind the moq-dev twin. The matrix-side mitigation (the moq-rs / moq-rs-draft-16 split labeled as separate impls) keeps cloudflare/moq-rs in the matrix but doesn’t close the gap with draft-18 codebases. Mike English’s bandwidth is the bottleneck; the May 21 merge cluster is good news as a sign of bandwidth recovery but the draft-18 register-bump remains unfunded engineering work.
  • Moqintosh’s announcement is a structurally exploratory event but signals platform-expansion: gazzy’s iOS Swift client (t-gazzy/Moqintosh) is the first Apple-platform-native MoQ implementation tracked by the wiki — prior Apple-platform MoQ work was via cloudflare/moq-rs (C FFI through Objective-C) or shaka-player (web). The draft-14 baseline + client-only scope make it not-yet-interop-eligible (no PR against englishm/moq-interop-runner), but the pure-Swift framework opens a new platform-native deployment path. Carry-forward: Moqintosh’s actual signal will depend on whether gazzy targets draft-18 + relay/publisher functionality before London. If draft-14-client-only persists, Moqintosh is a learning-exercise; if it adds relay or moves to draft-16/18, it becomes a serious matrix candidate. The Paul Gregoire “I named mine nearly the same ‘moqntosh’” coincidence note suggests MoQ-on-Apple is a topic with latent demand — multiple implementers independently arriving at the same name in the same week is a market-validation signal.

2026-05-20 — first cross-impl draft-18 interop attempt; afrind files 3 draft-18 issues; London Agenda inbox fills

TL;DR:

  • First cross-implementation hands-on draft-18 interop attempt the wiki has tracked: Lorenzo Miniero vs moqxr (Paul Gregoire) — Lorenzo’s May 19 09:12–09:55 UTC diagnostic sequence on the #moq thread found a bidi-vs-uni SETUP-stream divergence in moqxr’s draft-18 path (defaulted to draft-14 unless --draft 18 set; used bidi stream for SETUP when draft-18 requires two unidirectional streams). Paul Gregoire’s response: 8 commits to mondain/moqxr in 10 hours (May 19 14:17 → May 20 00:11 UTC) — “Align draft-18 WebTransport stream handling” / “Fix MoQT control compliance gaps” / “Fix MoQT publish framing” / “Fix draft 17 and 18 MoQT wire semantics” / “Fix MoQT pass 3 compliance gaps” / “Fix WebTransport protocol offers” / “Fix draft-18 setup option delta encoding” / “Fix draft 18 request stream polling”. The fastest implementation-level draft-18 fix-up turnaround tracked. afrind filed 3 formal draft-18 issues May 19 16:33–18:37 UTC operationalising the May 18 SVC-thread procedural gap: #1633 “Should we allow more than one concurrent subscription per Track” (4-proposal slate with Editors’ rec 1a = unique Track Aliases per sub, no dedup; Ian Swett + Martin Duke prefer 1b = same alias publisher-coalesces; same-day afrind/Swett debate on 1b conflict-handling), #1634 “[draft-18] What semantics do FIN or RST on a request stream carry?” (with afrind self-comment defining the rule: “FIN almost always isn’t a cancellation… For TRACK_STATUS an early FIN is perfectly normal”), #1635 “[draft-18] Should a subscriber treat FIN/RST on a bidi stream as equivalent to PUBLISH_DONE?” (sibling-to-#1634 from subscriber side). London Agenda inbox fills 0 → 6 requests in 24h validating Martin Duke’s May 18 chair-prod: Suhas (Top-N + Privacy Pass, 55min compliant), afrind (37 non-editorial MOQT issues, ~4+ hours single largest ask), Will Law revised (MSF/CMSF + DTS, 105min compliant), Cullen (Secure Object 20min — REJECTED format), Will Law initial (REJECTED format), Mo Zanaty deadline-extension ask May 20→May 26. Net ~6+ hours requested against ~8 hours of formal-session capacity. Mike English ↔ Giovanni Marzot formally resolved the Apr 25 “suspicious AI-PR” incident on #moq-interop-runner May 18 23:17 UTC: “It turns out it really was just Claude being overzealous about tackling a slightly under-specified prompt where the intent was just to fix some artifact links.” Lorenzo Miniero May 19 07:52 UTC: “One more reason for me to stay away from AI as long as I can 😂“.
  • Implementations: mondain/moqxr — 8 fix-up commits in 10h (May 19 14:17 → May 20 00:11 UTC) by Paul Gregoire after Lorenzo’s interop testing. google/quiche moqt — 1 new commit a3f18c9 May 19 17:41 UTC by martinduke (“Fix asan error in moqt_session_test”) — follow-up to May 18 6460010e PublishedSubscription refactor. moq-dev/moq quiet day — only PR #1428 (moq-lite → moq-net rename) still OPEN Day +2; no new merges in window. meetecho/imquicmoq-18 branch ready, merge gated on PR #68 (Lorenzo May 19 15:40 UTC: “finished the bulk of the work and the rest can wait”). Eyevinn/warp-player 3 dependabot PRs still OPEN; Eyevinn/moqlivemock quiet (v0.9.0 holding); moqtail Day +7 quiet; cloudflare/moq-rs Day +37 main-quiet.
  • Interop: 168 / 38 / 129 / 1 at 2026-05-20 00:46:03 UTC+3 pass vs May 19 (35→38, pass rate 20.8% → 22.6%). 2 consecutive days of daily cadence post-PR #69 timeout fix. Matrix unchanged at 12 implementations; target still draft-16 — PR #68 still OPEN, Mike English working through CI issues.

Operation: Update Sources:

  • Slack: #moq — quiet day after May 18 burst, only the moqxr thread continued (Lorenzo 5 diagnostic msgs May 19 09:12–09:55 UTC + Paul Gregoire 13:21 UTC reply confirming the bug). #moq-interop-runner — Mike English May 18 23:17 UTC apology+resolution thread (Giovanni Marzot incident) + Lorenzo May 19 07:52 UTC reaction. #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-transport3 NEW issues May 19 16:33–18:37 UTC by afrind: #1633 (concurrent subscriptions per Track, with afrind/Swett same-day comment-debate), #1634 (FIN/RST semantics on request stream), #1635 (FIN/RST as PUBLISH_DONE). PR #1378 SWITCH still updated_at May 15.
    • moq-wg/msf, moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: Quiet window. PR #1428 (moq-net rename) still OPEN Day +2 (last touch May 18 22:04 UTC).
    • google/quiche (quiche/quic/moqt): 1 new commit a3f18c9 May 19 17:41 UTC by martinduke (asan fix in moqt_session_test).
    • mondain/moqxr: 8 fix-up commits May 19 14:17 → May 20 00:11 UTC (see TL;DR).
    • meetecho/imquic: moq-18 branch ready, not merged to main. main last touch Apr 16.
    • Eyevinn/moqlivemock: No new commits since May 17 v0.9.0 release.
    • Eyevinn/warp-player: 3 dependabot PRs (#130/#131/#132) still OPEN since May 19 01:27 UTC.
    • moqtail/moqtail: Day +7 quiet.
    • cloudflare/moq-rs: Day +37 main-quiet.
    • video-dev/moq-js, birneee/quiche_moq, Eyevinn/moqtransport, Quicr/cat-token: All longer-quiet.
    • englishm/moq-interop-runner: PR #68 (draft-18 target) still OPEN; no further commits since May 19 PR #69 merge.
  • Mailing list: 10 new messages May 19 (vs 2 May 18, 0 May 17): London Agenda thread (6 messages — Cullen, Will Law initial+revised, Suhas, afrind, Mo Zanaty, plus 2 Martin Duke procedural rejections) + Joining FETCH Survey thread (4 messages — Cullen, Suhas, 2 afrind clarification replies).
  • IETF Datatracker: No new revisions May 19 or 20. WG state: transport-18 (Day +8), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +14), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-20 00:46:03 UTC: 168 / 38 / 129 / 1 (+3 pass vs May 19). 2-consecutive-day cadence.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +20 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 19 06:00 UTC → May 20 06:00 UTC” section covering: moqxr ↔ imquic first cross-impl draft-18 interop attempt with Lorenzo 5-message diagnostic + Paul 8-commit response, Mike English Giovanni Marzot apology thread, LOCMAF carry-forward with Will Law STS-Sweden talk offer, moq-transport issues 1635, London Agenda 6-request inbox, Joining FETCH Survey 2nd-round responses, interop runner May 20 report), interop/interop-runner.md (May 20 168/38/129 row + 2-consecutive-day cadence callout), drafts/moq-transport.md (3 new Design Issues + Draft-18 Impl Status table refresh), implementations/openmoq.md (moqxr 8-commit fix-up sprint), implementations/imquic.md (moq-18 branch unmerged), discussions/interim-meetings.md (London Agenda 6-request table + format-strict precedent + Mo Zanaty deadline-extension ask), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The 10-hour-8-commit moqxr fix-up sprint is the new structural floor for cross-impl draft-18 turnaround: the May 19 09:12 → May 20 00:11 UTC window — Lorenzo’s first interop attempt → Paul Gregoire’s 8 compliance-fix commits — is the first hands-on cross-impl draft-18 testing cycle the wiki has tracked. The combinatorial-explosion fear flagged by Mike English on May 18 (matrix scaling + per-impl-runtime cost) is partially mitigated by this kind of out-of-matrix-bilateral testing: two implementers can run a full-fidelity exchange and resolve a wire bug in 10 hours, while the matrix takes 6+ hours per run to surface the same finding. The trade-off is that bilateral findings stay out-of-matrix until both sides publish stable, so the matrix lags. Carry-forward: by London hackathon, expect 5+ implementations on draft-18 with at least 3 pairwise-tested combinations (moqxr ↔ imquic, moqxr ↔ moq-dev, imquic ↔ moq-dev), all from out-of-matrix bilaterals.
  • The afrind 3-issue tranche operationalises a 6-week-old WG procedural gap: Issue #1633 (concurrent subscriptions per Track) explicitly cites PR #1451 which has been open since April 13 — six weeks of slow-burn that finally got tracked-formally because Luke Curley surfaced the SVC-thread procedural-gap version on May 18 (“isn’t it illegal to SUBSCRIBE to the same track twice?”). The 4-proposal Editors’ slate format is unusually decision-shaped — afrind is scripting a London consensus call with explicit Editors’ Recommendation (1a). Ian Swett’s same-day comment (“I was about to file this. @martinduke prefers 1b”) shows the chairs are now aligned on forcing the issue at London. The sibling issues 1635 are tactical follow-ons — semantic-gap-fixes for draft-18 control-stream lifecycle, easier to consensus-call as PROTOCOL_VIOLATION clarifications. The pattern: afrind is now structuring the London agenda from the issue tracker — every issue with a [draft-18] prefix + concrete proposal slate is a London-blocking decision item.
  • The London Agenda inbox is 75% afrind-shaped at submission deadline: of ~6 hours of formal-time requested, afrind’s MOQT-issues block alone is ~4 hours (Joining FETCH Dissent 60min + Filter consensus + ABR/SWITCH 60min + #1519 60min + #1633 30min + 22 remaining issues 1-2h). This is the inverse pattern from prior interims where editor agenda items took a small slot and the rest was implementation/use-case talks. The chairs (Martin Duke + Mike English) will need to either compress the issue-discussion budget or defer issues to follow-up virtual interims (interim-2026-moq-16 on May 26 is the obvious candidate, particularly if Mo Zanaty’s deadline-extension-to-May-26 ask is granted). The format-strict rejection of Cullen + Will Law’s initial requests is separately a precedent for procedural rigor at the May 26 IETF 126 submission window.
  • The Mike English ↔ Giovanni Marzot social resolution is structurally important post-incident: Mike’s May 18 23:17 UTC framing — “my overreaction to the suspicious-looking PR… it really was just Claude being overzealous” — establishes an on-record community norm that LLM-shaped PRs need careful but not paranoid review. Lorenzo’s “one more reason to stay away from AI” reaction is the first explicit on-record skeptic position in the MoQ community, while Mike’s “working together more on improving the interop runner” signals the contributor base remains intact. The carry-forward: by London, the MoQ community will need to surface this as a meta-topic — the Co-authored-by: Claude PR pattern (now visible on moq-dev/moq, moq-interop-runner, and via Tobbe’s wiki update workflow) needs a community-level position on review standards, attribution norms, and trust boundaries. afrind’s verbal sketches at IETF 125 (“claude is also writing a reference py impl and validating”) suggest the chairs view LLM-assisted contributions as legitimate and reviewable; Lorenzo’s reaction may be a minority position but is non-zero.
  • The interop runner’s recovery is fragile but holding: 2 consecutive days of daily cadence (May 19 + May 20) after the May 14-18 5-day silence is necessary but not sufficient evidence that the per-test-timeout fix (PR #69) closed the structural bug. The 168-test matrix still runs at ~6h wall-clock, and PR #68 (draft-18 bump) staging is CI-stability-gated — Mike English flagged this on May 18 23:20 UTC as “working through some CI issues” and the May 19/20 report timing (01:36 UTC → 00:46 UTC, 23-hour apart) shows the cron schedule is back. But the matrix is still draft-16 against 3 shipped draft-18 codebases + moqxr’s 8 fix-up commits — the structural gap widened in the window because moqxr improved its draft-18 path without the matrix exercising it. By London hackathon (June 9), the matrix needs to be on draft-18 with at least moqxr + imquic + moq-dev registered as draft-18 endpoints — otherwise the matrix becomes a record of yesterday’s wire format, not today’s interop frontier.

2026-05-19 — interop runner returns; draft-18 reaches 3 impls; moq-lite library renamed moq-net

TL;DR:

  • interop-runner cadence resumed after 5-day silence: new May 19 01:36:37 UTC report publishes 168 / 35 / 132 (total / pass / fail) — matrix grew 105 → 168 tests (+60%) following the May 13 4-PR registry-expansion finally getting end-to-end CI exposure. Root cause of the May 14–18 silence diagnosed by mike-english (#moq-interop-runner May 18 21:19 UTC) as a CI-timeout from combinatorial explosion (test suite hung 6+ hours); PR #69 MERGED May 19 01:35 UTC adds per-test timeouts. Status restored to current. Pass rate 20.8% vs 18.1% on May 13 — “a lot of low hanging fruit to get some of these to green” (Mike English May 19 02:21 UTC). PR #68 (Update target to draft-18) OPENED May 18 21:01 UTC but NOT merged at report time — matrix is still targeting draft-16. Plus: 3 additional draft-18 implementations announce in 6 hours on #moq (May 18 17:53 → 22:21 UTC): imquic (Lorenzo Miniero, partial — missing REQUEST_UPDATE on SUBSCRIBE_NAMESPACE/TRACKS, POC relay at lminiero.it:9000), mondain/moqxr (Paul Gregoire, openmoq member, C++, 10 commits May 16–18), and cdn.moq.dev/anon (Luke Curley deployed 14-edge-node hop-based routing on the anonymous CDN, claims draft-18 wire support — untested). Plus: moq renames moq-lite library to moq-net (PR #1428 OPEN, kixelated, +1230/−939) across Rust / JS / Python — the first structural admission the library is dual-protocol (negotiates either moq-lite or moq-transport wire protocol at session setup). Shims kept for backward compat with explicit deprecation warnings. Plus: AWS PR #1413 CLOSED unmerged May 18 23:43 UTC after kixelated rejects transport-layer encoder-failover stitching: “It’s a lot less gross to stitch at the application level than stitching at the transport level.” — recommends primary/backup as separate broadcasts via SUBSCRIBE_NAMESPACE / announced. Plus: London Agenda mailing list activity: chair martin-duke May 18 prods on “zero requests for agenda time” at T-2 days; will-law files first concrete request — MSF/CMSF tech-decisions (60 min) + DTS (30 min, “unless it gets resolved May 26th”). Plus: Torbjörn Einarsson formally announces LOCMAF on #moq May 18 06:19 UTC with locmaf.dev domain + first mention of “may want to make an Internet-Draft”; Gwendal Simon (Akamai) responds suggesting expansion into CMSF.
  • Implementations: moq-dev/moq 7-PR cluster post-#1418 (#1420–#1427) plus #1428 OPEN: cluster loop detection (#1420), web-transport-iroh 0.4 (#1421), 2 release-plz autos (#1422 / #1425), Ended-tolerance (#1423), moq-boy CI cache (#1424), probe stream error scoping #1426 (Generated with Claude Code, +73/−53), AnnounceInterest.exclude_hop u53 overflow fix #1427. google/quiche moqt 1 commit May 18 22:45 UTC: martinduke Factor PublishedSubscription out of MoqtSession, into SubscriptionPublisher (6460010e) — re-architecting publisher path. meetecho/imquic + mondain/moqxr both shipped draft-18 (see TL;DR). Eyevinn/warp-player 3 new dependabot PRs (#130/#131/#132) re-rebasing post-#127 closure. Eyevinn/moqlivemock quiet post-v0.9.0 release. cloudflare/moq-rs Day +36 main-quiet; moqtail/moqtail Day +6 quiet; video-dev/moq-js, birneee/quiche_moq, Eyevinn/moqtransport all longer-quiet.
  • Interop: 168 / 35 / 132 at 2026-05-19 01:36:37 UTC — first new report in 5 days, +60% test volume vs May 13 (105 → 168, +63 tests). Pass count up 19 → 35 (+16). Matrix now has 12 distinct implementation identifiers (added moq-rs / moq-rs-draft-16 split for cloudflare/moq-rs). interop-runner status restored to current after May 17 “unreliable” downgrade. Still draft-16 target vs moq-dev/moq + imquic + moqxr all shipped draft-18.

Operation: Update Sources:

  • Slack: #moq8 substantive messages in the May 18 06:00 UTC → May 19 06:00 UTC window (highest single-day count since May 15): Torbjörn Einarsson 06:19 UTC (LOCMAF formal announcement + locmaf.dev + I-D possibility); Suhas 04:56 UTC May 17 already in prior entry; Gwendal Simon 13:29 UTC (response to Tobbe — CMSF integration suggestion); Lorenzo Miniero 17:53 UTC (imquic draft-18 + lminiero.it:9000 POC relay); Suhas 18:38 UTC (offering to test against Lorenzo); Paul Gregoire 18:44 UTC (moqxr draft-18 announce); Luke Curley 20:21 UTC (cdn.moq.dev/anon draft-18 claim); Luke Curley 20:24 UTC (14-edge-node hop-based routing deployed); Mike English 23:20 UTC (interop runner draft-18 bump + CI work). #moq-interop-runnerMike English 21:19 UTC (combinatorial explosion diagnosis), 02:21 UTC May 19 (new report). #moq-rs, #moq-js, #libquicr all quiet.
  • GitHub moq-wg repos:
    • moq-transport — no new issues or merged PRs in the window. PR #1378 SWITCH still updated_at May 15 (no new substantive activity).
    • moq-wg/msf — no new activity since PR #157 kixelated comment May 16 19:08 UTC. Issue #163 (will-law catalog draft-version field) untouched Day +4.
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 7 PRs MERGED + 2 PRs OPEN May 18 06:19 → May 19 01:11 UTC. MERGED: #1420 cluster loop detection (06:19), #1421 web-transport-iroh 0.4 (06:19), #1422 release v0.16.3 (08:08), #1423 Ended-tolerance (07:46), #1424 moq-boy CI cache (08:07), #1427 AnnounceInterest u53 fix (10:58), #1426 probe stream error scoping (19:50, Generated with Claude Code). OPEN: #1425 release v0.16.4 (release-plz auto), #1428 rename moq-lite → moq-net (21:31, +1230/−939, major rename). CLOSED unmerged: PR #1413 AWS non-sequential groups + AVC fallback (23:43 UTC) — extensive May 16–18 design dialogue between kixelated and ksletmoe-aws on cross-region encoder-failover semantics; kixelated rejects transport-layer stitching; AWS to re-file AVC fix as separate PR. Issue #1403 (YogiSotho draft-18 audit tracking) CLOSED 19:49 UTC by PR #1418 merge.
    • google/quiche (quiche/quic/moqt): 1 new commit6460010e May 18 22:45 UTC by martinduke (Factor PublishedSubscription out of MoqtSession, into SubscriptionPublisher) — breaks 3-day quiet on the moqt path. Structural refactor of the publisher class hierarchy, not a draft-18 wire-update.
    • meetecho/imquic (imquic): Last push May 18 15:51 UTC — draft-18 support shipped (Lorenzo Slack 17:53 UTC), partial (missing REQUEST_UPDATE on SUBSCRIBE_NAMESPACE/TRACKS).
    • mondain/moqxr (openmoq): 10 commits May 16 13:16 UTC → May 18 19:07 UTC by Paul Gregoire — “Implement draft-18 subscribe tracks”, “fix draft 18 subgroup header encoding”, “Add cross-draft MoQ message serde tests”, “Update MoQ draft WebTransport docs”, “Refresh roadmap”, “Poll live publisher stats”, “Record published-object stats for non-live publish modes”, “Fix missing functional include”. C++ Origin Publisher for OpenMOQ. Slack #moq announcement May 18 18:44 UTC.
    • Eyevinn/moqlivemock: No new commits in window (v0.9.0 release tag remains the latest, May 17 09:36 UTC).
    • Eyevinn/warp-player: 3 new dependabot PRs OPENED May 19 01:27 UTC (#130 @types/node dev-deps, #131 production-deps group 3 updates, #132 eslint 9.39.4→10.4.0) — re-rebases triggered by recent merges. PR #127 (the prior eslint upgrade) CLOSED 01:27 UTC, superseded by #132. No moq-relevant activity.
    • moqtail/moqtail: Day +6 quiet since dbd7085 May 13 08:44 UTC.
    • cloudflare/moq-rs: Day +36 main-quiet. PR #167 (Suhas filter-framework) Day +9 untouched.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
    • Quicr/cat-token: No new commits since May 10 22:30 UTC rename.
    • englishm/moq-interop-runner: PR #68 OPENED May 18 21:01 UTC by englishm-cloudflare (“Update interop target to draft-18”, +1/−1). PR #69 MERGED May 19 01:35 UTC (“Add per-test timeout to prevent hanging tests from blocking CI”). New report published 01:36:37 UTC.
  • Mailing list: 2 new messages May 18 (3-day silence May 15-17 broken): Martin Duke (chair) on London Agenda“We’re two days out and have received zero requests for agenda time” (May 20 deadline reminder); Will Law (Akamai) on London Agenda — first concrete request: MSF/CMSF tech-decisions 60min + DTS 30min (“unless it gets resolved May 26th”).
  • IETF Datatracker: No new revisions May 18 or 19. WG state: transport-18 (Day +7), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +13, still no on-list announcement), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: New report 2026-05-19 01:36:37 UTC: 168 / 35 / 132 (total / pass / fail) — first new run in 5 days. Status restored to current. Matrix at 12 implementation identifiers (added moq-rs / moq-rs-draft-16 split). Target draft-16 (PR #68 to bump to draft-18 staged, not merged).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +19 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 18 06:00 UTC → May 19 06:00 UTC” section covering: interop runner cadence resume + 168-test matrix, moq-lite library → moq-net rename PR #1428, moq-dev/moq 8-PR cluster post-#1418, AWS PR #1413 design rejection + closure, 3 additional draft-18 implementations (imquic / moqxr / cdn.moq.dev anon), London Agenda chair prod + Will Law first request, Tobbe LOCMAF Slack announcement + Gwendal Simon response, google/quiche moqt structural refactor, Eyevinn/warp-player dependabot re-rebase), implementations/moq-dev.md (May 19 status: moq-lite → moq-net rename + 7-PR cluster + AWS PR #1413 closure + 14-edge hop-routing deployment), implementations/imquic.md (May 19 status: draft-18 shipped + lminiero.it:9000 POC relay + REQUEST_UPDATE gap), implementations/openmoq.md (May 19 status: mondain/moqxr draft-18 shipped), drafts/moq-transport.md (Draft-18 Implementation Status table with 3 codebases + 1 deployment + interop-runner row), interop/interop-runner.md (May 19 status restored to current + 168 / 35 / 132 row + PR 69 callout), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The 6-day spec-to-3-impl turnaround is now the structural new normal: draft-18 (published May 12) has 3 distinct codebases shipped (moq-dev/moq via PR #1418 May 18 05:08 UTC; meetecho/imquic May 18 17:53 UTC; mondain/moqxr commits May 16-18, announced May 18 18:44 UTC) plus 1 production deployment (cdn.moq.dev/anon). This is faster than draft-17 cleared its first implementation (~3 weeks). Two accelerants: (1) the Claude-co-authored PR pattern on moq-dev/moq is visible on both feature PRs (#1418) and resilience PRs (#1426 probe stream error scoping) — the LLM workflow is no longer experimental, it’s the default; (2) draft-18 has small-delta scope (7-byte varint, FIRST_OBJECT bit, RequestID removal, LARGEST_OBJECT — most of which are 1-2 day implementer effort each). Carry-forward: by London interop, expect 5+ implementations on draft-18 with hands-on interop between at least 3 of them, well above the historical 2-impl-pair-at-publication-date norm.
  • The moq-litemoq-net library rename is the structural admission of a dual-protocol library: PR #1428’s framing — “the new name reflects that this is the networking layer; at session setup it negotiates either the moq-lite or moq-transport wire protocol” — is the first time kixelated has publicly framed his library as protocol-agnostic. Previously, moq presented as a reference implementation of moq-lite with IETF “adapter shims”; now it presents as a session-layer with two first-class wire protocols (moq-lite and moq-transport). This has three downstream effects: (1) the interop-runner matrix labels moq-dev-rs / moq-dev-js are now ambiguous — the matrix needs to either rename them to moq-net-rs / moq-net-js or split them by wire protocol; (2) the “moq-lite vs moq-transport” contention in the IETF process loses some of its zero-sum framing — the leading moq-lite implementer is now also a draft-18 producer; (3) the rename is defensive against the OpenMOQ narrative where moq-lite was framed as competing with the IETF effort.
  • kixelated’s stance on non-sequential group sequences is now public and concrete: PR #1413’s discussion thread (closed unmerged May 18 23:43 UTC) captured the clearest verbatim statement of moq-lite’s “library-level non-compliance with concessionary spec language”: “Sequences numbers should be += 1 just like HLS/DASH. I strongly disagree with the IETF drafts that allow, and even encourage, sequence number gaps.” This is now the second case in two weeks of kixelated documenting intentional moq-lite non-compliance (first was LARGEST_OBJECT in PR #1418 body). The pattern crystallises: kixelated accepts spec text wording where consensus pulls him toward concessionary MUST/SHOULDs, but won’t implement the concession path in the moq-lite library. AWS accepted the architectural pushback (“primary/backup as separate broadcasts via SUBSCRIBE_NAMESPACE”) gracefully and will re-file the AVC description fix as a separate PR — the design engagement is healthy but slow, AWS is committing 2 PRs in 24h while kixelated’s review cycle is days, not hours.
  • The interop-runner returns to current status but with a new failure-mode budget concern: Mike English’s May 18 21:19 UTC framing — “the combinatorial explosion of test runs might be causing the test run and report generation task to time out… maybe something is just hanging or if we’re really running tests for 6+ hours now” — surfaces a structural CI-budget constraint: at 168 tests with potential 6+ hour runtimes, any further matrix expansion (e.g. registering mondain/moqxr, or splitting moq-rs further into moq-rs / moq-rs-draft-16 / moq-rs-draft-18) compounds the wall-clock cost. The per-test timeout (PR #69) is necessary but not sufficient — likely needs skip-policy work (e.g., only run draft-N tests for impls claiming draft-N support) before London to keep the matrix in a runnable budget. The matrix also still targets draft-16 vs 3 implementations on draft-18; the gap will close only when PR #68 merges, which Mike English flagged as next-up but is gated on CI stability work.
  • Tobbe’s formal LOCMAF announcement on #moq opens a 2-week visibility window before London: the Slack post (May 18 06:19 UTC) is the first wide-audience disclosure of LOCMAF, with the locmaf.dev domain elevating it from “Eyevinn-internal experiment” to “first-class project”. The explicit conditional “if some of you think this is a good idea, we may want to make an Internet-Draft” is a standard pre-IETF temperature-check. The Gwendal Simon response (“you can probably expand CMSF… It is very interesting”) is a specific architectural suggestion to fold LOCMAF into CMSF rather than file a parallel I-D — politically lighter (CMSF is already WG-adopted at -00) but constrains LOCMAF to CMAF-mode-compatible optimizations. The May 19-20 window will likely see additional reactions from Luke Curley (the LOC author), Will Law (MSF/CMSF editor), and Mike English (CMSF co-author); these reactions will shape whether LOCMAF goes to London as an agenda item, a CMSF expansion proposal, or a standalone I-D candidate. Tobbe may want to file an agenda slot before the May 20 deadline — currently no LOCMAF slot in the chairs’ agenda inbox.

2026-05-18 — moq-dev/moq ships draft-18 (first implementation); SVC thread broadens to 4 voices

TL;DR:

  • moq-dev/moq becomes the first open-source implementation to ship draft-ietf-moq-transport-18: PR #1418 MERGED May 18 05:08 UTC by kixelated (+1431/−477, Co-authored-by: Claude). 6 days after draft-18 publication May 12 — the fastest implementation turnaround the wiki has tracked for any major draft revision (draft-17 took ~3 weeks; draft-16 took ~2 weeks). Wire version 0xff000012 / ALPN "moqt-18"; closes spec items #1595 (7-byte varint), #1618 (FIRST_OBJECT bit), #1615 (Request ID removal from PUBLISH_NAMESPACE/SUBSCRIBE), #1542 (SUBSCRIBE_TRACKS rejected), #1559 (optional trailing GoAway Request ID). First explicit spec non-compliance documented in a moq-lite PR body: “LARGEST_OBJECT (#1621): we lie on purpose — honoring the new MUST is strictly worse for live latency.” Refactor switches version matches from “explicit newest” to “newest defaults forward” — Draft19 will inherit Draft18 unless explicitly opted out. Suhas SVC TPL-vs-SGPL thread grew 13 replies in 24h: Lorenzo Miniero (Meetecho) joined as 4th voice with a WebRTC-mirror argument; afrind softened the May 15 “religious question” framing to “wire image essentially isomorphic, adaptation layer on subscriber side”; Luke surfaced a new draft-18 procedural gap: SUBSCRIBE-same-track-twice-with-different-filters is currently illegal, so subscriber control over per-layer priority is structurally only possible with TPL, which afrind conceded May 17 23:27 UTC. The London SVC design discussion now has 4 design positions to reconcile plus an outstanding moq-transport #1451 procedural dependency.
  • Implementations: moq-dev/moq — kixelated 5-merge / 2-open spree May 18 01:51 → 05:58 UTC, the largest single-window merge volume in 2026. Beyond PR #1418 draft-18: PR #1414 audio frame-per-group (01:51, +17/−50), PR #1412 SolidJS → vanilla Web Components migration (02:37, +1366/−2234), PR #1411 pixel budget ABR (03:42, +139/−2), PR #1419 BEM CSS cleanup (04:44). Plus 2 new: PR #1420 cluster loop detection (+67/−18) fixing a ~120 MB/hr memory leak on a live nanode relay (phantom anon/la-cbs / anon/la-nbc publishers re-announcing through 13-edge mesh); PR #1421 web-transport-iroh 0.4 bump (+477/−227). Eyevinn synchronised LOCMAF v0.9.0 release by Torbjörn Einarsson: moqlivemock PR #85 audio sample regeneration (06:47, +354/−8), PR #86 LOCMAF docs banner/logo/revision (08:58, +180/−1), PR #87 v0.9.0 release (09:36, +66/−7); warp-player PR #129 v0.9.0 release (09:40, +91/−13). LOCMAF v0.1 wire format frozen and labeled; publisher + player shipped together. cloudflare/moq-rs Day +35 main-quiet; google/quiche moqt Day +3 quiet; moqtail Day +5 quiet; video-dev/moq-js, birneee/quiche_moq, Eyevinn/moqtransport all longer-quiet.
  • Interop: Still 19 / 72 / 14 from May 13 00:41:38 UTC5 consecutive missed daily cadences (May 14, 15, 16, 17, 18). Matrix now structurally one revision behind its highest-touch implementation (moq-dev/moq on draft-18 since May 18 05:08 UTC). 22 days from London.

Operation: Update Sources:

  • Slack: #moqthe Suhas May 17 02:56 UTC SVC top-level thread grew 13 replies in the May 17 06:00 UTC → May 18 06:00 UTC window: afrind 08:26 CEST clarifying question; Suhas 08:58 CEST “I always supported spatial layers as tracks and temporal layers as subgroups”; Lorenzo Miniero 13:05 CEST joins as 4th-party voice with WebRTC-mirror argument “If we mirrored the way WebRTC currently does it, it would be SVC layers as subgroup, since layers per track would be more like simulcast”; afrind 17:12 CEST “Oh you are on team ‘both’. In any case, the wire image is essentially isomorphic so any system that can be built with one can be built with the other with an adaptation layer on the subscriber side.” + 17:14 CEST “I realize I am essentially telling the world ‘you can edit files in vim or emacs’”; Lorenzo 18:39 CEST “I guess I’m on team ‘depends what kind of SVC this is’”; Suhas 20:50 CEST introduces RTP SRST/MRMT analogy “Most of the real world implementations are SRST for its simplicity”; Luke 00:25 CEST May 18 acknowledges sub-group temporal scalability appeal; Luke 00:29 CEST surfaces NEW draft-18 procedural gap: “isn’t it illegal to SUBSCRIBE to the same track twice? how does that work with SUBSCRIBE track=video FILTER=sub-group=0 and SUBSCRIBE track=video FILTER=sub-group=1; afrind 01:27 CEST concedes “Oh, yeah, if you want subscriber control over layer priority you have to use track per layer.” #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos:
    • moq-transport — no new issues or merged PRs in the window. Spec gap #1451 “Allow multiple Subscriptions to a Track” (open since April 13) now load-bearing for the SGPL-with-filters subscriber-priority story.
    • moq-wg/msf — no new activity since PR #157 kixelated comment May 16 19:08 UTC. Issue #163 (will-law catalog draft-version field) untouched Day +3.
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 5 PRs MERGED May 18 01:51 → 05:08 UTC by kixelated: #1414 audio frame-per-group (01:51), #1412 SolidJS → vanilla Web Components (02:37, +1366/−2234), #1411 pixel budget ABR (03:42, +139/−2), #1419 BEM CSS cleanup (04:44), #1418 draft-18 support (05:08, +1431/−477). 2 PRs OPENED May 18 05:54 → 05:58 UTC: #1420 cluster loop detection (+67/−18, ~120 MB/hr leak fix on live nanode relay), #1421 web-transport-iroh 0.4 bump (+477/−227). 2 new issues May 17 by danrossi: #1416 (Watch TS API ready signal), #1415 (TS disconnect-on-pause toggle).
    • google/quiche (quiche/quic/moqt): No new commits May 16, 17, or 18 — Day +3 since 3d089cb May 15 16:09 UTC.
    • Eyevinn/moqlivemock: 3 PRs MERGED May 17 06:47 → 09:36 UTC by tobbee — #85 audio sample regeneration (+354/−8), #86 LOCMAF version banner / logo / revision history (+180/−1), #87 v0.9.0 release (+66/−7). Commit 66f6cae “docs(CLAUDE): expand multi-namespace section and add locmaf-vX.Y tag convention”.
    • Eyevinn/warp-player: PR #129 MERGED May 17 09:40 UTC by tobbee — v0.9.0 release (+91/−13). PR #127 (eslint 9.39.4 → 10.4.0 dev-dep) still open Day +3 after May 16 dependabot burst.
    • moqtail/moqtail: Day +5 quiet since dbd7085 May 13 08:44 UTC.
    • cloudflare/moq-rs: Day +35 main-quiet. PR #167 (Suhas filter-framework) Day +8 untouched.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
    • Quicr/cat-token: No new commits since May 10 22:30 UTC rename.
  • Mailing list: Weekly GitHub digest May 17 02:20 UTC (Repository Activity Summary Bot, do_not_reply@mnot.net) — summary of moq-wg activity (moq-transport +1/−10 issues / 6 comments / 3 PRs; warp-streaming-format +2/−8 issues / 17 comments / 6 PRs; loc +1/−0 issues). Note: this fell within yesterday’s wiki entry’s window (02:20 < 06:00 UTC May 17) but was missed in the May 17 log. Cadence restored to weekly (Day +7 since May 10 digest). No other on-list messages May 17 06:00 UTC → May 18 06:00 UTC.
  • IETF Datatracker: No new revisions May 17 or 18. WG state: transport-18 (Day +6), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +12), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: Still 19 / 72 / 14 at 2026-05-13 00:41:38 UTC5 consecutive missed daily cadences (May 14, 15, 16, 17, 18). Status remains “unreliable”. New gap: matrix is now structurally one revision behind its highest-touch implementation.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +18 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 17 06:00 UTC → May 18 06:00 UTC” section covering: moq-dev/moq ships draft-18 via PR #1418, 5-PR overnight merge spree + 2 fresh opens, Suhas SVC thread grows 13 replies / Lorenzo joins / Luke draft-18 procedural gap / afrind concession, Eyevinn synchronised LOCMAF v0.9.0 release across moqlivemock + warp-player, mailing list weekly digest carry-forward), implementations/moq-dev.md (PR #1418 + 4-merge spree + 2 new PR callout, draft-18 added to IETF adapter shims list), implementations/moqlivemock.md (May 17 PRs 87 + warp-player PR #129 callout, repo descriptions updated to v0.9.0, LOCMAF v0.1 wire-format-frozen tag), interop/interop-runner.md (May 18 pending row, 5-consecutive-miss callout, draft-18-vs-matrix structural gap note), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The 6-day moq-transport-18 → moq-dev/moq turnaround is the fastest draft-revision implementation cycle the wiki has tracked: draft-17 → moq-lite took ~3 weeks; draft-16 → moq-lite took ~2 weeks. The accelerant is the Co-authored-by: Claude workflow — kixelated has been operating with an LLM pair-programmer for every PR since early May, and the 6 PR commits on the draft-18 branch all share the auto-co-author trailer. The PR body’s section structure (“Spec-driven changes” / “Intentionally NOT changed” / “Refactor”) reads as LLM-generated PR-body scaffolding. Carry-forward: if Claude-assisted PRs continue at this cadence, draft-19 implementation timing should be measured in days rather than weeks; the interop-runner would need an order-of-magnitude faster matrix-rebuild cadence to keep up, which is structurally the opposite of where it’s currently heading (5 consecutive missed runs).
  • The “we lie on purpose” LARGEST_OBJECT comment in PR #1418 is the first explicit documented spec non-compliance in moq-lite’s history: until now, moq-lite divergence from the WG draft has been framed as “subset” or “simplified” — a complement of the spec. PR #1418’s verbiage is qualitatively different: “honoring the new MUST is strictly worse for live latency”. This is product-narrative-prioritised non-compliance, and it’s now public and explicit. Implications: (1) interop reports that test LARGEST_OBJECT compliance against moq-dev/moq draft-18 will fail by design — the matrix will need a “non-compliance is acknowledged” signalling layer to stay interpretable; (2) other implementations adopting draft-18 may follow Luke’s precedent and document their own intentional non-compliance points, which would compound the interop interpretation problem; (3) mike-english and afrind may need to weigh in on whether the WG cares to push back on this or accept that moq-lite is structurally a draft-with-intentional-deviations.
  • Lorenzo Miniero’s WebRTC-mirror argument adds a real fourth axis to the SVC TPL-vs-SGPL discussion: the discussion now has (1) afrind: wire-image-isomorphism (mostly indifferent), (2) Luke: economics (cache fragmentation, relay ingress), (3) Suhas: decoder-asymmetry + RTP SRST/MRMT precedent (mixed: spatial→tracks, temporal→subgroups), (4) Lorenzo: WebRTC simulcast precedent (favoring SGPL for spatial layers since they’re already separate streams in simulcast). Each axis weights the design space differently — there’s no single dimension along which TPL or SGPL strictly wins. Plus the Luke-discovered procedural gap (SGPL-with-per-layer-priority requires multiple subscriptions to the same track, which MOQT doesn’t allow) which is the first concrete functional differentiator in the thread. The carry-forward for London is that what used to be presented as a “religious question” (afrind May 15) now has at least one structural functional asymmetry plus four different evaluation lenses — likely demands a dedicated agenda slot.
  • moq-dev/moq is running production-shaped traffic on live infrastructure: PR #1420’s body — “Heap profile from a live nanode relay … phantom anonymous publisher (anon/la-cbs, anon/la-nbc) … 13-edge mesh” — discloses that someone (likely kixelated or moq.dev’s deployment) has been forwarding CBS / NBC livestream feeds through a moq-dev relay cluster. The 13-edge mesh and 32-hop announce-bounce phenomenon are characteristic of a production-scale CDN-shaped deployment, not a single dev machine. The fact that the diagnostic process used a heap profile of a Rust relay running on nanode infrastructure suggests this is a real-world soak-test setup, not a lab. Carry-forward: moq-dev/moq is no longer just a reference implementation — it’s a stack that has accumulated enough operational scar tissue to justify per-relay loop-detection bookkeeping, cross-session origin stability, and a 13-edge mesh. This may shift how the wiki should frame moq-dev/moq: from “Luke Curley’s reference impl” to “the most operationally-mature MoQ stack”. cloudflare/moq-rs has been on the deployment side at Cloudflare but its main branch has been Day +35 quiet; moq-dev/moq is now the one moving on both deployment and spec axes.
  • Eyevinn’s synchronised LOCMAF v0.9.0 release pattern is the textbook pre-interop coordination move: publisher (moqlivemock) and player (warp-player) released together at the same version, with the wire format frozen at LOCMAF v0.1 and labeled both in the catalog field (locmafVersion: "0.1") and in the design doc (“Document version: 0.1 (2026-05-17)”) and in the git-tag scheme (locmaf-v0.1). The audio-loop drift fix in PR #85 is unrelated to LOCMAF but came up during multi-loop soak testing — exactly the kind of issue that production-readiness preparation surfaces. Eyevinn enters the London hackathon with the highest pre-interop discipline of any tracked implementation: tooling + design doc + wire-format version + DRM coverage + audio-loop QA, all under a single v0.9.0 release tag landed 22 days before the meeting. The remaining open item is whether other implementations will adopt LOCMAF for interop testing or treat it as Eyevinn-internal — which depends largely on how widely the LOC parallel (also Luke’s) becomes a shared format in the matrix.

2026-05-17 — Suhas joins SVC thread; kixelated reverts audio frame batching; msf PR #157 converges

TL;DR:

  • Suhas Nandakumar joins SVC TPL-vs-SGPL Slack design thread May 17 04:56 CEST (02:56 UTC) with a substantive pushback against the afrind “it’s a religious question” framing: “the internal details are more complicated than object model simplification — SVC has spatial, quality, and temporal layers and the advanced ones have intricate layer dependencies across all the 3 degrees. Temporal layers and Spatial layers/Quality are handled pretty differently on the decoder side based on the information needed in-band vs can be found out of band. It is generally easier to separate Spatial layers/Quality then temporal layers into tracks. Can it be done, yes*, but with adding more complexities for the applications.”first 3rd-party participation in the May 15 thread, first decoder-side argument introduced, and first explicit asymmetric-decomposition advocacy (Spatial/Quality → tracks, temporal → subgroups, mix-and-match). moq-wg/msf PR #157 (Suhas group-numbering) reaches editorial agreement: kixelated May 16 19:08 UTC “I would have SHOULD for both, but that works for me” — accepts wilaw’s “each subsequent Group ID SHOULD increase by 1. Any intentional gaps MUST be signaled using the MOQT Prior Group ID Gap Extension header” formulation. suhasHere May 16 17:38 UTC clarifies the primary/backup-mux track-output property scope. The gap-signaling extension-header path is now the consensus mechanism for non-sequential groups — directly addresses the same bug class as moq-dev/moq PR #1413 (AWS non-sequential groups runtime fix). Mailing list / Datatracker / MoQ Monthly all silent May 16–17 — first full 2-day on-list quiet since the Joining FETCH consultation opened May 11.
  • Implementations: moq-dev/moq — kixelated reverts audio frame batching (real-time latency design reversal). PR #1414 OPENED May 16 20:29 UTC by luke-curley (+17/−50), “audio: send each frame as its own group”: “Audio frames were being packed into ~100ms groups for relay efficiency. For real-time use cases, that bounds end-to-end latency at the group boundary since the relay cannot forward a group until it is closed. Go back to one-frame-per-group: each frame is flushed to the relay immediately, and the codec’s packet loss concealment (Opus PLC, AAC PLC) handles individual frame drops.” — applies to browser publish encoder + Rust opus/aac mux importers. Net -33 LOC removing the batching path; latency-first reversal. PR #1405 (Karolk99 solid-js peerDep) CLOSED unmerged May 16 11:36 UTC — superseded by PR #1412 SolidJS-to-Web-Components migration. Eyevinn/moqlivemock — Torbjörn Einarsson PR #84 MERGED May 16 10:36 UTC (+326/−0), “docs: add DRM section to LOCMAF.md” — end-to-end encrypted-CMAF → LOCMAF-wire → reconstructed-CMAF → MSE/EME/CDM pipeline, catalog contentProtections array, cenc vs cbcs IV-on-the-wire comparison table, byte-equal-mdat preservation guarantee. Eyevinn/warp-player dependabot burst: 7 PRs merged in 15 minutes May 16 21:07–21:22 UTC — TypeScript 5.9→6.0, commitlint 20.5→21.0, eslint dev-deps, production-deps group across 1 dir, dependency-review-action v4→v5. PR #123 (3-update group) closed unmerged. google/quiche moqt 2-day quiet after May 15 16:07 UTC OutgoingFetchStream commit. cloudflare/moq-rs Day +34 main-quiet. moqtail / video-dev/moq-js / birneee/quiche_moq / Eyevinn/moqtransport / Quicr/cat-token all quiet.
  • Interop: Still 19 / 72 / 14 from May 13 00:41:38 UTC4 consecutive missed daily cadences (May 14, 15, 16, 17). The cadence is structurally broken; with mike-english handling London logistics + interim registration, no operator capacity has reopened the runner. Wiki action: downgrade interop-runner status to “unreliable” until a successful run resumes — the May 17 entry is the threshold flagged in the May 16 log.

Operation: Update Sources:

  • Slack: #moq1 new substantive top-level post in the May 16 06:00 UTC → May 17 06:00 UTC window: suhas-nandakumar May 17 02:56 UTC continuing the SVC TPL-vs-SGPL design discussion as a fresh top-level message (not threaded into the May 15 26-reply chain). #moq-rs, #moq-js, #libquicr, #moq-interop-runner all quiet. Background: the May 10 moq-interop-runner OpenMOQ-fork-process thread closed May 15 16:11 CEST with afrind summarising fork governance (“1. Need to move faster than upstream, 2. Insulate from breaking changes, 3. Upstream-disinterested ownership”) and Lucas Pardue “Thank you Alan, Will et al” — that thread is now formally closed.
  • GitHub moq-wg repos:
    • moq-transport — no new issues or merged PRs. PR #1378 (SWITCH) still updated_at May 15; no new comments / reviews / commits.
    • moq-wg/msfPR #157 (Suhas group-numbering) 2 new comments May 16: suhasHere 17:38 UTC “It’s the property of output track that we are talking about here. The same rules apply” (clarifies that primary/backup input-mux behaviour is still subject to the output-track sequential-group rule); kixelated 19:08 UTC accepts wilaw’s “each subsequent Group ID SHOULD increase by 1. Any intentional gaps MUST be signaled using the MOQT Prior Group ID Gap Extension header” formulation with “I would have SHOULD for both, but that works for me”. Issue #163 (will-law catalog draft-version field) no new comments. PR #159 (catalog compression) untouched since May 15 07:51 UTC.
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: PR #1414 OPENED May 16 20:29 UTC (kixelated, +17/−50, audio one-frame-per-group revert). PR #1405 CLOSED May 16 11:36 UTC (Karolk99 solid-js peerDep, superseded by PR #1412 SolidJS removal). No new merges to main since May 15 16:48 UTC PR #1395 (Day +1 main-quiet). PR #1408, #1410, #1411, #1413 still open (last update May 16 03:50–04:45 UTC).
    • google/quiche (quiche/quic/moqt): No new commits May 16 or May 17 (last 3d089cbe May 15 16:07 UTC). 9 commits in 4 days now followed by 2-day quiet.
    • Eyevinn/moqlivemock: PR #84 MERGED May 16 06:55 → 10:36 UTC (tobbee LOCMAF DRM docs, +326/−0, docs-only).
    • Eyevinn/warp-player: Dependabot 7-PR merge burst May 16 21:07–21:22 UTC — PR #121 (dependency-review-action v4→v5, 21:07 UTC), PR #122 (dev-deps group, 21:07 UTC), PR #125 (@commitlint/cli 20.5.3→21.0.0, 21:07 UTC), PR #126 (@commitlint/config-conventional 20.5.3→21.0.1, 21:12 UTC), PR #128 (prod-deps group, 21:15 UTC), PR #124 (TypeScript 5.9.3→6.0.3, 21:22 UTC). PR #123 (3-update prod-deps group, alternate to #128) CLOSED unmerged 21:10 UTC. PR #127 (eslint 9.39.4→10.4.0) still open after CI signal.
    • moqtail/moqtail: Last commit May 13 08:44 UTC ([ci] release #196); quiet.
    • cloudflare/moq-rs: Day +34 main-quiet. PR #167 (suhas-nandakumar filter-framework) untouched since May 10 05:03 UTC — Day +7.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
    • Quicr/cat-token: No new commits since May 10 22:30 UTC rename.
  • Mailing list: No new messages May 16 or May 17 — 2-day silence. Last on-list activity remains the May 15 6-message bundle (Mike English London invitation + afrind Joining-FETCH-survey synthesis + Joining-FETCH use-case redesign acceptance). No Weekly GitHub digest May 17 (last digest May 10, Day +7 now). Will Law recharter thread (Day +5 silence) and martinduke “On other use cases” thread both quiet.
  • IETF Datatracker: No new revisions May 14–17. WG state: transport-18 (Day +5), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +11, still no on-list announcement), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00.
  • Interop runner: Still 19 / 72 / 14 at 2026-05-13 00:41:38 UTC4 consecutive missed daily cadences (May 14, 15, 16, 17). Cadence structurally broken; downgrade interop-runner to “unreliable” status until a run resumes.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +17 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 16 06:00 UTC → May 17 06:00 UTC” section covering: Suhas pushback on SVC religious-question framing, kixelated audio one-frame-per-group revert PR #1414, moq-wg/msf PR #157 SHOULD-both editorial convergence, PR #1405 SolidJS peerDep closure superseded by PR #1412, Eyevinn/moqlivemock LOCMAF DRM docs PR #84, Eyevinn/warp-player dependabot 7-PR burst), interop/interop-runner.md (May 17 pending row, status downgraded to “unreliable”), implementations/moq-dev.md (PR #1414 audio frame-per-group revert callout, PR #1405 closure note), implementations/moqlivemock.md (PR #84 LOCMAF DRM docs callout), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The SVC TPL-vs-SGPL thread is no longer a 3-author exchange: Suhas Nandakumar’s May 17 02:56 UTC top-level post is the first 3rd-party participation (afrind / Luke / Victor were the only voices in the May 15 thread). Substantively, Suhas opens a new axis the afrind framing didn’t address: decoder-side complexity asymmetry between layer types. The framing was “with subgroup filters, TPL and SGPL produce identical wire bytes except Track Alias, so it’s a religious question”. Suhas’s counter is that the wire-format equivalence is true but irrelevant — the decoder needs different in-band vs out-of-band information for temporal layers vs spatial/quality layers, and that asymmetry maps better to a mixed-decomposition (spatial/quality → tracks for separable subscribe-control, temporal → subgroups for in-band signalling). This is a third option neither afrind, Luke, nor Victor put on the table — TPL-only, SGPL-only, or mixed-by-layer-type. Carry-forward: the 2026-06-09-london-interim design discussion likely now has three positions to reconcile, not two. Worth noting Suhas posted as a fresh top-level message rather than threading into afrind’s 26-reply chain — likely intentional surfacing, since threading would have buried the point in the existing back-and-forth.
  • The moq-wg/msf PR #157 editorial convergence resolves the same bug class that AWS hit at runtime: AWS’s moq-dev PR #1413 (May 16 00:50 UTC) was the runtime symptom — “the consumer assumed group sequences increment by 1, but CMSF/EML uses epoch-based sequences with large gaps (e.g. 85386781784064, 85386781832192)” causing ~1s audio underflows. The msf PR #157 / wilaw / kixelated agreement that “each subsequent Group ID SHOULD increase by 1; intentional gaps MUST signal via the MOQT Prior Group ID Gap Extension header” is the spec-side resolution path: producers (like CMSF/EML) that use epoch-based sequences are now spec-permitted-with-extension, and consumers (like AWS’s moq-dev fork or any compliant subscriber) get a wire-level signal to switch into gap-aware mode. Note: kixelated’s preferred wording “SHOULD for both” (vs wilaw’s “SHOULD … MUST”) is a slight weakening — it makes the extension-header signalling a strong recommendation rather than mandatory, leaving an explicit non-compliant-but-still-legal path. This compromise reflects that some producers (Luke’s own moq-lite) may not always have a clean way to predict the gap before emitting. Worth flagging in the moq-msf page when PR #157 merges.
  • The kixelated audio-frame-per-group revert is a real-time-latency reversal, not just a bug fix: PR #1414’s rationale is end-to-end latency arithmetic“the relay cannot forward a group until it is closed, so 100ms groups put a 100ms floor on E2E latency”. The earlier batching choice (~100ms) was for relay efficiency (smaller QUIC stream count); the revert is for real-time use cases (every individual frame flushed immediately). The codec-PLC fallback (“Opus PLC, AAC PLC handles individual frame drops”) is the trade-off — relay efficiency goes down (more streams), but latency floor drops to ~frame-duration. This is the second moq-lite design choice this month that has been reversed in the “go back to the more obvious primitive” direction (the other: PR #1385 May 6 reverted PR #1356 insert_track API change, then PR #1387 re-reverted). The pattern is kixelated tightening real-time semantics in advance of London hackathon — moq-lite’s product narrative is “low-latency live”, and the audio batching was a latency leak. Carry-forward: expect more “prefer immediate flush over batch efficiency” reverts pre-June 9.
  • The interop-runner is now formally unreliable, not paused: The May 16 wiki entry flagged May 17 as the structural-stability check — “Either the new-15-role matrix is genuinely broken… or the operator is taking the time to verify the larger matrix before publishing. Either way, the carry-forward is that the moq-llm-wiki’s interop-status surface is dark going into the 11-business-day window before London. If the May 17 run is also missing, the wiki should explicitly downgrade the interop-runner status.” The May 17 run did not publish. Four consecutive missed daily cadences confirms this is operator-bandwidth-limited, not an intentional baselining pause — Mike English has been focused on London logistics + cdn-provisioning + relay-dos drafts + the May 15 invitation announcement, and the new-15-role matrix expansion he merged May 13 17:23–17:25 UTC remains uncommitted to a CI run. Wiki action: downgrade interop-runner header status from “current” to “unreliable” and flag it on the implementation pages that depend on it for status signals (specifically mlmtest, aiomoqt, moqx-client, Nokia-via-Docker — all 4 newly merged on May 13 and have had zero validation runs).
  • The wiki’s signal density has dropped sharply May 16–17: this is the lowest-activity 24-hour window in the wiki’s tracking history of 2026. Single new substantive Slack post, single net-new moq-dev/moq PR, zero merged moq-wg PRs, zero new IETF revisions, zero mailing list messages, zero new interop runs. Most likely cause: the London interim June 9–12 registration deadline (June 4) is now 18 days out, and the design-debate energy of mid-May (Joining FETCH consultation, SVC thread, AWS onboarding, LOCMAF tooling burst) has shifted into implementation prep mode — implementers are busy stabilising their stacks for the interop hackathon, not opening new threads. This is the pre-London quiet the wiki should expect to see for the next 2–3 weeks; if the May 17 quiet pattern persists, the wiki may need to switch to a less daily-intensive update cadence until London traffic resumes.

2026-05-16 — SVC TPL-vs-SGPL Slack design thread; London interim formal invitation; AWS 2nd PR within 24h

TL;DR:

  • First substantive #moq SVC architecture thread of 2026: alan-frindell May 15 20:27 CEST (18:27 UTC) opens 26-reply thread arguing Track-per-layer vs Subgroup-per-layer is now “a religious question” because draft-18 subgroup filters narrowed the wire-format differences to just the Track Alias. Luke Curley + Victor Vasiliev push back on two concrete remainders: (1) publisher-priority scope across namespaces is undefined (Victor 20:35 CEST: “I think we currently assume it’s shared across the scope” — fresh draft-18 gap), (2) filter-based opt-out has CDN economics costs (Luke 20:46 CEST: “fragmented cache, or increases relay ingress costs”). Carry-forward to London. Mailing list — Mike English May 15 formally announces London interim June 9–12 (archive): 4-day contiguous in-person window at Cloudflare London office (County Hall / The Riverside Building, SE1 7PB), 09:00–17:00 BST daily, registration deadline June 4 for building security. Reframes the meeting structure from the wiki’s previous “moq-08/09/10/11 across June 11–12 only” model — June 9–10 are hackathon/interop days, June 11–12 the formal sessions. Joining FETCH discussion continues: afrind ×2 on the survey synthesis, Yu You (Nokia) accepts the redesign recommendation (wall-clock Group IDs + unique Object IDs per participant), Mo Zanaty + Luke Curley reply with track-per-publisher anti-pattern guidance. moq-wg/msf — Issue #163 OPENED (will-law, “Version should carry draft info for interop until released”) — proposes catalog version field becomes "draft-NN" string or sub-1 decimal for the June interop forcing function — first MSF issue explicitly motivated by London. PR #157 (Suhas group-numbering): wilaw 10:03 UTC proposes tying gap-signaling to MOQT Prior Group ID Gap Extension header — formalises the extension-based path.
  • Implementations: moq-dev/moq — 8-PR-merge-in-24-hours volume record (May 14 16:45 → May 15 16:48 UTC): luke-curley merges PR #1395 (moq-cli rename), #1398 (Qizot activity signals), #1404 (Qizot catalog fix), #1409 (danrossi new-contributor Vite worker plugin). Same window opens 4 new PRs: #1410 (YogiSotho new-contributor buffering overlay fix, +101/−2), #1411 (kixelated pixel-budget ABR control, +139/−2), #1412 (kixelated SolidJS → vanilla Web Components migration, +1366/−2234 net −868 LOC, removes @moq/ui-core package), and #1413 (ksletmoe-aws SECOND AWS PR within 24h of #1408, +68/−14) fixing non-sequential group sequences (CMSF/EML epoch-based gaps causing ~1s audio underflows) + AVC description fallback for WebCodecs. AWS now highest-touch external contributor of the week: 2 PRs in 24h (one packaging-layer, one runtime-fix). google/quiche moqt — 1 commit May 15 16:07 UTC by martinduke (Create OutgoingFetchStream and factor out OutgoingUniStream as a parent of both data stream types) — 9th moqt commit in 4 days, building class hierarchy for draft-18 FETCH. Eyevinn/moqlivemock — 3 PRs MERGED by Torbjörn Einarsson (the wiki owner): #81 (09:36, +2115/−61, LOCMAF encoder/decoder + roundtrip CLI + design doc), #82 (16:45, +70/−3, catalog locmafVersion field), #83 (19:37, +144/−4, LOCMAF-accurate bitrate reporting; e.g., 128 kbps AAC was misreported as 171.5 kbps). With PR #79 (May 14, hugobjoers, +2886/−83) that’s ~+5215 LOC LOCMAF work in 36 hours going into London. cloudflare/moq-rs Day +33 quiet, PR #167 Day +6 quiet. moqtail / video-dev/moq-js / birneee/quiche_moq / Eyevinn/moqtransport all quiet.
  • Interop: No new run since May 13 00:41:38 UTC reading of 19 / 72 / 143 consecutive missed daily cadences now (May 14, May 15, May 16). 105-test baseline structurally broken since the mike-english 4-PR registry expansion at May 13 17:23–17:25 UTC. The next run is the structural-stability check: does it publish, and does total-tests-count grow above 105?

Operation: Update Sources:

  • Slack: #moq1 substantive new thread in the May 15 09:00 UTC → May 16 06:00 UTC window: alan-frindell May 15 20:27 CEST “On the question of ‘Is SVC better as Track per layer or Subgroup per layer?’…” with 26 thread replies all from luke-curley (17 replies) and victor-vasiliev (5 replies) — the first substantive SVC architecture design discussion on #moq in 2026. #moq-rs: gazzy joins May 15 15:37 CEST (no messages). #moq-js, #libquicr, #moq-interop-runner all quiet.
  • GitHub moq-wg repos:
    • moq-transport — no new issues or merged PRs. PR #1378 (gwendalsimon SWITCH for Client-side ABR) updated_at bumped to May 15 21:15 UTC but timeline inspection shows no new comments/reviews/commits/labels since April 17 — likely an internal subscription/mention event.
    • moq-wg/msfIssue #163 OPENED May 15 10:44 UTC (will-law, “Version should carry draft info for interop until released”) — catalog version field needs to carry draft revision for interop until RFC release; proposes string "draft-NN" or sub-1 decimal convention. PR #157 (Suhas group-numbering restarts) — wilaw May 15 10:03 UTC comment: “What if we said ‘each subsequent Group ID SHOULD increase by 1. Any intentional gaps MUST be signaled using the MOQT Prior Group ID Gap Extension header.’?” — formalises gap-signaling via extension header.
    • moq-wg/loc — Issue #20 (cross-spec Properties collision) no activity. Issue #19 (Luke Curley LOC Private Properties) still open.
    • moq-wg/secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: 4 PRs MERGED May 15 14:08 → 16:48 UTC — #1409 (danrossi Vite alias resolver, 14:08), #1404 (Qizot catalog fix, 14:16), #1398 (Qizot activity signals, 16:14), #1395 (kixelated moq-cli rename, 16:48). 4 PRs OPENED: #1410 (YogiSotho buffering overlay, 13:59 UTC, +101/−2), #1411 (kixelated pixel budget, 14:15 UTC, +139/−2), #1412 (kixelated SolidJS→Web Components migration, 16:31 UTC, +1366/−2234), #1413 (ksletmoe-aws non-sequential groups + AVC desc fallback, May 16 00:50 UTC, +68/−14 — 2nd AWS PR within 24h of #1408). PR #1396 (metapox SUBSCRIBE_UPDATE), #1391 (release-bot v0.16.1), #1405 (Karolk99 solid-js peerDep) all still open.
    • google/quiche (quiche/quic/moqt): 1 new commit3d089cb May 15 16:07 UTC by martinduke (“Create OutgoingFetchStream and factor out OutgoingUniStream…”). 9th moqt commit in 4 days.
    • Eyevinn/moqlivemock: 3 PRs MERGED by tobbee — #81 (09:36 UTC, +2115/−61, LOCMAF encoder/decoder + roundtrip CLI + design doc), #82 (16:45 UTC, +70/−3, locmafVersion catalog field), #83 (19:37 UTC, +144/−4, LOCMAF bitrate calculation).
    • Eyevinn/warp-player: PR #120 (hugobjoers LOCMAF) updated May 15 19:36 UTC, still open Day +10.
    • moqtail/moqtail: quiet post-PR-193 release cycle.
    • cloudflare/moq-rs: Day +33 main-quiet. PR #167 (suhas-nandakumar filter-framework) untouched since May 10 05:03 UTC — Day +6.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
    • Quicr/cat-token: No new commits since May 10 22:30 UTC rename.
  • Mailing list: 6 messages May 15:
    • Mike English May 15 “[Moq] London interim June 9-12” (archive) — formal in-person interim invitation, June 9–12 contiguous, Cloudflare London office, registration deadline June 4.
    • afrind May 15 ×2 on “[Moq] Re: Joining FETCH Survey” — translating Luke Curley’s prose-form May 14 reply to survey (Q1=4, Q2=3, Q3=MAY-remove, Q4.3=Fill); follow-up Qs to Victor on unified-control-plane-vs-separate-data-planes interpretation.
    • Yu You (Nokia) May 15 on “[Moq] Re: User case or question to Joining Fetch” — accepts redesign: wall-clock Group ID + unique Object ID per participant, with shared “catalog” track + per-participant track names.
    • Mo Zanaty May 15 on same thread — anti-pattern warning on shared-chat-track: “MOQT says such tracks SHOULD NOT use group range filters at all”, “A track is malformed if different objects end a subgroup or group”. Recommends Subscribe-Tracks-per-sender alternative.
    • Luke Curley May 15 on same thread — track-per-publisher pattern.
    • No activity on Will Law’s recharter thread (Day +3 silence) or martinduke’s “On other use cases” thread. No Weekly GitHub digest May 15 (Day +5 from May 10).
  • IETF Datatracker: No new revisions May 14–16. WG state: transport-18 (Day +4), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +10, still no on-list announcement), englishm-cdn-provisioning-00, englishm-relay-dos-00, lcurley-compressed-mp4-00 (ingested May 15).
  • Interop runner: 19 / 72 / 14 at 2026-05-13 00:41:38 UTC — no May 14, 15, or 16 run published. 3 consecutive missed daily cadences.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +16 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 15 09:00 UTC → May 16 06:00 UTC” section covering: SVC TPL-vs-SGPL Slack design thread, London interim formal invitation, moq-dev/moq 8-PR-merge-in-24h volume record + AWS 2nd PR #1413, Eyevinn/moqlivemock LOCMAF tooling trio by tobbee, moq-wg/msf Issue #163 + PR #157 wilaw activity, google/quiche moqt 9th commit, mailing-list Joining-FETCH survey synthesis + Nokia chat redesign), interim-meetings.md (London June 9-12 4-day reframing, registration deadline June 4, full schedule), interop/interop-runner.md (May 16 pending row), implementations/moq-dev.md (May 15 8-PR merge + May 16 AWS PR #1413 callout), implementations/moqlivemock.md (May 14–15 LOCMAF tooling-stabilisation callout, packaging list), index.md (last_updated bump), log.md (this entry).

Key findings:

  • The SVC TPL-vs-SGPL design debate has now been substantively narrowed by Alan Frindell to two operational concerns: (1) cache fragmentation / relay ingress costs (TPL advantage), (2) subgroup-per-object-on-enhancement-layer alignment headache (SGPL advantage). The protocol-design difference is “a religious question”. The fresh finding is the Victor Vasiliev publisher-priority-scope ambiguity at 20:35 CEST“I think we currently assume it’s shared across the scope” — not flagged on any issue tracker, and Luke’s counter (cross-namespace priority should NOT leak) directly contradicts the “shared across the scope” default. This is a draft-18 gap that needs an Issue ticket and likely belongs in the 2026-06-09-london-interim design agenda. Lukewarm consensus signal: Luke + Victor are working through the design live without an editor, no escalation to the list — likely they’ll synthesise into a single PR or issue post-London.
  • The June 9–12 London interim formal invitation reframes the meeting structure significantly: the wiki’s prior mental model was “moq-08/09/10/11 across June 11–12, with hackathon/interop being implicit”. Mike English’s May 15 announcement makes it explicit: June 9–10 are full hackathon/interop days, June 11–12 are formal sessions — 4 days, 32 hours of in-person time at Cloudflare London. The June 4 registration deadline is operationally significant: any implementer planning to attend in-person must have name + affiliation on the wiki by 19 days from the announcement. Carry-forward: implementations that intend to interop must be on the May 16 / May 17 baseline by June 4 to leave one week for image-build + matrix-registry merge before the runner needs to be matrix-ready for the June 9 hackathon. Mike’s 4-PR registry expansion at May 13 17:23–17:25 UTC pre-staged this exact need.
  • AWS contribution pattern is fastest-onboarding of any corporate contributor on moq-dev/moq in 2026: PR #1408 (May 14, +3891/−457 CMSF muxer + C FFI, packaging layer) → PR #1413 (May 16, +68/−14 non-sequential groups + AVC fallback, runtime fix) in under 36 hours. The runtime-fix PR is the more significant signal — AWS is actively running the moq-dev stack against CMSF/EML producers and hitting wire-format edge cases (epoch-based group sequences with 48-bit-range gaps). The non-sequential-groups bug would have blocked an internal AWS demo or pilot; ksletmoe-aws hit it, fixed it upstream, and filed within 6 hours of the AVC catalog problem. This is the deepest external engagement on moq-dev/moq core consumer/decoder paths in the wiki tracking history — qualitatively different from packaging contributions (which are isolated to integration code).
  • The Eyevinn/moqlivemock LOCMAF burst is a textbook pre-interop tooling sprint by the wiki owner himself: PR #79 (May 14, hugobjoers, +2886/−83 LOCMAF support) → PR #81 (May 15 09:36, tobbee, +2115/−61 encoder/decoder fixes + CLI + design doc) → PR #82 (May 15 16:45, tobbee, +70/−3 catalog locmafVersion) → PR #83 (May 15 19:37, tobbee, +144/−4 bitrate fix). The catalog locmafVersion field hedge (“the LOCMAF wire format is still evolving and some recent changes are behavioural rather than additive — e.g. the absolute moofBaseMediaDecodeTime override on field ID 10 with new semantics”) is a production-quality versioning anti-pattern detection: when wire-format semantics change without bumping the registered identifier, downstream consumers must rely on out-of-band version negotiation. The fact that tobbee builds the version-negotiation path before the wire format stabilises is exactly the discipline that makes pre-interop LOCMAF testing tractable. Carry-forward: tobbee and hugobjoers’s coordinated LOCMAF push (publisher in moqlivemock, player in warp-player PR #120 still open) is positioning Eyevinn for a strong LOCMAF showing at June 9–10 hackathon.
  • The interop-runner 3-consecutive-missed-runs is now a structural concern, not a baseline pause: May 16 was the structural check we flagged in the May 15 entry. A third missed run means either (a) the new-15-role matrix is genuinely broken and Mike English hasn’t had the bandwidth to fix it (May 15 he was busy with the London interim announcement), or (b) the runner has been intentionally re-baselined and the operator is taking the time to verify the larger matrix before publishing. Either way, the carry-forward is that the moq-llm-wiki’s interop-status surface is dark going into the 11-business-day window before London. If the May 17 run is also missing, the wiki should explicitly downgrade the interop-runner status from “daily cadence” to “unreliable” in interop-runner and flag the gap to Mike on #moq-interop-runner.

2026-05-15 (supplemental) — ingest draft-lcurley-compressed-mp4-00

TL;DR:

  • Added draft-lcurley-compressed-mp4-00 — Luke Curley’s individual submission (17 March 2026, 12 pages, Informational, expires 18 September 2026). Defines a varint-based compression scheme for ISO BMFF: a cmpd table in moov maps varint IDs ↔ 4-char box type names; four compressed box variants (cmfh, cfhd, cfdt, crun) replace fixed-width payload fields with QUIC-style varints. Reduces per-fragment overhead from ~96 bytes to ~21 bytes (≈78%) while preserving the ISOBMFF box hierarchy. Positions between LOC (new wire format) and CMSF (full standard fMP4). Security/IANA sections still stubs in -00.
  • Implementations: No code-side change in this supplemental — pure ingest. Source / issue tracker at github.com/kixelated/moq-drafts.
  • Interop: No new run; carry-forward from the May 15 main entry (19 / 72 / 14 from May 13).

Operation: Ingest Sources:

  • https://www.ietf.org/archive/id/draft-lcurley-compressed-mp4-00.txt (downloaded to sources/ietf-drafts/draft-lcurley-compressed-mp4-00.txt)
  • https://datatracker.ietf.org/doc/draft-lcurley-compressed-mp4/

Pages updated: wiki/drafts/compressed-mp4.md (NEW), wiki/index.md (IETF Drafts table row), wiki/log.md (this entry).

Key findings:

  • Third Luke-Curley individual draft tracked alongside moq-lite and (informally) draft-lcurley-moq-hang-01. Unlike moq-lite (transport) and Hang (media layer), this one is a container-format draft — Luke’s first contribution at the ISOBMFF layer.
  • The compression scheme is intentionally lossless and reversible: a receiver MUST be able to reconstruct the original uncompressed ISO BMFF structure by reversing the ID-to-name mapping and adjusting size fields. This is the structural difference vs LOC, which replaces fMP4 entirely.
  • Acknowledgments explicitly disclose AI-assisted drafting (Claude) — consistent with the pattern on other recent Luke-authored artifacts (PR #1407 Co-authored-by: Claude trailer May 14).
  • Open editorial gaps in -00: Security Considerations is TODO Security; IANA registration for 5 ISO BMFF box types (cmpd, cmfh, cfhd, cfdt, crun) is enumerated but not coordinated with MP4RA. Both would need resolution before adoption.

2026-05-15 — interop registry expands by 4; AWS lands in moq-dev/moq; post-draft-18 issue triage pattern emerges

TL;DR:

  • First mass expansion of the interop matrix in 2026: mike-english MERGED 4 long-pending interop-runner PRs in 2 minutes May 13 17:23–17:25 UTCPR #67 (gmarzot aiomoqt, Python asyncio MoQT client) 17:23:32 UTC, PR #66 (gmarzot moqx client role) 17:24:28 UTC — first OpenMOQ-author merge post-May-9-fork-incident, PR #63 (Torbjörn Einarsson / Eyevinn mlmtest moqlivemock client) 17:25:14 UTC — Day +31 from open, PR #65 (yuyou / Nokia Docker RELAY_URL support) 17:25:58 UTC. Registry grows from 11 → 15 roles (mlmtest + moqx-client + aiomoqt + Nokia-via-Docker-URL). Second-order effect: matrix has not produced a May 14 or May 15 daily run — 2 consecutive missed cadences. Either intentional re-baselining or CI gating; carry-forward is the May 16 run as the structural-stability check. AWS enters moq-dev/moq: PR #1408 OPENED May 14 18:20 UTC by ksletmoe-aws (Kevin Sletmoe at AWS) — “feat(moq-mux, libmoq): add CMSF muxer, demuxer, and C API” (+3891/−457, largest single PR to moq-dev/moq in 2026). Brings CMSF muxer/demuxer + C FFI surface to the moq-dev stack alongside existing Rust + TypeScript. moq-dev corporate-contributor footprint now: Cloudflare (englishm review activity), Nokia (yuyou), Eyevinn (tobbee adjacent), OpenMOQ (gmarzot via interop-runner), and now AWS (ksletmoe-aws). Post-draft-18 issue triage pattern emerges in moq-transport (3 actions same day May 14): alan-frindell 18:43 UTC on Issue #1632 (cross-spec Properties collision) — “The LOC authors will create a new loc draft, and update the appendix in moq to reflect it so we don’t keep having this problem” (defers to LOC editorial fix); Issue #1631 (codec switching) TRANSFERRED to MSF as #162 after victor-vasiliev May 14 11:56 UTC: “Either way, this is an MSF issue, and not MOQT” + will-law 16:41 UTC MSF confirmation — first cross-spec issue transfer post-draft-18, sets the routing precedent (codec/encoding belongs to MSF); afrind 19:01 UTC closes 18-month-old Issue #607 (“Group Order for Subscriptions ?”) as keep — “Folks seems to have use cases for this. Closing.” Pattern: WG editors actively route-and-defer rather than reopen MOQT debate.
  • Implementations: moq-dev/moq breaks 5-day quietluke-curley merges 4 PRs in ~12 hours May 14 16:45 → May 15 04:37 UTC: PR #1402 (SteveMcFarlin moq-gst CAPS+EOS — first merge from 2nd new contributor of May), PR #1407 (kixelated “Bump package versions across JS packages” with explicit Co-authored-by: Claude trailer), PR #1399 (skirsten MultiBackend close), PR #1400 (skirsten PromiseReactions leak). Release-bot PR #1391 “chore(moq-lite): release v0.16.1” opens May 15 04:39 UTC. google/quiche moqt — 2 more commits May 14 22:49 + 23:03 UTC by martin-duke (OutgoingDataStream refactor + OutgoingSubgroupStream cleanup) bringing total to 8 commits in 3 days (May 12–14) — most concentrated quiche-moqt activity of 2026. Eyevinn moqlivemock PR #79 (hugobjoers LOCMAF support) MERGED May 14 08:08 UTC, +2886/−83 — largest moqlivemock PR of 2026; warp-player PR #120 (same author) still open. moqtail quiet post-PR-193 release cycle. cloudflare/moq-rs Day +32 main-quiet; PR #167 untouched Day +5. video-dev/moq-js / birneee/quiche_moq / Eyevinn/moqtransport / Quicr/cat-token all quiet.
  • Interop: No new run since May 13 00:41:38 UTC reading of 19 / 72 / 14 (note: prior wiki entries recorded 19/71/14 for this reading; the results page shows 19/72/14, total 105). 2 consecutive missed daily cadences (May 14 + May 15) aligning precisely with the 4-PR registry-expansion merge at May 13 17:23–17:25 UTC. Plausible causes: (a) new-15-role matrix re-baselining intentionally paused, (b) a new image build failing CI and gating the run, (c) operator absence. Carry-forward: the May 16 run is the structural-stability check — a successful run with higher total-tests count would confirm matrix expansion; another miss means the cadence is structurally broken.

Operation: Update Sources:

  • Slack: #moq1 new event in the May 14 09:00 UTC → May 15 09:00 UTC window: Dragana Damjanovic (Mozilla) May 14 18:09 CEST joined #moq — first Mozilla-affiliated public join on the wiki record (Dragana is well-known in QUIC circles via Neqo); reads as Mozilla observation interest post-draft-18 + recharter. No messages. #moq-rs, #moq-js, #libquicr, #moq-interop-runner all unchanged.
  • GitHub moq-wg repos:
    • moq-transportIssue #1632 (cross-spec collision) afrind May 14 18:43:18 UTC comment establishing LOC-new-draft + appendix-sync resolution path; Issue #1631 (codec switching) TRANSFERRED to moq-wg/msf Issue #162 after vasilvv May 14 11:56 UTC + wilaw May 14 16:41 UTC confirmations; Issue #607 (Group Order for Subscriptions, Suhas Nov 2024) CLOSED May 14 19:01:43 UTC by afrind as keep. PR #1476 (afrind delivery timeouts, Feb 9) updated May 14 11:50 UTC — needs rework after PR #1605 landed (DELIVERY_TIMEOUT split).
    • moq-wg/msfIssue #162 ACTIVE (transferred from moq-transport #1631): wilaw May 14 16:41 UTC framing the MSF position (new track, not codec switch). Issue #153 (vasilvv initTrack does not work) still updated within window. PR #159 (catalog compression) updated May 15 04:45 UTC; PR #157 (group numbering) and PR #156 (object-stream mapping) quiet.
    • moq-wg/loc — Issue #20 (LOC-02 Properties collision, yuanchao-chris May 14) — no further activity; resolution path is the LOC-new-draft afrind referenced. Issue #19 (Luke Curley LOC Private Properties) still open.
    • moq-wg/secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • moq-dev/moq: PR #1408 OPENED May 14 18:20:14 UTC (ksletmoe-aws, “feat(moq-mux, libmoq): add CMSF muxer, demuxer, and C API”, +3891/−457, first AWS contribution + largest single PR of 2026). PRs MERGED: #1402 (SteveMcFarlin moq-gst) May 14 16:45 UTC; #1407 (kixelated version bump) May 14 16:59 UTC; #1399 (skirsten MultiBackend) May 14 17:00 UTC; #1400 (skirsten PromiseReactions) May 15 04:37 UTC. Open: PR #1391 (release v0.16.1 moq-bot, May 15 04:39 UTC); PR #1405 (Karolk99 solid-js peerDependency, May 14 20:58 UTC); PR #1404 (Qizot Fix reading catalogs, May 14 16:58 UTC); PR #1401 (skirsten video pacing rAF) updated May 11.
    • google/quiche (quiche/quic/moqt): 2 new commits May 14 by martinduke — 9c96a40 22:49 UTC “Refactor: Move OutgoingDataStream to a separate file…”; 6b1d73b 23:03 UTC “Cleanup OutgoingSubgroupStream…“. Total 8 commits May 12–14 across 3 authors (martinduke, vasilvv, asedeno).
    • Eyevinn/moqlivemock: PR #79 MERGED May 14 08:08:57 UTC (hugobjoers LOCMAF, +2886/−83). PR #77 (CENC chain IV) already merged earlier.
    • Eyevinn/warp-player: PR #120 (hugobjoers LOCMAF) updated May 14 12:02 UTC, still open. Dependabot PRs #121–127 all open Day +4.
    • moqtail/moqtail: No new merges since May 13 morning release pipeline. PR #170 (April 8 closed) updated_at touch was a release-tagging side effect, not a new event.
    • cloudflare/moq-rs: Day +32 main-quiet. PR #167 (suhas-nandakumar filter-framework) untouched since May 10 05:03 UTC — Day +5.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
    • Quicr/cat-token: No new commits since May 10 22:30 UTC rename.
  • Mailing list: 7 messages May 14–15 all on already-open threads. 5 replies May 14 on “[Moq] Re: Consensus call on Object filters” (Lorenzo Miniero / Luke Curley / Victor Vasiliev ×2 / Mo Zanaty) — first substantive engagement on Magnus’s May 12 consensus call. 2 replies May 14 on “[Moq] Re: Joining FETCH Survey” (Luke Curley / Victor Vasiliev). Yu You (Nokia) May 15 follow-up on the Joining Fetch user-case thread. No May 14–15 activity on Will Law’s recharter thread (Day +3 silence post-IAB-burst) or martinduke’s “On other use cases” thread. No Weekly GitHub digest May 14 or 15 (last digest May 10).
  • IETF Datatracker: No new revisions May 13–15. WG state: transport-18 (Day +3), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +9, still no on-list announcement), englishm-cdn-provisioning-00, englishm-relay-dos-00.
  • Interop runner: 19 / 72 / 14 at 2026-05-13 00:41:38 UTC — no May 14 / May 15 run as of this update. 4-PR registry expansion at May 13 17:23–17:25 UTC has interrupted the daily cadence.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +15 since #1, breaking the longest-gap record set yesterday.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 14 09:00 UTC → May 15 09:00 UTC” section covering: interop-runner 4-PR registry-expansion burst, AWS-enters-moq-dev/moq via PR #1408, Luke 4-PR-merge-in-12-hours review burst breaking 5-day quiet, moq-transport post-draft-18 issue triage pattern (Issues #1632 / 1631-transfer / #607), google/quiche moqt 2-more-commits, moqlivemock PR #79 LOCMAF merge, Filters consensus engaging on mailing list, Dragana Damjanovic Mozilla #moq join, interop runner 2-consecutive-missed-runs status), interop/interop-runner.md (registry expanded 11 → 15 roles, May 14 + May 15 rows added with ”—” pending), implementations/moq-dev.md (May 14 AWS PR #1408 callout in header), index.md (last_updated bump), log.md.

Key findings:

  • The interop matrix is in its first structural expansion since the moqx-relay-add of April 11: 4 new participant roles in 2 minutes is a Mike English deliberate batch — likely a pre-London-interim staging act, getting all known mlmtest / moqx-client / aiomoqt / Nokia-v17 endpoints registered before the June 9–10 interop. The 2-consecutive-missed-runs is plausibly intentional: a 15-role matrix produces ~225 client-server pairs (vs ~121 for 11 roles), and the previous 105-test baseline was scoped to a known-passing subset. Carry-forward: the May 16 reading is the structural check — if total-tests count grows, the expansion is operational; if no run again, intervention will be needed before London.
  • AWS has entered the moq-dev/moq orbit with a packaging-layer contribution, not a protocol-core contribution: ksletmoe-aws’s PR #1408 brings CMSF muxer/demuxer + C FFI — exactly the packaging/integration layer where AWS would have leverage for IVS, Media Live, Elastic Transcoder, etc. The fact that the contribution is to Luke’s moq-dev/moq (moq-lite) stack rather than to the IETF-aligned cloudflare/moq-rs is notable — it suggests AWS’s near-term productization path is the moq-lite ecosystem, not the WG-strict spec. Combined with the C FFI (libmoq) surface this PR introduces, the moq-dev stack is becoming the de-facto cross-language integration target for non-Rust/non-TypeScript producers (Go, C++, Python, etc.) — a substantial widening of the implementation surface beyond what cloudflare/moq-rs offers.
  • The post-draft-18 issue triage pattern is now codified: WG editors are routing issues to (a) dependent specs (LOC-new-draft for #1632, MSF for #1631→#162), (b) future cycles (PR #1476 rework), or (c) closed-as-keep (#607). This is a notably different stance from pre-draft-18 where many issues bounced back-and-forth without resolution. The May 14 actions establish that draft-18 baseline is the contract; design churn is downstream work — exactly the editorial discipline needed to keep momentum toward IETF WGLC. The Issue #1631→#162 transfer also formalises a clean separation of concerns: MOQT defines the transport, MSF defines the media model, with codec/encoding decisions belonging to MSF. This is a foundational architectural clarification that the May 11 6-PR sprint did not encode.
  • The moq-dev/moq external-contributor onboarding is accelerating, not slowing: SteveMcFarlin’s first-merge (PR #1402) makes 3 new external contributors in 5 days (metapox May 10, SteveMcFarlin May 14, ksletmoe-aws May 14). Previously the repo was almost exclusively Luke-authored; the May timeline shows Luke transitioning into a maintainer/review-and-merge role rather than sole contributor. Luke’s “gotta queue up the Claude prompt” (May 11) is now visibly playing out: external work batched and merged via Claude-orchestrated review sessions, with explicit Co-authored-by: Claude trailers on the version-bump PR #1407. Pattern: Luke is industrialising the maintenance pipeline.
  • The google/quiche moqt 8-commit-in-3-days push is the most credible draft-18-implementation signal in the ecosystem: martinduke’s structural refactor (separate files, explicit interfaces, private/public boundary cleanup) immediately after the draft-18 cut, with vasilvv joining the moqt subdir for the first time, reads as a coordinated 2-engineer push. The fact that this is happening at Google (where draft-ietf-moq-transport co-authors Martin Duke and Victor Vasiliev both work) means the implementation-spec feedback loop is tight. Carry-forward: by London (June 9–10), quiche-moqt may be the only matrix participant tracking draft-18 wire format — but it will be the editorially-authoritative one. This raises a strategic question: should the interop-runner matrix be re-scoped to draft-18-only for the June interim, or maintain draft-16 compatibility for the longer-tail implementations?

2026-05-14 — first post-draft-18 cross-spec collision flagged; MSF 3-PR cleanup

TL;DR:

  • First post-draft-18 cross-spec coordination failure surfaces within 14 hours of publication: yuanchao-chris (new contributor, his 2nd issue in 2 days) opens twin cross-spec issues May 14 03:18 / 03:24 UTC — moq-transport Issue #1632 “MOQ-18: Properties Type collision with LOC-02” + moq-wg/loc Issue #20 “LOC-02: Properties Type collision” — concrete diff table: MOQ-18 §15.8-2 assigns TIMESTAMP=0x06, TIMESCALE=0x08, VIDEO_FRAME_MARKING=0x0A, AUDIO_LEVEL=0x0C, VIDEO_CONFIG=0x0D; LOC-02 commit history says TIMESTAMP=0x02 (collides with Audio Level), VIDEO_FRAME_MARKING=0x04, AUDIO_LEVEL=0x06, etc. — i.e., MOQ-18 publication did not adopt the LOC IANA-registry-provisional values from PR #1624 (April 30, Issue #1550). This is the first ever cross-spec collision flagged by a non-author / non-WG-regular (yuanchao-chris has no prior repo history before May 13). The headline carry-forward: WG editorial coordination between moq-transport and LOC is not yet operationalwg-editorial-coordination is now its own work item for the 2026-06-09-london-interim. moq-transport Issue #1631 (Track-level codec switching, yuanchao-chris May 13) afrind 05:11 UTC + yuanchao-chris 09:23 UTC exchange — afrind sketches new-group-with-codec-property-on-Object-0; yuanchao-chris confirms works in stream mode but in datagram mode needs property-stamped frames + REQUEST_UPDATE-based “ACK” semantics (subscriber tells publisher to stop adding the property once received). Mailing list — Yu You (Nokia) May 13 opens “[Moq] User case or question to Joining Fetch” — 4 same-day replies (Will Law / Zafer Gurel / Mo Zanaty / Will Law), first Nokia-driven on-list contribution since Yu You’s May 8 3GPP SA4 announcement. moq-wg/msf — 3 PRs MERGED May 13 10:30–18:43 UTC: PR #158 (Suhas, “Replace delta update fields with ordered operations array”, +72/−81, closes Issue #145); PR #133 (Suhas, “Add SCTE-35 support and CEA-608/708 accessibility fields”, +184/0, the long-debated event-timeline PR, closes Issue #95) — finally landed after the May 8 split-into-3-PRs debate; PR #161 (Will Law, “Update overlapping presentation time requirement”, +6/−1, closes Issue #155). Largest MSF main-advancement single-day in 2026. Will Law’s recharter thread shows no May 13/14 follow-up — Day +2 silence after the May 12 IAB cross-WG burst.
  • Implementations: google/quiche moqt — 4 commits May 13 continuing the post-draft-18 push: vasilvv first moqt-dir commit (“Use new MOQT control message parser API directly”); martinduke “Fix ASAN/MSAN errors in MoqtSessionTest and MoqtTrackTest”; martinduke “Fix an issue from AI review of cl/914368728” (first explicit “AI review” commit message in any wiki-tracked MoQ repo — Google’s internal AI code review flagging cl/914368728); asedeno “Fix OSS QUICHE build”. Combined with May 12’s 2 commits = 6 commits in 2 days, the most concentrated quiche-moqt activity since March 2026 — clearly tracking draft-17/18 implementation. moqtail/moqtail — 3 PRs MERGED May 13 08:41–08:44 UTC (PR #195 docs, PR #192 release, PR #196 ci-release) post-PR-193 release pipeline run. moq-dev/moq Day +5 main-quiet (last Luke commit May 9 22:30 UTC) — 5 external-contributor PRs still open (skirsten 1401, SteveMcFarlin #1402, Qizot #1398). cloudflare/moq-rs Day +31 main-quiet; PR #167 untouched Day +4. Eyevinn/moqlivemock LOCMAF PR #79 + warp-player PR #120 both updated May 13 09:30 UTC — Day +7 LOCMAF iteration. video-dev/moq-js / birneee/quiche_moq / Eyevinn/moqtransport / Quicr/cat-token all quiet.
  • Interop: No new run since May 13 00:41:38 UTC reading of 19 / 71 / 14. The daily ~00:40 UTC run for May 14 has not yet fired (or has not yet published to the GitHub Pages site) as of this update. Carry-forward: the May 14 reading is the first that could reflect a google/quiche-moqt rebuild post-May 13 quiche-moqt commits — if the quiche-moq image is auto-rebuilt nightly, the 6 quiche-moqt commits May 12–13 (including PUBLISH_OK removal) should land in the next run; expect potentially larger movement than the +1/−1 daily variance.

Operation: Update Sources:

  • Slack: #moq3 thread replies on alan-frindell’s May 13 01:15 CEST “It’s heeeeere” draft-18 announcement: Paul Gregoire (mondain) May 13 05:59 CEST: “Is moqx already supporting it? I suppose I should already know the answer…” — first non-OpenMOQ-author public probe of OpenMOQ moqx draft-18 status; afrind 06:48 CEST: “lol no.” + “Goal is interop in London” — explicit confirmation that no implementation is draft-18-ready and the June 9–10 London interop is the formal interop target. No other #moq activity in the May 13 06:00 UTC → May 14 ~09:00 UTC window. #moq-interop-runner, #moq-rs, #moq-js, #libquicr all unchanged.
  • GitHub moq-wg repos:
    • moq-transportIssue #1632 OPENED May 14 03:24 UTC (yuanchao-chris, “MOQ-18: Properties Type collision with LOC-02”) with concrete reference to MOQ-18 §15.8-2 and the LOC commit-history-implied values; Issue #1631 (Track-level codec switching) — afrind May 13 05:11 UTC reply + yuanchao-chris May 13 09:23 UTC reply (in-band codec switching answer for datagram mode involves property-stamped frames + REQUEST_UPDATE ACK semantics); Issue #1614 (kixelated Joining FETCH + SUBSCRIBE prioritization) pinged May 13 00:09 UTC; Issue #1459 (martinduke Request ID validation broken in draft-16) CLOSED May 12 23:51 UTC; PR #1476 (afrind delivery timeouts) updated May 13 00:07 UTC.
    • moq-wg/locIssue #20 OPENED May 14 03:18 UTC (yuanchao-chris, “LOC-02: Properties Type collision”) — the LOC-side twin to moq-transport #1632. Issue #19 (Luke Curley May 5 LOC Private Properties) still open.
    • moq-wg/msf3 PRs MERGED May 13 (PR #158 10:30 UTC, PR #161 18:43 UTC, PR #133 18:42 UTC); 3 Issues CLOSED May 13 (#145 10:30 UTC ordering of delta updates, #95 18:42 UTC close captions, #155 18:43 UTC sequence-aligned-groups). PR #157 (Suhas, Group numbering restarts) updated May 13 21:45 UTC. PR #156 (Suhas, Object-Stream mapping) updated May 13 16:27 UTC. PR #159 (Suhas, catalog compression via Track Properties — renamed) updated May 14 05:42 UTC. Issue #153 (vasilvv, initTrack does not work”) updated May 14 05:46 UTC.
    • moq-wg/secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • google/quiche (quiche/quic/moqt): 4 new commits May 13 in addition to May 12’s 2 (Day +1 from the wiki’s May 13 entry): vasilvv “Use new MOQT control message parser API directly”, asedeno “Fix OSS QUICHE build”, martinduke “Fix ASAN/MSAN errors in MoqtSessionTest and MoqtTrackTest”, martinduke “Fix an issue from AI review of cl/914368728”. First “AI review”-cited commit message in wiki-tracked repos. 6 commits in 48 hours.
    • moqtail/moqtail: 3 PRs MERGED May 13 08:41–08:44 UTC — PR #195 docs (+64/0), PR #192 release-bot, PR #196 [ci] release. Bumps moqtail post-PR-193 (upstream FETCH on cache miss) into a release.
    • moq-dev/moq: Day +5 main-quiet (no commits since May 9 22:30 UTC). PR #1400 last updated May 12 06:43 UTC; PR #1402 last updated May 12 03:48 UTC. No Luke review activity visible.
    • cloudflare/moq-rs: Day +31 main-quiet (last commit Apr 13). PR #167 (suhas-nandakumar filter-framework) untouched since May 10 05:03 UTC — Day +4.
    • Eyevinn/moqlivemock: LOCMAF PR #79 updated May 13 09:30 UTC (still open Day +7).
    • Eyevinn/warp-player: LOCMAF PR #120 updated May 13 09:30 UTC. Dependabot PRs #121–127 all still open Day +3.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
    • Quicr/cat-token: No new commits since May 10 22:30 UTC rename.
  • Mailing list: 1 new thread May 13Yu You (Nokia) “[Moq] User case or question to Joining Fetch” with 4 same-day replies (Will Law / Zafer Gurel / Mo Zanaty / Will Law). Luke Curley May 13 reply on the “[Moq] Re: Consensus call on Object filters” thread (Magnus’s May 12 consensus call). No May 14 messages as of this update. Will Law recharter thread / martinduke “On other use cases” thread / afrind Joining FETCH Survey thread all show no May 13/14 follow-up.
  • IETF Datatracker: No new draft revisions since draft-18 (2026-05-12). WG state: transport-18, msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +8, still no on-list announcement), englishm-cdn-provisioning-00, englishm-relay-dos-00.
  • Interop runner: 19 / 71 / 14 at 2026-05-13 00:41:38 UTC — no May 14 run yet as of this update (the ~00:40 UTC daily run may not have published).
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +14 since #1, longest gap to date.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 13 06:00 UTC → May 14 09:00 UTC” section covering: yuanchao-chris cross-spec collision twin issues #1632 / loc #20, Issue #1631 in-band codec switching afrind/yuanchao-chris exchange, MSF 3-PR cleanup sequence, Yu You Nokia Joining FETCH thread, google/quiche moqt 4-commit draft-18 push including first “AI review”-cited commit, moqtail release-pipeline burst, moq-dev/moq Day +5 quiet, interop runner no-new-run status), drafts/moq-transport.md (Active Issues section: add Issue #1632 collision entry as headline post-draft-18 issue), drafts/moq-loc.md (Active Issues: add Issue #20 entry; last_updated bump), index.md (last_updated bump), log.md.

Key findings:

  • Cross-spec coordination is the first concrete carry-forward from draft-18: The yuanchao-chris twin-issue filing (moq-transport #1632 + loc #20, same author within 6 minutes, 03:18–03:24 UTC May 14) is the first bilaterally-flagged cross-spec collision in the wiki record — Issue #1550 (April 16, also by yuanchao-chris on the LOC side) was a one-sided LOC-repo filing. Two observations: (a) yuanchao-chris has emerged in 5 days as the most active new cross-spec reviewer, having filed 4 issues across moq-transport + LOC since May 5 (no prior repo history); (b) PR #1624 (afrind, April 30, “provisional IANA registry for LOC properties”) was supposed to resolve the Issue #1550 collision by establishing a registry — but draft-18 §15.8-2 went out using a different assignment (TIMESTAMP=0x06, AUDIO_LEVEL=0x0C) than what the LOC commit history records (TIMESTAMP=0x02, AUDIO_LEVEL=0x06). So either (i) PR #1624’s registry was not synced into the editor’s draft-18 cut, or (ii) the registry is correct and LOC-02’s source needs updating but the LOC editors have not yet done so. Either way, a published WG document (draft-18) and a published WG document (loc-02) now diverge on assigned IANA-style codepoints — the kind of failure mode an editorial-coordination workflow exists to prevent.
  • The in-band codec switching design discussion is the first MoQ design issue actively progressed in the post-draft-18 window: afrind’s “new group with codec property on Object 0” sketch + yuanchao-chris’s “datagram mode needs property-stamped + REQUEST_UPDATE ACK” extension is the first iteration of an actual new design problem since the May 11 6-PR sprint. The fact that a brand-new contributor is now driving design conversations day +1 of a new draft is a healthy sign for the WG’s external engagement — but also exposes that the H265→H264 / AV1→H264 use case (well-understood from WebRTC PT-change semantics) was not addressed in the draft-18 cut.
  • google/quiche moqt is now the dominant draft-18 implementation push (post-draft-18 day count: 6 commits / 2 days vs all-other-tracked-repos: 1 docs + 1 release PR at moqtail, 0 main commits at moq-dev/moq + cloudflare/moq-rs). The vasilvv first moqt-dir commit indicates the moqt subdir is no longer martinduke-only and is becoming a coordinated 2-engineer project. The “AI review” commit message (martinduke May 13 16:38 UTC) is the first explicit Google-AI-code-review-tooling reference in a wiki-tracked MoQ commit — pattern: AI-tooling is now visibly in the loop in MoQ implementation at Google (alongside Luke Curley’s Claude orchestration at moq-dev/moq, Giovanni Marzot’s “over zealous claude” at OpenMOQ).
  • MSF cleared its largest single-day delta of 2026: 3 PRs merged + 3 issues closed (May 13 10:30–18:43 UTC), with PR #133 (SCTE-35 + CEA-608/708) being the headline — open since Jan 30, with the wiki tracking 4 prior debate cycles (Apr 22 ContentProtection-and-Captions split, May 8 split-into-3-PRs from avelad, May 8 event-timeline restructuring from wilaw/gwendalsimon, May 11 Suhas’s “I do have initial drafts on…”). The fact that the PR landed as-is rather than being split into 3 event-timeline drafts indicates the split-out-event-timeline-drafts editorial direction (wilaw May 8) is future work, not blocking-merge work — MSF is consolidating before the London interim, not expanding.
  • Interop runner’s May 14 run is materially-important: The May 13 reading (19/71/14, post-draft-18-day floor-breach) is the only matrix snapshot since google/quiche moqt’s PUBLISH_OK-removal commit landed pre-cutoff. Whether the May 14 run shows continued matrix degradation (because quiche-moq is now ahead of moq-transport-spec the matrix tests against) or recovery (because the spec-side is catching up) will be the first signal of how the spec-vs-implementation gap is resolving post-draft-18. Watch carry-forward: the May 15 update should be the first reading with a full nightly post-quiche-moqt-rebuild propagation.

2026-05-13 — draft-18 published; Will Law proposes recharter to non-media

TL;DR:

  • draft-ietf-moq-transport-18.txt PUBLISHED 2026-05-12 — the long-anticipated cut. Phase 2 of the editorial work (after May 11 6-PR sprint) added 3 more merges to main May 12 20:02–23:07 UTC: PR #1625 (suhasHere, Security Considerations — extends magnus-westerlund’s long-parked PR #1455, closes Issue #783); PR #1605 (vasilvv, Split DELIVERY_TIMEOUT into OBJECT_DELIVERY_TIMEOUT + new SUBGROUP_DELIVERY_TIMEOUT, +114/−76, closes Issue #667 “DELIVERY_TIMEOUT is unimplementable”); PR #1630 (alan-frindell, Draft 18 release notes, body literally “Behold”). Datatracker upload ~23:30 UTC; alan-frindell Slack #moq May 13 01:15 CEST: “It’s heeeeere”. Draft-18 abstract rewritten to emphasise content-agnostic framing: “Despite its name referencing media, the specification emphasizes that MOQT remains content-agnostic and applicable across various use cases.” Mailing list — Will Law (Akamai) May 12 “[Moq] Proposal to recharter to include non-media use cases.” — proposes expanding the WG charter (chartered August 2022 for media) to cover AI inference / ML interfaces, sensor & telemetry, UAV C2, financial market data, AR/VR I/O; emphasises no MOQT protocol changes required. Same-day responses from Ted Hardie, Christian Huitema, Richard Barnes, martin-duke, Mo Zanaty — first time non-MoQ-regular IETF voices (Hardie / Huitema / Barnes) engage on a MoQ recharter thread on-list. The spec-side draft-18 abstract reframing and the WG-charter-side recharter proposal landed within 24 hours of each other. magnus-westerlund opens 2 filter consensus calls on-list May 12: (1) “Consensus call on Object filters” — PR #1518 (mzanaty), two-week consensus period through May 26, optional support with implementer capacity advertisement; (2) “Support for Track Filters and Top-N” — meeting poll was 7-7 (numerous-support vs equal-opposition), splits the question into “track filters without top-N” vs “track filters with top-N” and proposes the filters-as-extension-point pattern (first explicit chair framing). Magnus also posted “[Moq] Meeting cut short” clarifying yesterday’s Town Hall ended abruptly on Meetecho mis-configuration (afrind May 11 20:01 CEST had hinted with “Brutally killed by meetecho!”). moq-transport Issue #1631 OPENED May 13 02:23 UTC by yuanchao-chris (0 prior issues, new contributor) — “Track-level codec switching semantics” — first day-+1 post-draft-18 issue, raises in-band codec migration (H265→H264, AV1→H264 mid-session like RTP/WebRTC PT change inside same SSRC); afrind May 13 05:11 UTC answers with new-group-with-codec-property-on-Object-0 sketch. moq-wg/msf — Will Law adds Suhas Nandakumar to authors list (PR #160 merged May 12 12:30 UTC) — first MSF author-list change of 2026, formalises Suhas’s de-facto co-editor role; Will in MSF-issue-grooming mode 10:59–12:32 UTC closes Issues 111 in 4 minutes. moqtail PR #194 merged May 12 20:00 UTC (zafergurel, remove track-forwarding-preference dead code, +27/−52) bringing moqtail in line with draft-16 wire format; moqtail PR #195 docs update opened 21:17 UTC.
  • Implementations: google/quiche moqt — 2 commits May 12 by martin-duke after 7-day quiet, both explicitly preparing for draft-17/18: “Remove PUBLISH_OK message” (14:23 UTC, commit message: “Part of implementing draft-17/18 PUBLISH in draft-16”) and “Allow fragmented MOQT object payloads” (17:52 UTC, MoqtLiveRelayQueue robustness). First implementation activity directly cited as draft-17/18 work in any wiki-tracked repo, same day as draft-18 publication. moqtail PR #194 merged (above); PR #195 opened. moq-dev/moq Day +3 main-quiet — no Luke commits since May 9 22:30 UTC; the 5 external-contributor PRs from May 10–11 (SteveMcFarlin #1402, skirsten 1401, Qizot #1398) all open, with PR #1400 / #1402 updated May 12 morning UTC but no Luke review activity visible (consistent with afrind’s May 11 22:56 UTC “gotta queue up the Claude prompt” / Luke “in Claude orchestration mode” reading). cloudflare/moq-rs Day +30 main-quiet, PR #167 (Suhas filter-framework, +12163/−2197) untouched since May 10 — Suhas’s May 12 effort went into MSF + moq-transport Security Considerations, not the moq-rs filter framework, even as Magnus opened the Object Filters consensus call that PR #167 implements. Eyevinn/moqlivemock PR #80 merged May 12 08:02 UTC (fix(cenc): chain IV across CMAF fragments to avoid reuse); LOCMAF PR #79 unchanged Day +6; warp-player LOCMAF PR #120 + dependabot burst (PRs #121–127) all still open. video-dev/moq-js / birneee/quiche_moq / Eyevinn/moqtransport all quiet.
  • Interop: 19 / 71 / 14 at 2026-05-13 00:41:38 UTC — −1 pass / +1 fail vs May 12 (20/71/14). Breaches the post-PR-#145 floor of 20 on the downside; first 19-reading since May 8. Walking arc: 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20 → 21 → 20 → 19. Most plausible driver: google/quiche moqt commits May 12 14:23 / 17:52 UTC (both pre-cutoff) — the PUBLISH_OK removal is a wire-format-affecting change, so any quiche-moq pair that had been passing on the PUBLISH_OK code point could be expected to flip; moqtail PR #194 (track-forwarding-preference removal) merged 20:00 UTC also pre-cutoff. moq-transport PRs #1625 / #1605 / #1630 (Phase 2 of draft-18 cut) are spec-only and don’t drive image rebuilds. At draft-18 publication day with no implementation tracking draft-18 yet, the spec-vs-implementation gap is at its widest; matrix at 20±1 for 9 of 10 May-weekday readings since May 5.

Operation: Update Sources:

  • Slack: #moq2 new posts in the May 12 01:00 UTC → May 13 06:00 UTC window, both from alan-frindell: May 12 00:53 UTC qmux-01 framing for draft-18 interop; May 13 01:15 CEST draft-18 announcement (“It’s heeeeere”). #moq-rs, #moq-js, #libquicr, #moq-interop-runner all unchanged.
  • GitHub moq-wg repos:
    • moq-transportPhase 2 of draft-18 cut: PR #1625 MERGED May 12 20:02:18 UTC (suhasHere Security Considerations, closes Issue #783); PR #1605 MERGED May 12 23:04:53 UTC (vasilvv OBJECT_DELIVERY_TIMEOUT + SUBGROUP_DELIVERY_TIMEOUT split, closes Issue #667); PR #1630 MERGED May 12 23:07:53 UTC (alan-frindell “Draft 18 release notes”). Issue #1631 OPENED May 13 02:23 UTC by yuanchao-chris (new contributor) — “Track-level codec switching semantics”; afrind May 13 05:11 UTC reply. PR #1628 (afrind QMux moqt-18 ALPN) updated May 12 20:40 UTC, still open. PR #1476 (afrind, Feb 9 Delivery timeouts are both Track and Object Properties) updated May 13 00:07 UTC — needs rework after PR #1605 landed. PR #1607 / PR #1604 updated May 12 20:03 UTC. PR #1627 (ianswett SUBSCRIBE with Joining Fetch) still open Day +10.
    • moq-wg/msfPR #160 OPENED + MERGED May 12 12:30 UTC (will-law) — “Add Suhas Nandakumar to the authors list” (first MSF author-list change of 2026). Issues #93 / #100 / #111 CLOSED May 12 10:59–12:32 UTC (Will Law issue-grooming). Suhas’s May 11 4-PR burst (PRs #156–159) all still open with review iteration May 13 00:57–04:17 UTC.
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet.
  • GitHub implementations:
    • google/quiche (quiche/quic/moqt): 2 commits May 12 by martin-duke — first activity in 7 days; both explicitly draft-17/18 prep work.
    • moqtail/moqtail: PR #194 MERGED May 12 20:00 UTC (zafergurel, remove track-forwarding-preference, +27/−52). PR #195 OPENED May 12 21:17 UTC (zafergurel, docs +64/0). Issue #148 CLOSED May 11 22:39 UTC.
    • moq-dev/moq: Day +3 main-quiet (no commits since May 9 22:30 UTC). 5 external-contributor PRs from May 10–11 all open; skirsten PR #1400 updated May 12 06:43 UTC, SteveMcFarlin PR #1402 updated May 12 03:48 UTC. No Luke review activity visible May 12.
    • cloudflare/moq-rs: Day +30 main-quiet. PR #167 untouched since May 10 05:03 UTC.
    • Eyevinn/moqlivemock: PR #80 MERGED May 12 08:02 UTC (fix(cenc): chain IV across CMAF fragments). LOCMAF PR #79 unchanged Day +6.
    • Eyevinn/warp-player: LOCMAF PR #120 + dependabot PRs #121–127 all still open.
    • video-dev/moq-js: No new commits since Feb 17.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 17.
  • Mailing list: 6+ threads in the May 12 window: [Moq] I-D Action: draft-ietf-moq-transport-18.txt (internet-drafts); [Moq] Proposal to recharter to include non-media use cases (Will Law) + responses from Ted Hardie / Christian Huitema / Richard Barnes / Martin Duke / Mo Zanaty; [Moq] Consensus call on Object filters (magnus-westerlund, + responses from Law / Luke Curley); [Moq] Support for Track Filters and Top-N (magnus-westerlund, + Mo Zanaty); [Moq] Meeting cut short (magnus-westerlund); [Moq] Re: On other use cases (Mo Zanaty, follow-up to martinduke’s May 11/12 thread).
  • IETF Datatracker: draft-ietf-moq-transport-18 PUBLISHED 2026-05-12. WG state: transport-18 (NEW), msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04, subscribe-rewind-02, qlog-moq-events-06, nmsf-01, gregoire-moq-msfts-00 (May 6, Day +7, still no on-list announcement), englishm-cdn-provisioning-00, englishm-relay-dos-00.
  • Interop runner: 19 / 71 / 14 at 2026-05-13 00:41:38 UTC. −1 pass / +1 fail vs May 12 (20/71/14) — breaches post-PR-#145 floor of 20.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +13 since #1.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (new “May 12 01:00 UTC → May 13 06:00 UTC” section covering: draft-18 publication + Phase-2 PR sequence, draft-18 abstract reframing, Will Law recharter proposal + IAB/cross-WG response list, Magnus Westerlund Object Filters + Track Filters/Top-N consensus calls, Magnus “Meeting cut short” note on Meetecho mis-config, Issue #1631 codec-switching first day-+1 issue, MSF Will Law issue-grooming + PR #160 authors-list change, google/quiche moqt 2-commit draft-17/18 prep, moqtail PR #194 track-forwarding-preference removal, moq-dev/moq Day +3 quiet observation, Eyevinn moqlivemock PR #80 CENC IV chaining fix, interop floor-breach), drafts/moq-transport.md (draft_version bumped to 18, abstract rewritten with draft-18 framing, new Recent Changes (draft-18) section with two-phase cut breakdown), interop/interop-runner.md (May 13 row added + floor-breach narrative + draft-18-publication-day framing), index.md (moq-transport row bumped to draft-18 with 2026-05-12 publication date, last_updated bump), log.md.

Key findings:

  • draft-ietf-moq-transport-18 lands: After 47 days of Apr/May editorial work (the longest sustained 2026 sprint), draft-17 → draft-18 is now the published canonical reference. The two-phase cut sequence — Phase 1 May 11 21:32–22:02 UTC (6 PRs in 30 min: #1544 + #1615 + #1617 + #1618 + #1621 + #1629) and Phase 2 May 12 20:02–23:07 UTC (3 PRs: #1625 + #1605 + #1630) — is the largest moq-transport main-advancement sequence in the wiki record. PR #1615 Remove Required Request ID is the single headline change implementing the Apr 27 interim consensus; the entire May 11–12 editorial sequence was structured around it. The cut went uncelebrated on #moq beyond afrind’s 5-word announcement (“It’s heeeeere”) — consistent with the WG’s pattern of decompressing all communication into bursts (5-day silence May 6–10, then May 11 burst, then May 12 Town Hall + draft cut, then May 13 quiet).
  • The protocol-vs-charter reframing arrives in a single 24-hour window: The draft-18 abstract was rewritten to emphasise “Despite its name referencing media, the specification emphasizes that MOQT remains content-agnostic and applicable across various use cases”and Will Law’s recharter proposal arrives within hours, formalising the WG charter side of the same reframing. The mailing-list responses from Ted Hardie / Christian Huitema / Richard Barnes (none of whom are MoQ-regulars; all are senior IETF/IAB figures) are the first cross-WG engagement on MoQ scope on the wiki record — implying the proposal has carried beyond the MoQ WG’s usual perimeter. Carry-forward: a formal WG recharter process is now plausible 2026-Q3, with the June 9–10 London interim/interop as the natural venue for a charter-proposal discussion alongside the Joining FETCH technical agenda.
  • Magnus Westerlund frames filters as extension-points: Magnus’s parallel Object Filters consensus call (May 12 → May 26 deadline) + Track Filters / Top-N question, with explicit “potential to divide filters into core functionality vs optional extensions” framing, is the first WG-chair-level articulation of the filters-as-extension-point pattern for moq-transport. This is the natural draft-18 → draft-19 trajectory: the May 12 cut establishes a stable -18 baseline; the filters debate then proceeds as extension-point work without blocking the core spec. The Object Filters consensus call references PR #1518 (mzanaty) which has been open since Mar 2 and saw first activity in weeks May 11 — now the spec-side anchor of the consensus question.
  • google/quiche moqt is the first implementation moving on draft-18 (same day as the cut): martin-duke’s May 12 commits “Remove PUBLISH_OK message” (with commit message “Part of implementing draft-17/18 PUBLISH in draft-16”) + “Allow fragmented MOQT object payloads” land the same day as draft-18 publication, making quiche-moq the first wiki-tracked implementation with explicit draft-17/18 prep on main. Other implementations (moq-dev/moq, moqtail, moq-rs) are all still tracking draft-16 wire formats. The implication for the June 9–10 London interop is significant: if quiche-moq is the only draft-18-tracking implementation by June 9, it will need to interop against draft-16/14 implementations using draft-16/14 wire formats. The QMux moqt-18-over-TLS+TCP path (afrind PR #1628) is a parallel second interop pillar for draft-18 — “For anyone interested in draft-18 interop over QMux, we intend to use qmux-01 framing” implies a draft-18-aligned QMux interop subset alongside the QUIC main path.
  • Interop matrix breaches the floor on draft-18 day: 19/72/14 is the first sub-20 reading since May 8 — and lands exactly on the day draft-18 publishes, with no draft-18 implementation in the matrix yet. The most likely flip driver is the google/quiche moqt PUBLISH_OK removal landing pre-cutoff (wire-format-affecting). The matrix has now been at 20±1 for 9 of 10 May-weekday readings since May 5 — completely insensitive to the parallel spec activity. Carry-forward: the post-draft-18 interop matrix needs structural attention — without a draft-18 build for at least one matrix participant, the matrix cannot demonstrate draft-18 stability between now and the June 9–10 London interop.

2026-05-12 — draft-18 sprint lands; OpenMOQ fork incident surfaces

TL;DR:

  • moq-transport — 6 PRs MERGED in 30 minutes (May 11 21:32–22:02 UTC), the largest single-sitting editorial sprint of 2026: PR #1544 “Improve Startup Latency and 0-RTT” (fixes #420, #8…); PR #1615 “Remove Required Request ID” (fixes #1603, materializes Apr 27 interim consensus — the headline draft-18 commit); PR #1617 GOAWAY on request streams; PR #1618 FIRST_OBJECT bit 0x40 in SUBGROUP_HEADER; PR #1621 forbid relays from lying about LARGEST_OBJECT; PR #1629 scope-definition (fixes #1432). alan-frindell queued the entire Apr 14–30 stack overnight on May 10/11 so it could land in one sequence ahead of the May 12 Town Hall (Dan Rayburn, 13:00 ET / 17:00 UTC). Issue #1603 CLOSED 21:41:24 UTC, with afrind’s “This is now tracked in #1519” forwarding the “dependency structure between requests” pieces to vasilvv’s PR #1519. ian-swett PR #1627 “SUBSCRIBE with Joining Fetch” (+44/−139 net-shrink, fixes 1612) is the alternative Joining-FETCH approach being surveyed below. alan-frindell PR #1628 (moqt-18 ALPN over QMux+TLS+TCP) updated May 11 22:43 UTC; Slack #moq confirmation 22:53 UTC (00:53 CEST May 12): “For anyone interested in draft-18 interop over QMux, we intend to use qmux-01 framing.”first explicit qmux-01 framing target announced. Mailing list reactivates after 5-day silence: afrind opens “[Moq] Joining FETCH Survey” (Slack 18:02 UTC, list 18:15 UTC) with 2 multi-question polls (4.1/4.2/4.3 on past-data flow control + Y/N + MAY/MUST/MUST NOT; plus “willing to delay WGLC and RFC by ___ months for a more preferable Joining FETCH outcome: 0/1/2/3/4+”). martinduke opens “[Moq] London Agenda requests” same day, “[Moq] On other use cases” May 12; London interim/interop is June 9–10 (alan-frindell “interop is 6/9-10”). moq-wg/msf — suhas-nandakumar opens 4 new PRs in 1 hour evening May 11: PR #156 (object→stream mapping implementation-specific, addresses #148), PR #157 (group numbering for restarts, addresses #147), PR #158 (replace delta updates with ordered operations array, addresses #145), PR #159 (catalog compression via track name suffix); plus luke-curley May 11 23:23 UTC on Issue #139 proposes nested-object catalog structure ("container": {"kind": "cmaf", "initData": "..."}). MSF spec-trimming continues — Suhas in spec-curator mode. #moq-interop-runner channel (Mike English created May 9 18:09 CEST) hosted OpenMOQ fork incident in its first 48h: Mike English May 9 18:20 CEST notices openmoq/moq-interop-runner fork with cloned issues; giovanni-marzot admits “over zealous claude perhaps”, makes fork private May 10 17:37 CEST; lucas-pardue May 10 19:57 CEST escalates: “this is not a good look for OpenMoQ. Taking IETF work, forming pay to participate consortia, and then coopting running code from others. Thats not how we develop standards”; will-law May 10 21:02 CEST 5-paragraph response: “This is not an official OpenMOQ action … we need an improved system for validating code provenance before it is merged into any repo managed by openmoq. I’ll ask the dev team to institute that next week.” First public OpenMOQ governance incident on record; Claude-as-community-friction-vector (Giovanni: “claude overstepped”). Episode closed (fork private, issues retracted); carry-forward is OpenMOQ code-provenance review next week.
  • Implementations: moqtail/moqtail PR #193 [4/n] MERGED May 11 22:37:32 UTC after Day +5 stuck — completes the [N/n] upstream-FETCH series (#186/#187/#188 May 6 + #193 May 11). moq-dev/moq Day +2 main-quiet but 5 external-contributor PRs open in 24h: first contribution from SteveMcFarlin PR #1402 (moq-gst CAPS+EOS fixes, 0 prior commits — second new external contributor after metapox May 10); skirsten PRs 1401 (video pacing rAF + PromiseReactions leak + MultiBackend close); Qizot PR #1398 (track activity signals +197/−6). Open-PR queue now ~12, deepest in repo history. cloudflare/moq-rs Day +29 main-quiet; PR #167 (Suhas filter-framework, +12163/−2197) untouched since May 10 05:03 UTC — Suhas’s May 11 evening went to MSF PRs #156–159 instead. Quicr/cat-rs renamed → Quicr/cat-token (May 10 22:30 UTC commit confirms Suhas’s May 6 announcement). Eyevinn/warp-player saw dependabot burst (PRs #121–127). google/quiche moqt / video-dev/moq-js / birneee/quiche_moq / Eyevinn/moqlivemock+moqtransport all quiet.
  • Interop: 20 / 71 / 14 at 2026-05-12 00:37:28 UTC — −1 pass / +1 fail vs May 11 (21/70/14), back to the post-PR-#145 floor. The May 11 +1 lift was per-run variance, not a real recovery. Walking arc: 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20 → 21 → 20. Matrix has now been at 20±1 for 8 of 9 May-weekday readings since May 5. No implementation activity in window: moqtail PR #193 merged 22:37:32 UTC (after run cutoff); moq-transport 6 PRs spec-only; moq-dev/moq main Day +2 quiet. Most plausible flip-back driver is a borderline moq-dev-rs / moq-dev-js pair that passed May 11 by variance. Pre-Town-Hall reading: matrix opens the May 12 Town Hall at the floor, having shown no real movement in 8 days.

Operation: Update Sources:

  • Slack: #moq8 new posts in the May 11 12:00 UTC → May 12 01:00 UTC window: afrind 18:01 “Brutally killed by meetecho!”, afrind 18:02 (4.1/4.2/4.3 survey questions), afrind 18:03 (delay-WGLC survey question), afrind 18:15 “Now available as list email”, suhas-nandakumar 18:24 “wonder a survey monkey link”, afrind 18:29 “Eh, email will let people express their nuanced feelings”, afrind 22:53 “For anyone interested in draft-18 interop over QMux, we intend to use qmux-01 framing”, luke-curley 22:55 “when is draft-18?”, afrind 22:56 “tomorrow”, luke-curley 22:56 “gotta queue up the Claude prompt”, afrind 22:56 “interop is 6/9-10”. #moq-interop-runner channel (C0B2KQLJGN7): 22 messages in May 9 18:09 CEST → May 12 00:32 CEST window, including the OpenMOQ fork incident (Mike English May 9 18:20 CEST → Will Law May 10 21:02 CEST). #moq-rs, #moq-js, #libquicr all unchanged.
  • GitHub moq-wg repos:
    • moq-transport (the BIG editorial day):
      • 6 PRs MERGED May 11 21:32–22:02 UTC: #1544 (afrind, Improve Startup Latency and 0-RTT, fixes #420 #8…), #1615 (afrind, Remove Required Request ID, fixes #1603 — Apr 27 interim consensus), #1617 (afrind, GOAWAY on request streams, fixes #1481), #1618 (afrind, FIRST_OBJECT bit 0x40), #1621 (afrind, forbid relays from lying about LARGEST_OBJECT, fixes #1386), #1629 (vasilvv, Clarify definition of scope, fixes #1432).
      • Issue #1603 CLOSED May 11 21:41:24 UTC by afrind with “This is now tracked in #1519”.
      • PR #1628 (afrind QMux moqt-18 ALPN) updated May 11 22:43 UTC, now mergeable_state=clean.
      • PR #1627 OPENED May 3, updated May 11 20:42 UTC — ian-swett “SUBSCRIBE with Joining Fetch” (+44/−139, fixes #1039 #1313 #1602 #1612) — competing Joining-FETCH-as-SUBSCRIBE-mode approach.
      • PR #1623 (Ian Swett, Remove Request ID from GOAWAY, reverts #1559) updated May 11 22:19 UTC — now redundant on most lines after #1617 merged.
      • PR #1625 (suhasHere, Magnus Security Considerations rebase) updated May 11 23:03 UTC, rebased on top of new main.
      • PR #1605 (vasilvv, DELIVERY_TIMEOUT split into OBJECT_DELIVERY_TIMEOUT + SUBGROUP_DELIVERY_TIMEOUT) updated May 11 23:56 UTC.
      • PR #1591 (Ian Swett, RFC: Add flow control for Subscriptions, MAX_SUB_STREAMS + MAX_SUB_BYTES + SUBGROUP_RESET, fixes #869) updated May 11 22:18 UTC.
      • PR #1518 (mzanaty, Filters with reduced scope, no location or group filter, +265/−16) updated May 11 16:27 UTC — first activity in weeks.
      • PR #1519 (vasilvv, Improve design of requests blocking on other requests) updated May 11 21:40 UTC — now designated tracker for swap-tracks / ABR / pause-unpause use cases formerly motivating required-request-id.
    • moq-wg/msf (Suhas burst May 11 22:21–23:08 UTC):
      • PR #156 OPENED May 11 22:21 UTC (Suhas, Make MOQT Object to Stream mapping implementation-specific, +7/−3, addresses #148, mergeable_state=clean).
      • PR #157 OPENED May 11 22:29 UTC (Suhas, Clarify Group numbering requirements for restarts (#147), +10/−13).
      • PR #158 OPENED May 11 22:41 UTC (Suhas, Replace delta update fields with ordered operations array, +63/−56, addresses #145).
      • PR #159 OPENED May 11 23:08 UTC (Suhas, Add catalog compression support via track name suffix, +40/−1).
      • Issue #139 (luke-curley May 11 23:23 UTC): proposes nested-object catalog structure.
      • Issue #129 (yuyou): Suhas May 11 21:50 UTC explains BiDi-stream semantics for PUBLISH+FORWARD=1.
      • Issue #111, #102: minor activity.
      • PR #133 (Suhas SCTE-35 + CEA-608/708) updated May 11 21:41 UTC.
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet on main.
  • GitHub implementations:
    • moq-dev/moq (Day +2 main-quiet, 5 external-contributor PRs in 24h):
      • PR #1402 OPENED May 12 00:04 UTC by SteveMcFarlin (+33/−22, 0 prior commits — first contribution) — “moq-gst: Fix MoqSink CAPS handling and per-pad EOS aggregation”.
      • PR #1401 OPENED May 11 20:41 UTC by skirsten (+243/−139) — “Refactor/video pacing rAF”.
      • PR #1400 OPENED May 11 20:21 UTC by skirsten (+17/−12) — “fix: stop leaking PromiseReactions in consumer loops”.
      • PR #1399 OPENED May 11 20:18 UTC by skirsten (+3/−0) — “fix(watch): close MultiBackend’s sync and sources”.
      • PR #1398 OPENED May 11 07:21 UTC by Qizot (+197/−6) — “Expose track name and used/unused activity signals”.
      • PR #1396 (metapox SUBSCRIBE_UPDATE JS API) updated May 11 08:33 UTC.
      • Open-PR queue now ~12, deepest in repo history.
    • cloudflare/moq-rs: PR #167 (suhas-nandakumar filter-support framework, +12163/−2197) untouched since May 10 05:03 UTC. Day +29 main-quiet.
    • moqtail/moqtail: PR #193 MERGED May 11 22:37:32 UTC (final stats +303/−158) — completes the [N/n] upstream-FETCH-on-cache-miss series. PR #192 (release-bot) opened May 11 22:38:27 UTC.
    • Eyevinn/warp-player: dependabot burst — PRs #121–127 opened May 11 23:33–23:35 UTC (eslint 9→10, typescript 5.9→6.0, commitlint 20.5→21, deps groups). LOCMAF PR #120 unchanged Day +5.
    • Eyevinn/moqlivemock: LOCMAF PR #79 unchanged Day +5.
    • Quicr/cat-token (renamed from cat-rs): commit May 10 22:30 UTC “Update repository URL to Quicr/cat-token, bump to 0.1.2” confirms Suhas’s May 6 Slack announcement.
    • video-dev/moq-js: No new commits since Feb 17.
    • google/quiche (quiche/quic/moqt): No new commits since May 5 01:02 UTC — Day +7 quiet.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 16.
  • Mailing list (reactivates after 5-day silence): 4 new threads / 4 new responses in May 11–12 window: afrind “[Moq] Joining FETCH Survey” (May 11); martinduke “[Moq] London Agenda requests” (May 11); Mo Zanaty + martinduke “[Moq] Re: Joining FETCH Survey” (May 11); martinduke “[Moq] On other use cases” (May 12); Mo Zanaty “[Moq] Re: On other use cases” (May 12).
  • IETF Datatracker: No new draft revisions in the May 7–12 window. WG state unchanged: transport-17, msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9), nmsf-01 (Apr 7), qlog-moq-events-06 (Mar 16), gregoire-moq-msfts-00 (May 6, Day +6, still no on-list announcement). Draft -18 candidate text is now effectively assembled on main after the 6-PR merge sprint; awaits editor cut for datatracker submission.
  • Interop runner: 20 / 71 / 14 at 2026-05-12 00:37:28 UTC. −1 pass / +1 fail vs May 11 (21/70/14) — back to the post-PR-#145 floor. Walking arc: 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20 → 21 → 20. The May 11 +1 lift was per-run variance, not a real recovery. Matrix at 20±1 for 8 of 9 May-weekday readings since May 5.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +12 since #1, longest gap to date.
  • tobbee/moq-llm-wiki: No new open issues. (3 closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (new “May 11 12:00 UTC → May 12 01:00 UTC” section covering: 6-PR moq-transport editorial sprint, afrind Joining FETCH Survey + qmux-01 framing announcement, mailing-list 5-day-silence break, MSF Suhas 4-PR burst, moq-dev/moq 5-external-PR wave + SteveMcFarlin first contribution, moqtail PR #193 merge completing upstream-FETCH series, OpenMOQ fork incident in #moq-interop-runner channel, Quicr/cat-rs → cat-token rename, dependabot warp-player burst, interop floor-return), interop-runner.md (May 12 row + flip-back-to-floor narrative + 8-of-9-readings-at-floor framing), index.md (last_updated bump), log.md.

Key findings:

  • The largest single-sitting editorial sprint in moq-transport 2026 lands May 11 21:32–22:02 UTC: 6 PRs in 30 minutes, headlined by PR #1615 “Remove Required Request ID” which materializes the Apr 27 interim consensus on draft -18. alan-frindell’s strategy of queueing the entire Apr 14–30 PR stack on May 10/11 for a single-sitting merge is now visible — he’s been clearly waiting for the day before the May 12 Town Hall. Draft -18 candidate text is effectively assembled on main after this sprint; the next datatracker submission is the long-anticipated -18. The Slack confirmation (afrind 22:53 UTC: “For anyone interested in draft-18 interop over QMux, we intend to use qmux-01 framing”) makes qmux-01 the official target framing for draft-18 interop testing — first concrete commitment after May 11’s PR #1628 floated the idea.
  • The mailing-list 5-day-silence-then-coordinated-burst pattern continues to be the WG’s pre-public-event signature: silence May 6–10 (only May 10 weekly digest), then May 11 sees afrind’s Joining FETCH Survey (Slack + list), martinduke’s London Agenda + use-cases threads, with Mo Zanaty responses. The survey is the first WG-wide poll specifically on Joining FETCH timing-vs-design tradeoffs (“willing to delay WGLC and RFC by ___ months: 0/1/2/3/4+”), positioning the May 12 Town Hall not as a presentation but as a forcing function for WG-wide consensus on whether to delay. ian-swett’s PR #1627 “SUBSCRIBE with Joining Fetch” (+44/−139) is the net-shrink alternative being implicitly surveyed — fold Joining FETCH into SUBSCRIBE modes rather than allow it to be sent on the SUBSCRIBE stream.
  • OpenMOQ governance episode is the first public friction between OpenMOQ and Cloudflare: lucas-pardue’s May 10 19:57 CEST characterization (“Taking IETF work, forming pay to participate consortia, and then coopting running code from others”) is the deepest public critique of OpenMOQ’s IETF-relation posture on the wiki record. The carry-forward is structural: will-law commits to OpenMOQ code-provenance review before merge (“ask the dev team to institute that next week” — i.e. week of May 12–18). The #moq-interop-runner channel is now a high-visibility venue, not a quiet operational channel — to be probed every update. First MoQ-ecosystem LLM-driven community-incident on record: Giovanni cites “over zealous claude perhaps” / “claude overstepped” — fork-then-clone-issues was an LLM-assisted action that went further than intended. This is a noteworthy precedent for an ecosystem where LLM-tooling is now widespread (Luke May 11: “gotta queue up the Claude prompt”).
  • moq-dev/moq’s external-contributor wave continues: SteveMcFarlin May 12 00:04 UTC is the second consecutive new external contributor after metapox May 10. Combined with skirsten (4 prior) + Qizot (3 prior) recurring, the May 10–11 24h window has 5 external-contributor PRs vs zero Luke commits to main. Luke is in Town Hall prep / Claude-orchestration mode, not merge mode. The repo is transitioning from solo-Luke to community-contributed in real time.
  • Interop matrix’s pre-Town-Hall reading is at the floor: 20/71/14 for 8 of 9 May-weekday readings since May 5. The May 11 +1 was variance, not recovery. The May 12 Town Hall opens with the matrix unable to demonstrate post-Apr-27-interim improvement to the public audience — the spec is moving faster than the implementations are catching up.

2026-05-11 — moq-transport pre-Town-Hall burst surfaces draft-18 / QMux fallback

TL;DR:

  • moq-wg/moq-transport pre-Town-Hall burst — the day before the May 12 MOQ Town Hall (Dan Rayburn / will-law), the tracker — quiet for days during the May 6–10 mailing-list silence — receives 7 PRs and 3 issue threads of activity in the May 11 00:27–05:53 UTC window from alan-frindell and Victor Vasilyev (vasilvv). First public mention of moqt-18 ALPN lands in afrind’s new PR #1628 “Add QMux framing for moqt-18 over TLS+TCP” (+4/−3, OPENED May 11 01:29 UTC, fixes Issue #1626 sharmafb May 1 “Version negotiation for QMUX”) — first spec-side commitment to MoQ-over-TLS+TCP via QMux v1, signaling the post-Apr-27-interim editorial work is being cut into draft -18 candidate text on GitHub. lucas-pardue May 11 01:57 UTC comment cites QMux draft §8.1-2 ALPN naming rules — first Pardue moq-transport comment in months, Cloudflare’s QMux co-author tagging in for ALPN review. Other newly-opened: PR #1629 (vasilvv +7/−0, “Clarify definition of scope”, fixes michalhosna’s Mar 14 session-reuse Issue #1432). Older PRs rebased/refreshed for Town Hall: #1605 (vasilvv, DELIVERY_TIMEOUT split into OBJECT_DELIVERY_TIMEOUT + new SUBGROUP_DELIVERY_TIMEOUT, +112/−77); #1617 (afrind, GOAWAY on request streams to migrate individual requests, +85/−73); #1618 (afrind, FIRST_OBJECT bit 0x40 in SUBGROUP_HEADER, type-format expands 0b00X1XXXX → 0b0XX1XXXX, +22/−10); #1621 (afrind, forbid relays from lying about LARGEST_OBJECT, +8/−1); #1625 (suhasHere, rebased magnus-westerlund Security Considerations PR #1455, +132/−1). Issue threads: #1603 (martinduke required-request-id, 12 comments) — afrind May 11 01:33 UTC quotes Cullen’s mailing-list swap-tracks use case, bringing Apr 27 interim consensus (“remove required-request-id from draft 18 and fix Joining Fetch”) into direct collision with Cullen’s pushback; #1614 (kixelated JOINING-FETCH+SUBSCRIBE prioritization) Day +14 ping; #1582 (vasilvv REQUEST_ERROR caching) Day +42 ping.
  • moq-wg/msf Issue #8 (Content protection) — vasilvv May 11 02:54 UTC: “This should probably be moved to CMSF repo, since that’s where the text about content protection was moved.” Pushes back on suhasHere’s May 9 “can we close this?”, extending the broader May spec-restructuring pattern (event-timeline + content-protection text migrating out of MSF into format-specific WG documents).
  • Implementations: First full day of all-around main-side quiet in May. moq-dev/moq Day +1 quiet since Luke’s May 9 22:30 UTC PR #1393 merge; 7-PR open queue unchanged at +4362/−307 (#1374 Day +7, #1388 Day +4, #1389 Day +4 no further LOC growth, 1397 Day +1). cloudflare/moq-rs Day +28 main-quiet, PR #167 (suhas-nandakumar +12163/−2197) untouched since May 10 05:03 UTC. moqtail PR #193 [4/n] (sharmafb +248/−132) Day +5 stuck mergeable_state=blocked, the longest non-Luke PR stall in moqtail draft-16 era. video-dev/moq-js, birneee/quiche_moq, google/quiche moqt, Eyevinn/moqlivemock+warp-player (LOCMAF PRs Day +4), Eyevinn/moqtransport, Quicr/cat-rs all quiet. Slack #moq: Mike English (Cloudflare) May 9 18:23 CEST creates new #moq-interop-runner channel (C0B2KQLJGN7) — first split of interop-runner discussion off the main channel. Luke May 9 20:13 CEST posts HN WebRTC flame-war link (news.ycombinator.com/item?id=48051951), pre-Town-Hall public-discourse positioning.
  • Interop: 21 / 70 / 14 at 2026-05-11 00:42:00 UTC — +1 pass / −1 fail vs May 10 (20/71/14). Walking arc: 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20 → 21. Marginal lift above the post-PR-#145 floor, still −4 below the May 2 high (25). Most plausible cause: first run since the May 9 evening moq-dev/moq merges (PRs #1338 / #1392 / #1393), so moq-dev-rs / moq-dev-js docker images rebuilt against moq-lite v0.16.0 for the first time. PR #1393’s cache-eviction 30s → 5s tightening is the most likely single-pair flip-driver. moqtail PR #193 and moq-rs PR #167 still open — no moqtail-relay or moq-rs-draft-16 rebuild involved.

Operation: Update Sources:

  • Slack: #moq2 new posts in the May 9 11:00 UTC → May 11 12:00 UTC window: (a) Mike English May 9 18:23 CEST (16:23 UTC) created #moq-interop-runner channel (C0B2KQLJGN7); (b) luke-curley May 9 20:13 CEST posted HN WebRTC flame-war link. #moq-rs, #moq-js, #libquicr all unchanged.
  • GitHub moq-wg repos:
    • moq-transport (pre-Town-Hall burst):
      • PR #1628 OPENED May 11 01:29 UTC (alan-frindell, +4/−3, mergeable_state=blocked) — “Add QMux framing for moqt-18 over TLS+TCP”. First public moqt-18 ALPN reference; fixes Issue #1626 (sharmafb May 1). lucas-pardue May 11 01:57 UTC cites QMux §8.1-2 ALPN naming rules — implies afrind’s moqt-18 ALPN needs to be QMux-suffixed.
      • PR #1629 OPENED May 11 05:47 UTC (vasilvv, +7/−0, mergeable_state=clean) — “Clarify definition of scope”. Fixes Issue #1432 (michalhosna Mar 14 session-reuse rules).
      • PR #1605 (vasilvv, Apr 14, +112/−77) — “Split DELIVERY_TIMEOUT into two types of timeout” — updated May 11 04:28 UTC with “Addressed the comments.” Splits into OBJECT_DELIVERY_TIMEOUT + new SUBGROUP_DELIVERY_TIMEOUT. Fixes Issue #667.
      • PR #1617 (afrind, Apr 28, +85/−73) — “Allow GOAWAY on request streams to migrate individual requests” — updated May 11 05:20 UTC. Per-request GOAWAY with zero-length URI causes endpoint to re-issue request on the specified URI session. Fixes Issue #1481.
      • PR #1618 (afrind, Apr 28, +22/−10) — “Add FIRST_OBJECT bit to SUBGROUP_HEADER type” — updated May 11 04:39 UTC. Bit 6 (0x40) signals subgroup contains the first object published by the original publisher; type byte expands 0b00X1XXXX → 0b0XX1XXXX (still 1-byte varint).
      • PR #1621 (afrind, Apr 28, +8/−1) — “Forbid relays from lying about LARGEST_OBJECT” — updated May 11 00:27 UTC. Fixes Issue #1386.
      • PR #1625 (suhasHere, Apr 30, +132/−1) — “Rebased and Update Security Considerations PR from Magnus Westerlund” — updated May 11 01:09 UTC. Rebases magnus-westerlund’s PR #1455.
      • Issue #1603 (martinduke, “What is the use case for required-request-id”, 12 comments) — afrind May 11 01:33 UTC quotes Cullen’s mailing list post: “1) Swap tracks …“. Brings the Apr 27 interim consensus (Ian Swett “remove required-request-id from draft 18”) into collision with Cullen’s swap-tracks use case.
      • Issue #1614 (kixelated JOINING FETCH + SUBSCRIBE prioritization) — Day +14 ping at May 11 03:09 UTC.
      • Issue #1582 (vasilvv REQUEST_ERROR caching) — Day +42 ping at May 11 03:09 UTC.
    • moq-wg/msf — Issue #8 (Content protection): vasilvv May 11 02:54 UTC: “This should probably be moved to CMSF repo, since that’s where the text about content protection was moved.” Follows suhasHere’s May 9 “can we close this?“. Editorial direction: migrate to moq-cmsf rather than close.
    • moq-wg/loc, secure-objects, cmsf, catalog-format, privacy-pass: All quiet on main.
  • GitHub implementations (first all-around quiet day in May):
    • moq-dev/moq: No new commits since luke-curley’s May 9 22:30 UTC PR #1393 merge. Day +1 of post-burst quiet. Open-PR queue unchanged at 7 PRs / +4362/−307 (#1374 Day +7, #1388 Day +4, #1389 Day +4 no further LOC growth, 1397 Day +1).
    • cloudflare/moq-rs: PR #167 (suhas-nandakumar filter-support framework, +12163/−2197) untouched since May 10 05:03 UTC. Day +28 main-quiet.
    • moqtail/moqtail: PR #193 [4/n] (sharmafb upstream FETCH on cache miss, +248/−132, mergeable_state=blocked) untouched since May 9 20:29 UTC — Day +5 stuck.
    • Eyevinn/moqlivemock — PR #79 LOCMAF unchanged Day +4.
    • Eyevinn/warp-player — PR #120 LOCMAF unchanged Day +4.
    • video-dev/moq-js: No new commits since Feb 17.
    • google/quiche (quiche/quic/moqt): No new commits since May 5 01:02 UTC — Day +6 quiet post-Vasiliev parser-rewrite.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 16.
    • Quicr/cat-rs / catapult: No new commits since May 7 04:07 UTC.
  • Mailing list:
    • No new human-authored messages since yu-you’s May 8 11:52 CEST 3GPP SA4 #136 PoC announcement. Only the auto-generated May 10 weekly digest in the May 6–11 window — 5-day human-silence stretch, longest in May. cullen-jennings (request-sync), magnus-westerlund (framing), suhas-nandakumar, will-law, ian-swett, alan-frindell all silent on-list. All May 11 activity is on GitHub instead. May 12 MOQ Town Hall is the awaited unlock event.
  • IETF Datatracker: No new draft revisions in the May 7–11 window. WG state unchanged: transport-17, msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual drafts: lite-04 (Apr 9), nmsf-01 (Apr 7), qlog-moq-events-06 (Mar 16), gregoire-moq-msfts-00 (May 6, Day +5, still no on-list announcement). PR #1628’s moqt-18 ALPN reference suggests draft -18 candidate text is being prepared on GitHub ahead of the datatracker submission.
  • Interop runner: 21 pass / 70 fail / 14 skip (105 tests, 2026-05-11 00:42:00 UTC report). +1 pass / −1 fail vs May 10 (20/71/14). Walking arc: 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20 → 21. First marginal lift above the post-PR-#145 floor since the May 5 −4 regression. Most plausible cause: first run since the May 9 evening moq-dev/moq merges (PR #1338 release-train moq-lite v0.16.0, PR #1392 moq-ffi, PR #1393 cache-eviction 30s → 5s), so moq-dev-rs / moq-dev-js docker images rebuilt against v0.16.0 for the first time. PR #1393’s cache-eviction tightening is the most likely single-pair flip-driver. moqtail PR #193 still open Day +5 so no moqtail-relay rebuild; moq-rs PR #167 still open so no moq-rs-draft-16 rebuild.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30). Day +11 since #1.
  • tobbee/moq-llm-wiki: No new open issues. (3 closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (new “May 10 12:00 UTC → May 11 12:00 UTC” section: moq-transport pre-Town-Hall burst + draft-18 + QMux signal, msf #8 vasilvv push-to-CMSF, all-impl-quiet day, Mike-English new interop-runner channel, Luke HN flame post, 5-day mailing-list silence), interop-runner.md (May 11 row + +1-pass narrative explaining v0.16.0 builder-rebuild theory), index.md (last_updated bump), log.md.

Key findings:

  • moqt-18 ALPN appears in spec text for the first time (alan-frindell PR #1628 May 11 01:29 UTC, “Add QMux framing for moqt-18 over TLS+TCP”). This is the first GitHub-side confirmation that draft -18 editorial work is in progress — up to now the active draft is transport-17 (Apr 9 / IETF Datatracker). The PR explicitly couples the draft -18 ALPN to QMux v1 framing over TLS+TCP — the first spec-side commitment to MoQ-over-TLS+TCP fallback via QMux. lucas-pardue (Cloudflare, QMux co-author) responds within 28 minutes citing QMux ALPN naming rules — Cloudflare tagging in for review of how the moqt-18 token must be QMux-suffixed. The Apr 27 interim consensus on draft -18 work is now being materialized as concrete editorial PRs.
  • moq-transport tracker activity is decoupled from the mailing list: 7 PRs + 3 issues touched on May 11 vs zero human-authored mailing-list messages May 6–10 (only the May 10 weekly digest). The WG has shifted from on-list debate to GitHub-issue + interim-meeting + PR-cleanup cadence. The pre-Town-Hall burst pattern (afrind/vasilvv rebasing Apr 14–30 PRs on the eve of a public meeting) is now the third occurrence of this in 2026 (mirrors the pre-Apr-27-interim and pre-NAB editorial sprints). The May 12 Town Hall hosted by Dan Rayburn / will-law is public-facing — distinct from the WG-internal interims — so afrind/vasilvv are prepping the editorial story for an outside-IETF audience.
  • msf Issue #8 vasilvv migration push extends the May spec-restructuring direction: after May 8 wilaw/gwendalsimon/suhasHere consensus to spin out event-timeline formats from MSF, May 11 vasilvv pushes content-protection text out to CMSF. The MSF spec is being trimmed back to a packaging spec rather than the omnibus document it was on opening, with: (a) event-timeline formats (SCTE-35, WebVTT, IMSC1) → 3 separate individual drafts; (b) content protection / encryption → CMSF; (c) MSFTS (MPEG-2 TS packaging) → already a separate draft (gregoire-moq-msfts-00). Suhas’s role is shifting from MSF author to spec curator splitting the document.
  • First all-around main-quiet day across all tracked impl repos in May: moq-dev/moq quiet Day +1, moq-rs Day +28, moqtail Day +5, all Eyevinn repos Day +4 on the LOCMAF branch, google/quiche moqt Day +6, video-dev/moq-js Day +84, birneee Day +59. The 7-PR moq-dev/moq backlog is large but idle — Luke is in May 12 prep mode rather than May 11 merge mode. The matrix is in a 7-day plateau (May 4–11 all within 20±1 except May 8’s 19) — the May 5 PR #145 regression remains structurally uncorrected.
  • The +1 pass interop lift is the first post-PR-#145 floor break: walking arc since May 5 was 20 → 20 → 20 → 20 → 19 → 20 → 20 → 21. The May 9 evening Luke merges (release-train shipping moq-lite v0.16.0 + cache-eviction 30s → 5s) are the first wire-impacting moq-dev change since the PR #145 regression; the May 11 +1 is consistent with a single moq-dev-rs / moq-dev-js rebuild flip. Whether this is a real recovery or per-run variance will be visible in the May 12 report. The May 5 −4 regression is still mostly uncorrected (matrix at 21, May-2 high was 25).

2026-05-10 — moq-dev/moq breaks quiet: v0.16.0 ships, 2 fix PRs merge, 4 new PRs opened including first external May contributor

TL;DR:

  • moq-dev/moq breaks 2-day quiet on main — after no commits since May 7 18:17 UTC, luke-curley resumes May 9 19:27 UTC with 3 merges (PR #1338 release-train shipping moq-lite v0.16.0 +251/−128; PR #1392 moq-ffi uniffi-bindgen fix +3/−3; PR #1393 track group cache eviction 30s → 5s single-constant tuning) and 2 new feature PRs OPENED the same evening: PR #1394 Auto-detect catalog format from broadcast name extension (+197/−86) and PR #1395 moq-cli: rename --output to --format, --name to --broadcast, add accept subcommand (+162/−42, CLI ergonomics breaking change). PR #1389 stats aggregation grew +215 LOC overnight (+1168/−39 → +1383/−50). After the post-revert auto-bump, moq-bot opens PR #1391 for the v0.16.1 release train. Open-PR count now 7 (was 3 on May 8); combined diff +4362/−307, deepest backlog in repo history.
  • First non-Luke contributor to moq-dev/moq in May: metapox (taku) opens 2 PRs at May 10 10:58 UTC closing out the May 5–6 SUBSCRIBE_UPDATE backlog: PR #1396 feat(lite): implement SUBSCRIBE_UPDATE API for JS subscriber and publisher (+30/−4, addresses Issue #1363) and PR #1397 fix(lite): update in-flight group priorities on SUBSCRIBE_UPDATE (+176/−63, addresses Issue #1370). New external contributor — no prior commits in repo. Same morning, Issue #1390 opened by Dan Rossi“Production ES Watch library won’t connect to the dev relay” — first production-deployment friction issue in months, signal that @moq/watch is in real use against non-Cloudflare relays.
  • Implementations: moq-dev/moq day-4 burst (3 merges + 4 new PRs + 1 metapox external contributor) is the only material activity. cloudflare/moq-rs PR #167 (suhas-nandakumar filter-support framework, +12163/−2197, opened May 6) updated May 10 05:03 UTC — Suhas’s largest moq-rs PR still active; moq-rs main Day +27 quiet. moqtail PR #193 still open Day +4 with mergeable_state=blocked; moqtail main quiet since May 6. moq-wg/secure-objects Issue #8 — luke-curley May 9 19:08 UTC comment, first non-author engagement in many days. Eyevinn LOCMAF PRs 120 unchanged Day +3. video-dev/moq-js, birneee/quiche_moq, Eyevinn/moqtransport, google/quiche moqt, Quicr/cat-rs all quiet. moq-wg/msf PR #133 quiet for first time since opening (no comments since May 8 18:30 UTC).
  • Interop: 20/71/14 at 2026-05-10 00:40:03 UTC — flat 2nd consecutive day (gh-pages commit f70964a 01:04:20 UTC). Walking arc since the Apr 17 floor: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20. The May 5 −4 regression that returned the matrix to the post-PR-#145 floor remains uncorrected; May 8’s brief dip to 19 was statistical noise. moq-dev/moq’s May 9 evening merges (PRs #1338, #1392, #1393) all landed after the May 10 00:40 UTC run, so any moq-lite v0.16.0 builder rebuild effect would only show in the May 11 report. moqtail PR #193 still open so no moqtail-relay rebuild has touched the matrix.

Operation: Update Sources:

  • Slack: #moqno new posts since yu you’s May 8 11:52 CEST 3GPP SA4 #136 PoC announcement. #moq-rs, #moq-js, #libquicr all unchanged.
  • GitHub moq-wg repos:
    • moq-transport: No new commits, no new issues, no new PRs in the May 9 06:00 UTC → May 10 12:00 UTC window. Issue #1622 untouched since May 8. PR #1617 (afrind GOAWAY-on-request-streams) state unchanged.
    • moq-wg/msf — PR #133 (Suhas SCTE-35 + CEA-608/708): No new comments since May 8 18:30 UTC suhasHere reply. First quiet day on the thread since avelad’s May 7 split-into-3-PRs comment opened the review escalation.
    • moq-wg/secure-objects: Issue #8 “Content protection and encryption”luke-curley new comment May 9 19:08 UTC (first non-author engagement on the thread in many days). No main commits.
    • moq-wg/loc, cmsf, catalog-format, privacy-pass: All quiet on main.
  • GitHub implementations:
    • moq-dev/moq (day-4 burst after 2-day quiet, all luke-curley except where noted):
      • PR #1338 MERGED May 9 19:27 UTC (+251/−128) — release-train auto-bump shipping moq-lite v0.16.0. Replaced same instant by PR #1391 OPENED May 9 19:29 UTC (moq-bot, release-train for v0.16.1).
      • PR #1392 MERGED May 9 21:41 UTC (+3/−3) — moq-ffi: fix uniffi-bindgen invocation, bump 0.2.9.
      • PR #1393 MERGED May 9 22:30 UTC (+1/−1) — Reduce track group cache eviction timeout from 30s to 5s. Single-constant tuning, Claude Code co-author. Reduces idle memory at the cost of more cache rebuilds for slow re-subscribers.
      • PR #1394 OPENED May 9 22:04 UTC (+197/−86) — Auto-detect catalog format from broadcast name extension. Catalog format inferred from path-extension trailer rather than passed as separate flag; aligns with PR #1341 moq-mux backport (May 7).
      • PR #1395 OPENED May 9 22:36 UTC (+162/−42) — moq-cli: rename --output to --format, --name to --broadcast, add accept subcommand. CLI ergonomics breaking change; new accept subcommand mirrors publish/subscribe for inbound subscriptions.
      • PR #1396 OPENED May 10 10:58 UTC by metapox (taku, +30/−4) — feat(lite): implement SUBSCRIBE_UPDATE API for JS subscriber and publisher. Closes Issue #1363 (May 5).
      • PR #1397 OPENED May 10 10:58 UTC by metapox (+176/−63) — fix(lite): update in-flight group priorities on SUBSCRIBE_UPDATE. Closes Issue #1370 (May 6).
      • Issue #1390 OPENED May 10 11:07 UTC by Dan Rossi“Production ES Watch library won’t connect to the dev relay”. First production-deployment friction issue from a non-developer outside contributor in months.
      • PR #1389 stats aggregation grew +215 LOC overnight: was +1168/−39 May 8, now +1383/−50 (May 10 00:12 UTC update). Day +3 still open and actively iterated.
      • PRs #1374 / #1388 / #1389 / #1394 / #1395 / #1396 / #1397: 7 open feature PRs total. Combined +4362/−307 — deepest backlog in repo history.
    • cloudflare/moq-rs: PR #167 (suhas-nandakumar filter-support framework, opened May 6, +12163/−2197) updated May 10 05:03 UTC — review iteration; diff size unchanged (still the largest open PR in moq-rs). main Day +27 quiet (no commits since Apr 13).
    • moqtail/moqtail: PR #193 [4/n] (sharmafb upstream FETCH on cache miss, +248/−132) updated May 9 20:29 UTC, still open Day +4, mergeable_state=blocked. main quiet since May 6.
    • Eyevinn/moqlivemock — PR #79 LOCMAF unchanged since May 8 21:03 UTC. Day +3 still open.
    • Eyevinn/warp-player — PR #120 LOCMAF unchanged since May 8 09:42 UTC. Day +3 still open.
    • video-dev/moq-js: No new commits since Feb 17.
    • google/quiche (quiche/quic/moqt): No new commits since May 5 01:02 UTC — Day +5 quiet post-Vasiliev parser-rewrite.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 16.
    • Quicr/cat-rs: No new commits since May 7 04:07 UTC.
  • Mailing list:
    • May 10 — “[Moq] Weekly github digest (Media Over QUIC Activity Summary)” (Repository Activity Summary Bot, auto-generated weekly digest). Same cadence as the May 3 digest. Zero human-authored messages May 9–10.
    • Cullen request-sync thread (May 1) / Magnus Westerlund framing thread (May 4) / suhas-nandakumar / will-law all silent. Four-day silence stretch in human discussion (last human message: yu you May 8 about 3GPP SA4 #136 PoC).
  • IETF Datatracker: No new draft revisions. WG state unchanged: transport-17, msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00. Notable individual drafts: lite-04 (Apr 9), nmsf-01 (Apr 7), qlog-moq-events-06 (Mar 16), gregoire-moq-msfts-00 (May 6, Day +4, still no on-list announcement).
  • Interop runner: 20 pass / 71 fail / 14 skip (105 tests, 2026-05-10 00:40:03 UTC report, gh-pages commit f70964a 01:04:20 UTC). Flat vs May 9 (20/71/14). Walking arc: 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20 → 20. moq-dev/moq’s May 9 evening merges all landed after the May 10 00:40 UTC interop run, so any moq-lite v0.16.0 builder-rebuild effect would only show in the May 11 report. moqtail PR #193 still open (Day +4) so no moqtail-relay rebuild has touched the matrix. The post-PR-#145 floor at 20 pass continues.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +10 since #1.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues remain closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (new “May 9 06:00 UTC → May 10 12:00 UTC” section: moq-dev/moq day-4 burst, metapox first external May contributor, Dan Rossi production friction issue, moq-rs PR #167 filter-framework still active, secure-objects #8 kixelated comment, moqtail PR #193 still blocked, mailing-list 4-day human-silence stretch), interop-runner.md (May 10 row + flat-day narrative), index.md (last_updated bump), log.md.

Key findings:

  • moq-dev/moq’s May 9 day-4 burst is the heaviest open-PR queue in repo history at +4362/−307 across 7 unmerged PRs: 3 large feature PRs (#1374 Lite05 DATAGRAMS +1615/−7 Day +6, #1388 LOC frame format +799/−17 Day +3, #1389 stats aggregation +1383/−50 Day +3 — grew +215 LOC overnight) + 2 same-evening Luke ergonomics PRs (#1394 Auto-detect catalog format +197/−86, #1395 moq-cli renames +162/−42) + 2 metapox SUBSCRIBE_UPDATE PRs (#1396 +30/−4, #1397 +176/−63). The PR #1389 +215 LOC growth in 24h signals active design iteration (not just review-comment polishing) and confirms Luke is reformulating the closed PR #853 (fcancela observability +1261/−38) into a more ambitious in-band stats-broadcasts design rather than a fix-and-merge.
  • First non-Luke contributor to moq-dev/moq in May (metapox / taku): 2 PRs opened May 10 10:58 UTC, both closing pre-existing Luke-filed issues (#1363 SUBSCRIBE_UPDATE TS impl, #1370 in-flight group priorities). This is the first time in May an external contributor has both opened and immediately delivered on Luke’s tracked issue backlog — the typical pattern is Luke himself opens-and-closes issues in the same session. metapox has no prior commits in moq-dev/moq history, so this is a new entry.
  • Dan Rossi’s Issue #1390 is the first production-deployment friction signal in months: “Production ES Watch library won’t connect to the dev relay” — implies (a) at least one real production deployment of @moq/watch exists outside relay.cloudflare.com, (b) the deployment is failing against the relay.moq.dev dev relay rather than a Cloudflare-hosted one. Pattern signal: moq-dev/moq’s @moq/watch has at least one real downstream production user attempting to use the dev infrastructure. (Dan Rossi’s prior issue history in moq-dev/moq is unclear; if first-time, this expands the active production-user surface from 0 to 1.)
  • Suhas’s PR #167 still active in moq-rs (May 10 05:03 UTC update) confirms the May-5/6 cross-repo pattern: Suhas pushes filter+observability infrastructure into moq-rs, while Luke reformulates the same domain inside moq-dev/moq (#1389 stats aggregation, +215 LOC overnight). Same observability problem, two parallel impls, two different codebases — and PR #853 in moq-dev/moq (fcancela’s combined-domain attempt) was closed. The two-track pattern persists: moq-rs gets the comprehensive framework, moq-dev/moq gets Luke’s smaller in-house design.
  • moqtail PR #193 still blocked Day +4: with mergeable_state=blocked and no maintainer review since the May 9 metadata ping, the upstream-FETCH-on-cache-miss feature [4/n] is now the longest-stalled non-Luke PR in the moqtail draft-16 era. main quiet since May 6 means no rebuilds; the May 5 −4 interop regression remains structurally uncorrected pending this merge.
  • Mailing-list 4-day human-silence stretch is the longest in May: only the auto-generated May 10 weekly digest in the May 6–10 window. Cullen / Magnus Westerlund / Suhas / Will Law / Ian Swett / afrind all silent on-list. Implication: the May 5 Knowing the start of a Subgroup exchange and the May 8 Cullen pushback are the last unanswered substantive content; the WG is functionally on hiatus on the list awaiting either the May 12 MOQ Town Hall (Will Law / Dan Rayburn) or the next IETF interim.

2026-05-09 — Eyevinn LOCMAF packaging proposal; MSF event-timeline split debate

TL;DR:

  • NEW packaging proposal: LOCMAF (Low Overhead CMAF) — Hugo Björs (Eyevinn) opens twin PRs moqlivemock #79 (+2697/−83, 17 files) and warp-player #120 (+2211/−188, 14 files) on May 7, both updated through May 8. Experimental LOC-inspired/compatible CMAF compression designed for his master’s thesis: avoids re-transmitting fixed/derivable CMAF header fields by encoding only non-derivable fields as MoQT/LOC-style key-value pairs aggregated under one LOCMAF property, defining 3 properties (init segment, full header, delta header). Optimizations: tfdt.baseMediaDecodeTime calculated from prior baseMediaDecodeTime + sample durations (omitted from wire); single-sample fragments omit sample size (equals payload length). First standalone container-format proposal from Eyevinn since the v0.8.0 LOC pipeline release — bridges the LOC/CMAF gap from the impl side rather than the spec side (luke-curley’s March compressed-mp4 attempt was the spec-side counterpart). Targets DRM testing on the warp-player branch.
  • moq-wg/msf PR #133 escalates to spec-restructuring debatewill-law May 8 11:29 UTC notices an asymmetry in event-timeline format coverage (SCTE-35 carriage spec’d inline but WebVTT/IMSC1 punted to external drafts) and asks whether all event-timeline formats should move to separate drafts. gwendalsimon agrees (May 8 13:09 UTC); suhasHere replies May 8 18:30 UTC “I do have initial drafts on…” — implies pre-staged draft text already exists for the SCTE-35 / WebVTT / IMSC1 separation. Editorial direction shift: PR #133 is now likely to be split into 3+ separate individual drafts (CEA-608/708 stays in MSF; SCTE-35, WebVTT, IMSC1 each spin out as separate Event-Timeline drafts), extending the MSF Packaging Extensions umbrella (see moq-msfts precedent) into Event-Timeline Extensions. avelad’s May 7 split-into-3-PRs comment was the trigger; today’s exchange formalizes the spec-restructuring.
  • Implementations: Eyevinn LOCMAF PRs the only material activity. moq-dev/moq main quiet on May 8 (last commit May 7 18:17 UTC); 3 large PRs still open Day +4 (#1374 Lite05 DATAGRAMS, #1388 LOC frame format, #1389 stats aggregation) — the +3877/−303 Claude-Code-generated diff backlog is now the largest open-PR queue in moq-dev/moq history. moqtail completely quiet for the 2nd consecutive day; PR #193 untouched 48h+. cloudflare/moq-rs Day +26 quiet; google/quiche moqt Day +4 quiet; video-dev/moq-js, birneee/quiche_moq, Eyevinn/moqtransport all quiet. moq-wg/msf only repo with activity (PR #133 comment thread); moq-transport / loc / secure-objects / cmsf / catalog-format / privacy-pass all quiet on main.
  • Interop: 20/71/14 at 2026-05-09 00:39 UTC — +1 pass / −1 fail vs May 8’s 19/72/14. Partial recovery back to the May 4–7 floor, not below it. Walking arc since the Apr 17 floor: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20. moqtail PR #193 still open (Day +3 since open) so the bounce isn’t a moqtail-relay rebuild effect; most likely natural per-run variance. Net effect of the 2-day excursion to 19 is zero.

Operation: Update Sources:

  • Slack: #moq1 new post (yu you May 8 11:52 CEST): FYI. We will present a conferencing PoC over MOQT at the upcoming 3GPP SA4 #136 meeting next week in Montreal, Canada. Links to 3GPP S4-261065 input document and the FS_Q4RTC_MED study (SP-251661). PoC body: “based on our in-house MOQT v17 implementation and provided as an informative input to the ongoing study in SA4.” First public mention of a Nokia in-house MOQT v17 stack; first cross-pollination between MOQT and 3GPP SA4 standardization (FS_Q4RTC_MED is a 3GPP study item on Q4RTC media). #moq-rs, #moq-js, #libquicr all unchanged.
  • GitHub moq-wg repos:
    • moq-transport: No new commits, no new issues, no new PRs in May 8 06:00 UTC → May 9 06:00 UTC window. PR #1617 (alan-frindell Allow GOAWAY on request streams to migrate individual requests, +85/−73) received a metadata-only timestamp ping May 8 17:15 UTC — last code commit on the branch remains May 1 18:48 UTC. No new comments on Issue #1622.
    • moq-wg/msf — PR #133 (Suhas SCTE-35 + CEA-608/708) received 3 new comments in 7 hours, escalating from yesterday’s avelad split-into-3-PRs suggestion to a full spec-restructuring exchange:
      • wilaw May 8 11:29 UTC: “I notice another anomaly here. The current draft has a section for defining the event timeline carriage of SCTE-35 data, but then it punts the definition of the carriage of WebVTT and IMSCI to external drafts. Wouldn’t be better to specify all event timeline formats outside of the MSF spec?” — proposes spinning out all event-timeline formats as separate drafts.
      • gwendalsimon May 8 13:09 UTC: agrees with wilaw’s restructuring direction.
      • suhasHere May 8 18:30 UTC: “@wilaw @gwendalsimon I do have initial drafts on…” — reveals pre-staged draft text already exists for the separation.
      • Direction: 3 separate Event-Timeline format drafts (SCTE-35, WebVTT, IMSC1) likely to spin out as individual drafts; CEA-608/708 accessibility stays in MSF. Extends the MSF Packaging Extensions pattern (precedent: moq-msfts) into Event-Timeline Extensions.
    • moq-wg/secure-objects, loc, cmsf, catalog-format, privacy-pass: All quiet on main.
  • GitHub implementations:
    • Eyevinn/moqlivemock — PR #79 OPENED May 7 13:12 UTC by hugobjoers (+2697/−83, 17 files, OPEN, updated May 8 21:03 UTC) — Add LOCMAF support. LOCMAF (Low Overhead CMAF) = compact LOC-inspired/compatible CMAF packaging that avoids re-transmitting CMAF header fields that are fixed, derivable, or only present for structural reasons. Stores only fields needed to reconstruct CMAF init segments and moof fragment headers. Encoding: fields as MoQT/LOC-style key-value pairs, each with a LOCMAF ID; values aggregated into one LOCMAF property rather than one LOC property per CMAF field (avoids globally coordinating new property IDs). Three LOCMAF properties: (1) init segment — non-derivable fields needed to reconstruct CMAF ftyp + moov; (2) full header — non-derivable fields needed to reconstruct a complete moof header (must be sent as stream access point + first object in MoQT group, ensuring group is independently decodable); (3) delta header — differences relative to the previous moof header (with a “deleted” semantic that resets fields to defaults rather than treating them as deltas). Decompression: receiver constructs empty CMAF init/fragment headers with default values, parses LOCMAF KV map, applies stored deltas. Key optimizations: (a) tfdt.baseMediaDecodeTime computed from previous baseMediaDecodeTime + previous sample durations — omitted from wire; (b) single-sample fragments omit sample size (equals LOCMAF payload length). Body marks the proposal as experimental, with a more detailed description and measurements coming in the author’s master’s thesis.
    • Eyevinn/warp-player — PR #120 OPENED May 7 13:15 UTC by hugobjoers (+2211/−188, 14 files, OPEN, updated May 8 09:42 UTC) — Add LOCMAF support. Player-side counterpart to moqlivemock #79 (cross-references it). Body: “meant to match the corresponding branch and pull request”. A separate branch tests DRM with LOCMAF, but DRM is not in this PR.
    • moq-dev/moq: No new commits on main since May 7 18:17 UTC c54bca84 (luke-curley, @moq/watch network stats). Day +1 of post-burst quiet. PR #1374 (Lite05 DATAGRAMS, +1615/−7) updated May 7 19:25 UTC, still open Day +4. PR #1388 (LOC frame format, +799/−17) opened May 7 17:42 UTC, still open Day +1. PR #1389 (stats aggregation, +1168/−39) opened May 7 18:23 UTC, still open Day +1. Combined open-PR diff: +3582/−63 across 3 PRs — largest open-PR backlog in moq-dev/moq history.
    • moqtail/moqtail: No new commits, no PR updates, no new issues — 2nd consecutive completely quiet day. PR #193 [4/n] (sharmafb upstream FETCH on cache miss, +248/−132, OPEN since May 6 23:11 UTC) untouched 48h+ later. Earliest stale PR signal since the May 4 PR #145 merge.
    • cloudflare/moq-rs: No new commits since Apr 13 (Day +26 of upstream-fork quiet).
    • video-dev/moq-js: No new commits since Feb 17.
    • google/quiche (quiche/quic/moqt): No new commits since May 5 01:02 UTC — Day +4 quiet post-Vasiliev parser-rewrite.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqtransport: No new commits since Apr 16.
  • Mailing list:
    • yu you (Nokia) May 8 — new thread “Web conferencing demo over MOQT” — same announcement as Slack post (3GPP SA4 #136 PoC over in-house MOQT v17). First IETF-archive cross-post of the 3GPP SA4 PoC.
    • Cullen Fluffy Jennings May 8 — reply on “Knowing the start of a Subgroup”first Cullen reply on this thread, disputes Ian Swett’s claim that the WG already agreed to single-byte priority: “since even the pre-WG draft proposal we have always had a pretty complicated prioritization including object ID (lower goes first when doing datagrams and streams), group ID (both directions), subscriber priority, publisher priority.” Pushback against Ian’s May 5 framing that subgroup-design topics are closed for draft -18.
    • Cullen’s “Request Synchronization Use Case” thread (May 1) and Magnus Westerlund’s three May 4 framing messages — still unanswered for 8 days and 5 days respectively.
    • No on-list announcement for the MSFTS draft — Day +3 since Datatracker submission.
  • IETF Datatracker: No new draft revisions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 substantively ready in repo, still not on Datatracker), privacy-pass-02, cmsf-00. Notable individual drafts: lite-04 (Apr 9), nmsf-01 (Apr 7), qlog-moq-events-06 (Mar 16), gregoire-moq-msfts-00 (May 6, Day +3).
  • Interop runner: 20 pass / 71 fail / 14 skip (105 tests, 2026-05-09 00:39 UTC report). +1 pass / −1 fail vs May 8’s 19/72/14. Partial recovery back to the May 4–7 floor (which is also the post-NAB floor since PR #145 wholesale draft-14→16 migration). Walking arc: 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19 → 20. moqtail PR #193 still open Day +3, so bounce isn’t a moqtail-relay rebuild effect. moq-dev/moq merges in window (none on main) can’t have triggered the recovery. Most plausible cause: natural per-run variance / single image rebuild for one of the matrix entries (moq-rs, moq-rs-draft-16, moqx, quiche-moq, libquicr, xquic, imquic) flipping a single test from fail back to pass. Two-day net effect (May 7 20 → May 8 19 → May 9 20) is zero.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +9 since #1.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues remain closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (new “May 8 06:00 UTC → May 9 06:00 UTC” section: LOCMAF Eyevinn twin PRs, MSF PR #133 spec-restructuring escalation, mailing list reactivation with yu you 3GPP SA4 + Cullen subgroup pushback, moq-dev/moq main quiet day, moqtail 2nd quiet day, interop bounce-back), moqlivemock.md (LOCMAF PR #79 reference; PR #120 in warp-player), media-packaging.md (LOCMAF entry under “The Bridge” section as impl-side counterpart to compressed-mp4), moq-msf.md (PR #133 split-into-3-drafts direction note), interop-runner.md (May 9 row + narrative on bounce-back), interop-status.md (May 9 reading note), index.md (last_updated bump), log.md.

Key findings:

  • LOCMAF is the first impl-side proposal to bridge the LOC↔CMAF gap since luke-curley’s compressed-mp4 spec attempt (Mar 18, individual draft draft-lcurley-compressed-mp4-00). The two attempts come from opposite directions: Luke’s compressed-mp4 starts with a CMAF stream and applies a generic compressor (he called it “kinda gross, but maybe it’s enough to bridge the gap”); LOCMAF starts with the CMAF structure and encodes only the non-derivable fields as LOC-style KV pairs, leveraging properties LOC already defines for varint+byte-string encoding. LOCMAF makes no new global property IDs needed — single LOCMAF property aggregates all fields under locally-scoped LOCMAF IDs. The init/full/delta header design recovers 90%+ of CMAF re-transmission overhead (estimated; concrete measurements awaiting Hugo Björs’s master’s thesis). Hugo previously implemented DRM in moqlivemock + warp-player (CMSF ContentProtection PR #18), so this work fits a pattern of media-pipeline contributions from him.
  • MSF PR #133 escalation likely produces 3+ separate Event-Timeline drafts: avelad’s May 7 split-into-3-PRs suggestion → wilaw’s May 8 anomaly observation (SCTE-35 inline vs WebVTT/IMSC1 external) → gwendalsimon agreement → suhasHere’s “I do have initial drafts on…” reveal. The trajectory points to MSF retaining only CEA-608/708 accessibility metadata in the spec and spinning out 3 separate Event-Timeline format drafts (SCTE-35, WebVTT, IMSC1). This extends the MSF Packaging Extensions pattern (precedent: moq-msfts for m2ts) into Event-Timeline Extensions — making MSF an umbrella with both axes (packaging extensions + event-timeline extensions) modular. First time a moq-wg PR’s spec restructuring is shaped openly in a 3-author exchange (wilaw + gwendalsimon + suhasHere) rather than via interim or chair direction.
  • First MOQT cross-pollination into 3GPP SA4 standardization: yu you’s May 8 announcement places MOQT in the FS_Q4RTC_MED 3GPP study (S4-261065 input document). MOQT has previously been informational at Demuxed, IETF Hackathon, Mile High Video, and NAB — but not at 3GPP. Nokia maintains an in-house MOQT v17 implementation that has not been disclosed before, sitting alongside the public moq-rs/moq-js/moq-dev/moqtail/moxygen/imquic/libquicr/quiche-moq stack. SA4 Montreal #136 is May 11–15, so the PoC will be presented next week. Pattern signal: MOQT is reaching 3GPP attention while the IETF WG is still in draft-17.
  • Cullen Fluffy Jennings’s May 8 reply is the first material on-list pushback against Ian Swett’s May 5 framing of subgroup-design topics as closed: Ian had backed afrind’s “we’ve been at this four years and no one has needed it” dismissal of varint-vs-fixed-width tweaks. Cullen’s pushback re-opens the priority-encoding question by pointing out the prioritization has always been multi-field (object ID + group ID + subscriber priority + publisher priority), not single-byte. This tightens the topic for the May 12 MOQ Town Hall (Will Law / Dan Rayburn) and likely re-enters the editorial backlog before draft-18 cutoff.
  • moq-dev/moq has the largest open-PR backlog in repo history at +3582/−63 across 3 unmerged PRs (#1374 Lite05 DATAGRAMS +1615/−7, #1388 LOC frame format +799/−17, #1389 stats aggregation +1168/−39). All 3 are Claude-Code-generated. Day +4 since #1374 opened, Day +1 since 1389. The pattern of opening major design-PRs without immediately merging them contrasts with Luke’s typical 1-day merge-then-ship cadence on smaller PRs. Possible interpretation: he’s accumulating review feedback before merging the wire-level Lite05 changes, since #1388 (LOC) and #1389 (stats) both depend on the moq-lite session model.
  • Interop matrix two-day excursion from 20→19→20 is statistical noise, not a regression: PR #145 (moqtail wholesale draft-16 migration, May 4 19:23 UTC) remains the only structural cause for the May 5 −4 drop from 24 → 20; subsequent May 6/7/8 readings (20/20/19) and now May 9 (20) are walking around the new floor at 20±1. Both PR #1341 (moq-mux backport, internal hang-catalog only) and PR #193 (moqtail upstream FETCH, still open Day +3) have not produced matrix movement. The matrix is now stable at 20 pass for 5 of 6 May-weekday readings.

2026-05-08 — moq-dev/moq day-3 burst: revert-of-revert + LOC frame format + stats aggregation; interop floor breaks downward to 19/72/14

TL;DR:

  • moq-dev/moq day-3 burst (Luke 17:42–18:24 UTC May 7)PR #1387 “Revert the revert” MERGED May 7 17:47 UTC (+167/−177) un-reverting yesterday’s PR #1385: PR #1356 (insert_track takes TrackConsumer) re-lands. Body: “Actually fix the issue by incrementing the dynamic count when cloning.” First merge → revert → revert-of-revert cycle on main in moq-dev/moq’s history (PR #1356 May 5 → #1385 May 6 → #1387 May 7, all within 44 hours). PR #1386 (@moq/watch network stats from QUIC connection) MERGED May 7 18:17 UTC (+72/−177); resolves Firefox-navigator.connection-unavailable gap.
  • moq-dev/moq lands two large new feature PRs (both Luke, both Claude-Code-generated): PR #1388 OPENED May 7 17:42 UTC (+799/−17) — Add Low Overhead Container (LOC) frame format support — new moq-loc Rust crate + @moq/loc JS package with full encode/decode for the LOC wire format from draft-ietf-moq-loc, wired into moq-mux, hang catalog (Container::Loc { timescale }), and watch-player audio/video decoders + MSE backends. First time moq-dev/moq adopts an IETF-spec container format alongside its native moq-lite/Hang stack. PR #1389 OPENED May 7 18:23 UTC (+1168/−39) — Add stats aggregation and publishing for moq-lite sessions — per-broadcast and per-prefix stats published as .stats/<level>/<name> JSON broadcasts (1Hz snapshot) on configurable origin; introduces Path::is_hidden() filtering so stats infrastructure doesn’t generate its own stats traffic. Same problem space that the May 5 housekeeping wave closed PR #853 (fcancela observability) for — Luke’s reformulation lands as moq-bot effectively re-opens that domain in his own design.
  • Implementations: moq-dev/moq day-3 burst — PR #1386 + PR #1387 MERGED, PR #1388 + PR #1389 OPENED (huge feature-PR pair). PR #1374 (Lite05 DATAGRAMS) updated May 7 19:25 UTC, still open Day +3. moq-wg/msf — PR #133 (Suhas SCTE-35 + CEA-608/708, +259/0, opened Feb 27) gets May 7 11:50 UTC comment from avelad suggesting “this should be separated into 3 PRs, one for CEA, one for SCTE-35, and one for IMSC1 and WebVTT”. moq-transport — afrind comment on Issue #1622 (May 7 18:53 UTC): “Perhaps we want to use the Request ID slot to convey a Group ID when sent on an individual subscription or fetch stream.” moqtail completely quiet (no commits or PR updates May 7). cloudflare/moq-rs Day +25 quiet; google/quiche moqt Day +3 quiet; video-dev/moq-js, birneee/quiche_moq, Eyevinn repos all quiet. Quicr/cat-rs (newly open-sourced May 6) — May 7 04:07 UTC commit “Security hardening: fix all audit findings”.
  • Interop: 19/72/14−1 pass / +1 fail vs 4 prior days at 20/71/14. Breaks the 4-day floor downward; new post-Apr-17 low (prior floor was 20). Most plausible cause: moqtail PR #193 ([4/n] upstream FETCH on cache miss) still open (no merge), so this is unlikely to be moqtail-relay rebuild — more likely natural variance or a different image rebuild. The previous 19 reading was the early Apr 17–21 floor before the post-NAB recovery wave.

Operation: Update Sources:

  • Slack: #moqno new posts since suhas-nandakumar’s May 6 17:49 CEST CAT4MOQ + Will Law’s May 6 09:44 CEST MOQ Town Hall announcement. #moq-rs, #moq-js, #libquicr all unchanged.
  • GitHub moq-wg repos:
    • moq-transport: No new commits or merges in May 7 06:00 UTC → May 8 06:00 UTC window. Open PRs 1544 received label/timestamp pings on May 7 18:13–18:37 UTC (no code pushes). PR/Issue #1455 (Magnus Westerlund’s Security Consideration Extension) state remains CLOSED, May 7 timestamp ping. Issue #1622 (ianswett Request ID in GOAWAY isn’t useful): alan-frindell new comment May 7 18:53 UTC — “Perhaps we want to use the Request ID slot to convey a Group ID when sent on an individual subscription or fetch stream.” Reframes the GOAWAY-Request-ID slot as potentially repurposable for per-stream Group ID rather than removing it.
    • moq-wg/msf — PR #133 (Suhas SCTE-35 + CEA-608/708) received first new comment in 12 days. avelad (Alvaro Velad / Google) May 7 11:50 UTC: “Perhaps this should be separated into 3 PRs, one for CEA, one for SCTE-35, and one for IMSC1 and WebVTT?” — first review-process pushback from a new reviewer; PR has been open since Feb 27 with periodic updates, current shape +259/0.
    • moq-wg/secure-objects, loc, cmsf, catalog-format, privacy-pass: All quiet on main.
  • GitHub implementations:
    • moq-dev/moq (day-3 burst, all luke-curley):
      • PR #1387 MERGED May 7 17:47:35 UTC (+167/−177) — Revert the revert. Body one-liner: “Actually fix the issue by incrementing the dynamic count when cloning.” Un-reverts PR #1385’s revert of PR #1356. Net effect: the May 5 insert_track-takes-TrackConsumer change is back in main, with the underlying clone-counting bug now fixed in-place rather than by reverting the API change. Cycle: PR #1356 merged May 5 22:15 UTC → reverted via #1385 May 6 22:08 UTC (−24h) → reverted-back via #1387 May 7 17:47 UTC (+19h 39m). First time on main that an immediate revert is itself reverted within 24 hours.
      • PR #1386 MERGED May 7 18:17:23 UTC (+72/−177) — @moq/watch: source network stats from the connection, not navigator. Final shape +72/−177 (vs opened-shape +88/−130 — net deletes more code than originally drafted). Resolves Firefox-navigator.connection-unavailable gap. Second Firefox-compat PR to land in 3 days; sibling PR #1307 (Lite03+ via legacy SETUP) still open.
      • PR #1388 OPENED May 7 17:42:06 UTC (+799/−17, OPEN) — Add Low Overhead Container (LOC) frame format support. First adoption of a non-Hang IETF media container in moq-dev/moq. New moq-loc Rust crate + @moq/loc JS package implementing encode/decode for the draft-ietf-moq-loc wire format; QUIC-style varint property block (delta-encoded type IDs 0x06=timestamp, 0x08=timescale) followed by raw codec payload. Catalog integration: hang catalog gains Container::Loc { timescale } (default 1,000,000 µs); audio source selection prioritizes LOC after legacy, before CMAF. Watch player audio/video decoders + MSE backends instantiate the appropriate LOC decoder based on catalog config. Per-frame timescale (0x08 property) overrides catalog default. Body marked ”🤖 Generated with Claude Code”.
      • PR #1389 OPENED May 7 18:23:35 UTC (+1168/−39, OPEN) — Add stats aggregation and publishing for moq-lite sessions. New Stats module (rs/moq-lite/src/stats.rs); per-broadcast and per-prefix stats published as .stats/<level>/<name> JSON broadcasts (1Hz snapshot, atomic counters with Relaxed ordering). Hidden-path filtering: new Path::is_hidden() (segments starting with .) so stats infrastructure doesn’t recursively generate its own stats traffic; OriginConsumer::announced() filters hidden paths, complementary announced_hidden() exposes them. New StatsConfig in moq-relay (name + levels). Per-broadcast RAII guards (PublisherStats/SubscriberStats/PublisherTrack/SubscriberTrack) record open/close, frames, bytes, groups. Same problem domain as the May 5-closed PR #853 (fcancela’s “Minimal observability metrics”, +1261/−38) — Luke’s reformulation lands as a 1168-line opening within 2 days. Body marked ”🤖 Generated with Claude Code”.
      • PR #1374 (Lite05 DATAGRAMS) updated May 7 19:25 UTC — still open, Day +3 since open. No movement towards merge.
      • PR #1338 (chore: release, moq-bot) updated May 7 18:32 UTC — auto-bumped after #1387 + #1386 merges; release line now includes the day-1 revert + day-3 revert-of-revert net no-op + Firefox stats fix.
      • PR #853 (fcancela observability) — note: closed-not-merged on May 5; received an automated cross-reference timestamp ping May 7 17:50 UTC when PR #1389 opened (PR #1389 occupies adjacent design space). State remains CLOSED.
    • moqtail/moqtail: completely quiet day — no new commits, no PR updates, no new issues. PR #193 [4/n] (sharmafb upstream FETCH on cache miss, +248/−132, OPENED late May 6) remains untouched 24h+ later.
    • cloudflare/moq-rs: No new commits since Apr 13 (Day +25 of upstream-fork quiet).
    • video-dev/moq-js: No new commits since Apr 16.
    • google/quiche (quiche/quic/moqt): No new commits since May 5 01:02 UTC 1ceadc7 Vasiliev “Rewrite MOQT control message parser” — Day +3 quiet.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqlivemock + warp-player: No new commits since the May 5 v0.8.0 release.
    • Eyevinn/moqtransport: No new commits.
    • Quicr/cat-rs (newly open-sourced May 6): May 7 04:07:33 UTC commit 1e4423e “Security hardening: fix all audit findings” by Suhas. Continues post-open-source polish; Day +1 of the public maintenance.
  • Mailing list: Quiet for 3rd consecutive day. No new messages on May 6 or May 7. Cullen Jennings’s “Request Synchronization Use Case” thread (May 1) and Magnus Westerlund’s three May 4 framing messages now sit unanswered for 7 days and 4 days respectively. No on-list announcement posted for the new MSFTS draft (draft-gregoire-moq-msfts-00, posted to Datatracker May 6) — Day +2 since draft.
  • IETF Datatracker: No new draft revisions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 substantively ready in repo, still not on Datatracker), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9, despite Lite05 in moq-dev/moq PR #1374), nmsf-01 (Apr 7), qlog-moq-events-06 (Mar 16), gregoire-moq-msfts-00 (May 6, Day +2).
  • Interop runner: 19 pass / 72 fail / 14 skip (105 tests, 2026-05-08 00:38 UTC report). −1 pass / +1 fail vs May 7 / May 6 / May 5 / May 4 (all 20/71/14). Breaks the 4-day floor downward — new post-NAB low. Walking arc: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20 → 20 → 19. moqtail PR #193 (upstream FETCH, OPEN since May 6) did not merge so this isn’t a moqtail-relay rebuild effect; more likely natural variance or a different image’s rebuild. The previous 19 reading was the early Apr 17–21 floor; the matrix has now returned to that depth.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +7 since #1.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues remain closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (top-level “May 7 06:00 UTC → May 8 06:00 UTC” section: moq-dev/moq day-3 burst with revert-of-revert + LOC frame + stats aggregation; msf PR #133 review pushback; moq-transport Issue #1622 afrind comment; mailing list quiet day-3; cat-rs security hardening), moq-dev.md (header bump + “May 7 → May 8” section: PR #1386 + PR #1387 merged, PR #1388 + PR #1389 opened), moq-loc.md (added “Implementation tracking” note for PR #1388 in moq-dev/moq), interop-runner.md (May 8 row + narrative paragraph: floor breaks down to 19), interop-status.md (May 8 reading note: 19/72/14, post-NAB new low), index.md (last_updated bump), log.md.

Key findings:

  • First merge → revert → revert-of-revert cycle on main in moq-dev/moq’s history: PR #1356 (May 5 22:15 UTC, insert_track takes TrackConsumer) → PR #1385 (May 6 22:08 UTC, revert) → PR #1387 (May 7 17:47 UTC, “Revert the revert”). Total cycle 43h 32m. Yesterday’s wiki entry framed PR #1385 as a “first merge-then-revert-within-24h” event; today it’s reframed as a transient revert. The actual fix lands in-place: “Actually fix the issue by incrementing the dynamic count when cloning.” The TrackConsumer::produce() removal from PR #1300 is again gone from the codebase. Pattern signal: Luke is comfortable using main for fast iteration on type-level cleanup, including reverting and un-reverting within 24h windows.
  • moq-dev/moq adopts LOC frame format support — first non-Hang container format alongside CMAF/moq-lite native stack: PR #1388 (+799/−17) brings full encode/decode for draft-ietf-moq-loc frames into both Rust (moq-loc crate) and JS (@moq/loc package). Hang catalog gains Container::Loc { timescale }. Audio source selection now prioritizes LOC ahead of CMAF (after legacy). This positions moq-dev/moq for direct interop with moqtail and moqlivemock’s LOC paths. Significant strategic shift: Luke previously treated Hang as the canonical media layer above moq-lite — adopting LOC inline brings the IETF-aligned media container into the same stack rather than relying on shim/conversion. First IETF-spec container format adopted by moq-dev/moq.
  • moq-dev/moq stats aggregation reformulates the closed PR #853 (fcancela observability) at 1168 lines: PR #1389 (Luke, +1168/−39) opens stats infrastructure 2 days after the May 5 housekeeping wave closed PR #853 (+1261/−38) without merging. Domain overlap is direct: per-broadcast and per-session counters (broadcasts, subscriptions, bytes, frames, groups) with relay-side aggregation. Luke’s reformulation introduces three novel mechanisms: (1) stats published as in-band .stats/<level>/<name> MoQ broadcasts (subscribe to your own stats stream rather than scraping Prometheus); (2) Path::is_hidden() filtering so the stats system itself doesn’t generate stats traffic recursively; (3) per-prefix-level bucketing (configurable depth) for hierarchical aggregation. Both PRs are Claude-Code-generated. The pattern of closing a 13-month-old observability PR and opening a fresh maintainer-authored design 2 days later is the second time this contributor-→-maintainer-rewrite pattern has appeared (after the Apr 30 Lite05 design absorbing earlier contributor-FETCH-API ideas).
  • avelad opens MSF PR #133 review wedge — first review-process pushback in 70 days: Suhas’s SCTE-35 + CEA-608/708 PR has been open since Feb 27 (70+ days) accumulating updates without a substantive review challenge. Alvaro Velad (Google, Shaka Player engineer) joins May 7 11:50 UTC: “Perhaps this should be separated into 3 PRs, one for CEA, one for SCTE-35, and one for IMSC1 and WebVTT?” — process suggestion, not technical pushback, but the first concrete reviewer engagement after Will Law’s Apr 27 round. The PR adds 4 separable concerns (accessibility metadata, SCTE-35 timeline events, IMSC1 captions, WebVTT) — a 4-way split would change the merge cadence considerably. First moq-wg/msf review activity from a Google engineer in this PR thread.
  • afrind reframes ianswett’s GOAWAY-Request-ID-removal proposal as repurposable Group-ID slot: Issue #1622 was opened Apr 30 by ianswett arguing “Request ID in GOAWAY isn’t useful” (request IDs are not the right primitive in MoQ; HTTP-style stream IDs would be HTTP, not MoQ). afrind’s May 7 18:53 UTC reply: “Perhaps we want to use the Request ID slot to convey a Group ID when sent on an individual subscription or fetch stream.” — repurposes the wire field for a different per-stream identifier rather than removing it. The competing fronts (Vasiliev’s Apr 30 PR #1559 hesitation, the Required Request ID removal in PR #1615, GOAWAY’s leftover Request-ID use) suggest the editorial team is converging on per-stream identifier signalling as a subgroup of the Request-ID-cleanup direction. First substantive afrind comment on Issue #1622 since the original Apr 30 “trivial to put in goaway” reply.
  • Interop runner breaks the 4-day floor: 19/72/14 vs 4 prior days at 20/71/14. PR #193 (moqtail upstream FETCH) did not merge May 7 — yesterday’s wiki noted it as the next candidate to move the matrix once moqtail-relay rebuilds, but the rebuild hasn’t happened. The likely cause is therefore another image’s rebuild or natural per-run variance. The 19 reading matches the Apr 17–21 floor exactly, suggesting the post-NAB recovery wave’s gains have all been given back. The matrix is now at the same passing-test count as 22 days ago. Notable that no on-main wire-format change in moq-transport occurred May 7 — the regression is in implementation pairs.
  • moq-dev/moq is producing the largest single-day Claude-Code-generated PR pair in repo history: PR #1388 (+799) + PR #1389 (+1168) both opened ~40 minutes apart (17:42 UTC and 18:23 UTC). Both bodies tagged ”🤖 Generated with Claude Code”. Neither is merged yet; combined +1967/−56. Second Claude-Code-generated PR pair within 7 days after the May 5 PR #1378 (+295/−240) + PR #1374 (+1615/−7) Lite05 design pair. Cumulative Claude-Code-generated diff in moq-dev/moq’s recent history is now >4000 lines added across 4 PRs in a 4-day window.

2026-05-07 — New MSFTS draft (MPEG-2 TS over MoQ) lands; moq-dev/moq evening burst includes 24h revert; moqtail upstream-FETCH series merges; CAT4MOQ Rust lib open-sourced; MOQ Town Hall scheduled

TL;DR:

  • NEW individual draft draft-gregoire-moq-msfts-00 submitted to Datatracker May 6 — MPEG-2 Transport Stream Packaging for Media Over QUIC Transport, 21 pages, by Paul Gregoire (Red5) + gwendal-simon (Synamedia). Registers the m2ts packaging value alongside CMSF/LOC under the MSF umbrella; defines 10 m2ts-specific catalog fields (188/192-octet packets, PMT/PCR/SCTE-35 PIDs, PSI interval, timestamp modes, initData). First non-CMAF, non-LOC packaging format for MSF — extends MoQ to broadcast/contribution workflows. First MoQ contribution from Paul Gregoire (moqxr maintainer); Gwendal’s first IETF-side artifact after the late-April spec/impl cross-pollination wave. No mailing-list announcement yet.
  • moq-dev/moq evening burst day-2: luke-curley merges PR #1382 (moq-mux test fixtures), PR #1383 (@moq/watch broadcast-flap fix), and PR #1385 reverting yesterday’s PR #1356 (insert_track takes TrackConsumer) within 24 hours of merge — first merge-then-revert-within-24h on main since the Apr 30 → May 2 fetch_group cycle. Opens PR #1386 (@moq/watch source network stats from QUIC connection, not navigator.connection) — second Firefox-compatibility-affecting PR alongside still-open PR #1307. Issue #1384 opens (@moq/signals improvements). PR #1374 (Lite05 DATAGRAMS) unmoved, Day +2.
  • moqtail upstream-FETCH 3-PR series MERGED in 27 minutes: zafer-gurel lands sharmafb’s #186 + #188 + #187 (merge order 1→3→2) on May 6 14:31–14:58 UTC, plus davemevans’s PR #179 Firefox docs at 15:04 UTC. sharmafb opens PR #193 [4/n] (+248/−132) at 23:11 UTC as the capstone — actual upstream FETCH on cache miss, with fetch_requests map split into incoming/outgoing and publisher-track-alias forwarding. Second consecutive day of non-maintainer merges on main (after thexeos’s co-authored #191 May 5).
  • Implementations: moq-dev/moq merges 3 PRs (#1382 +3/−0, #1383 +15/−5, #1385 revert +160/−117) + opens PR #1386 + Issue #1384. moqtail merges 4 PRs (#186 +15/0, #187 +71/−6, #188 +154/−8, #179 +11/−2) + opens PR #193 [4/n] +248/−132. moq-wg/secure-objects: first commits in many weeks (Suhas Nandakumar, 2 commits May 6 13:30–13:45 UTC, diagram fix via PR #87 — no normative change). cloudflare/moq-rs Day +24 fork quiet; google/quiche moqt Day +2 post-Vasiliev rewrite quiet; video-dev/moq-js, birneee/quiche_moq, Eyevinn repos all quiet.
  • Interop: 20/71/14 — flat for 3rd consecutive day at the Apr 17–21 floor. PR #1341 moq-mux backport (merged May 6 01:20 UTC) was the candidate to move the matrix on May 7 — no movement observed, suggesting hang catalog/init shape is internal to moq-dev not a moq-transport wire change.

Operation: Update Sources:

  • Slack: #moq2 new posts (first activity since May 5):
    • suhas-nandakumar May 6 17:49 CEST: CAT4MOQ implementation update — catapult (C++) and newly open-sourced cat-rs (Rust) at Quicr/cat-rs. Both up to date with C4M spec, full CAT token + DPoP support. First Rust CAT4MOQ implementation in the open.
    • Will Law (Akamai) May 6 09:44 CEST: Dan Rayburn hosting MOQ Town Hall Zoom session May 12 at 1pm ET (LinkedIn announcement). Open to all — first public-facing moderated MoQ town hall (vs IETF interim or Demuxed talks).
    • #moq-rs (C09CG9V7A2Y), #moq-js (C09BZ7KH0BZ), #libquicr (C08ER7J16BF) all unchanged.
  • GitHub moq-wg repos:
    • moq-transport: No new commits, merges, or new issues in May 6 06:00 UTC → May 7 06:00 UTC window. Only PR #1604 timestamp ping (label/state, no new comment after alan-frindell’s May 5 reframing).
    • moq-wg/secure-objects: First main-branch activity in many weeks. Commits 8d789cf (May 6 13:30 UTC, suhas-nandakumar) Fix encryption/decryption diagrams to match SECURE_OBJECT_AAD structure and 68f9f0b (May 6 13:45 UTC) merge of PR #87 from pic-fix branch. Diagram-only fix, no normative change. secure-objects-01 substantive draft remains not on Datatracker.
    • moq-wg/loc — Issue #19 unchanged: kixelated’s May 5 22:14 UTC self-reply remains the most recent; no LOC ecosystem engagement yet.
    • moq-wg/msf, cmsf, catalog-format, privacy-pass: No new commits or PRs.
  • GitHub implementations:
    • moq-dev/moq (evening burst day-2):
      • PR #1382 MERGED May 6 20:03 UTC (+3/−0) — Unignore moq-mux test fixtures. Test-fixture inclusion fix following PR #1341 backport.
      • PR #1383 MERGED May 6 21:09 UTC (+15/−5) — @moq/watch: don’t tear down a broadcast when an unrelated path flaps. Targeted TS watch fix for spurious tear-downs.
      • Issue #1384 OPENED May 6 20:41 UTC — @moq/signals improvements. Tracks reactive-signals layer cleanup.
      • PR #1386 OPENED May 6 21:51 UTC (+88/−130, OPEN) — @moq/watch: source network stats from the connection, not navigator. Replaces navigator.connection (Firefox doesn’t expose) with QUIC-connection-sourced stats. Second Firefox-compatibility PR after #1307.
      • PR #1385 MERGED May 6 22:08 UTC (+160/−117) — Revert “moq-lite: switch insert_track to take TrackConsumer (#1356)“. Body: standard auto-generated revert (“This reverts commit b611acd1.”). Backs out PR #1356 ~24 h after May 5 22:15 UTC merge. No follow-up issue explaining the regression.
      • PR #1338 updated May 6 22:24 UTC — chore: release (moq-bot[bot]). Auto-bumped, will drop PR #1356 from staging release line.
      • PR #1358 updated May 6 21:32 UTC — Origin poll-driven rewrite, still open.
      • PR #1149 updated May 6 19:06 UTC — catalog registry, still open.
      • Issue #1364 CLOSED May 6 06:00 UTC — Dan Rossi’s “Cloudflare Relay” question. No comment on close.
      • PR #1374 (Lite05 DATAGRAMS) — no movement (Day +2).
      • PR #1307 (Firefox legacy-SETUP fallback) — no movement.
    • moqtail/moqtail (sharmafb upstream-FETCH series merges + capstone opens):
      • PR #186 MERGED May 6 14:31 UTC by zafergurel (+15/0) — [upstream fetches] Add command-line args for FETCH upstream timeout and gap limit [1/n] (sharmafb / Aman Sharma).
      • PR #188 MERGED May 6 14:56 UTC (+154/−8) — [upstream fetches] Function to send upstream fetch [3/n]. Merged before #187 ([2/n] plumbing PR).
      • PR #187 MERGED May 6 14:58 UTC (+71/−6) — [upstream fetches] Plumbing to forward FETCH data received from upstream [2/n]. Merge order 1 → 3 → 2 (likely cherry-pick / linearization).
      • PR #179 MERGED May 6 15:04 UTC (+11/−2) — docs: add instructions for Firefox testing using private CA (davemevans / David Evans, opened Apr 29).
      • PR #192 OPENED May 6 15:05 UTC by github-actions[bot] — [ci] release.
      • PR #193 OPENED May 6 23:11 UTC by sharmafb (+248/−132, OPEN) — [upstream fetches] Finish implementation of sending FETCH requests upstream for cache misses [4/n]. Upstream fetch on cache miss; splits fetch_requests into incoming/outgoing maps; uses publisher’s track alias for upstream FETCH so response stream resolves correctly. 4-terminal manual test plan in PR body.
      • Commit ccf9d2e May 6 08:59 UTC by Ali C. Begen — docs: update reference.
    • cloudflare/moq-rs: No new commits since Apr 13 (Day +24 of upstream-fork quiet).
    • video-dev/moq-js: No new commits since Apr 16.
    • google/quiche (quiche/quic/moqt): No new commits since May 5 01:02 UTC 1ceadc7 Vasiliev “Rewrite MOQT control message parser” — Day +2 quiet.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqlivemock + warp-player: No new commits since the May 5 v0.8.0 release.
    • Eyevinn/moqtransport: No new commits.
  • Mailing list: Quiet for 2nd consecutive day. No new messages on May 6 or May 7. Cullen’s “Request Synchronization Use Case” thread (May 1) and Magnus Westerlund’s three May 4 framing messages now sit unanswered for 6 days and 3 days respectively. No announcement message posted for the new MSFTS draft. The “Knowing the start of a Subgroup” thread is dormant since alan-frindell’s twin May 5 pushback messages.
  • IETF Datatracker: NEW individual draft draft-gregoire-moq-msfts-00 posted May 6 (21 pages, MPEG-2 TS packaging, Gregoire/Simon). All WG drafts unchanged: transport-17, msf-00, loc-02, secure-objects-00 (-01 still not on Datatracker), privacy-pass-02, cmsf-00. Other notable individual drafts unchanged (moq-lite-04 Apr 9, nmsf-01 Apr 7, qlog-moq-events-06 Mar 16, moq-probe-00 Mar 16, moq-largest-group-00 Mar 22). media-interop no longer in listing (Apr 23 expiry).
  • Interop runner: 20 pass / 71 fail / 14 skip (105 tests, 2026-05-07 00:38 UTC report). Flat vs. May 6 (also 20/71/14). Three consecutive days at the Apr 17–21 floor. Walking arc: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20 → 20. PR #1341 (moq-mux backport, merged May 6 01:20 UTC) was the most plausible candidate to move the matrix in this report — no movement observed, suggesting catalog/init shape change is internal to moq-dev/hang not a moq-transport wire change. moqtail PR #193 (upstream FETCH on cache miss) opens late May 6 — could affect May 8 matrix once moqtail-relay rebuilds.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +6 since #1.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues remain closed.)

Pages updated: discussions-2026-05.md (top-level “May 6 06:00 UTC → May 7 06:00 UTC” section added with MSFTS draft / moq-dev evening burst / moqtail upstream-FETCH series / secure-objects diagram fix / mailing list quiet / Slack CAT4MOQ + Town Hall sub-sections), moq-dev.md (header bump + “May 6 → May 7” section: PR 1383 merged, PR #1385 revert of #1356, PR #1386 opened, Issue #1384 opened), moqtail.md (header bump + “May 6” section: PR 179 merged, PR #193 [4/n] capstone opened), interop-runner.md (May 7 row + narrative paragraph), interop-status.md (May 7 reading, third-day-at-floor note, PR #1341 no-effect observation), moq-msf.md (added MSF Packaging Extensions section listing CMSF + new MSFTS), index.md (last_updated bump + MSFTS mention in individual drafts list), log.md.

Key findings:

  • First non-CMAF, non-LOC packaging extension to MSF: draft-gregoire-moq-msfts-00 registers m2ts packaging alongside cmaf (CMSF) and the LOC bytestream form. The 192-octet variant accommodates the M2TS source-packet form (4-byte timestamp prefix), and SCTE-35 PID is explicitly modeled, signaling intent to support ad-insertion / splice points end-to-end. Co-authored by gwendal-simon (also PR #1378 SWITCH for client-side ABR author) — his first IETF-side artifact, suggesting the late-April spec/impl cross-pollination wave is producing concrete spec contributions. First MoQ draft from Paul Gregoire (Red5), who also maintains moqxr — extends the MoQ author base into the broadcast-streaming community. No mailing-list announcement yet — the WG hasn’t been notified on-list.
  • First merge-then-revert-within-24h on main since the Apr 30 → May 2 fetch_group cycle: PR #1356 (insert_track takes TrackConsumer) merged May 5 22:15 UTC, reverted via PR #1385 May 6 22:08 UTC — exactly 23 h 53 min. The PR description is auto-generated revert text; no follow-up issue explains the regression that prompted the pull-back. The release-train PR #1338 auto-bumped 16 minutes after the revert, so the next moq-lite release will not include the type-level cleanup. The post-Lite04 deprecation queue (PR #1378 +295/−240) is therefore not 100% complete as the wiki implied yesterday — TrackConsumer::produce() from #1300 is back in.
  • moqtail contributor base widening visibly: 4 of 5 merges on main in the May 5 → May 6 window have non-maintainer authorship (thexeos co-authoring #191 on May 5; sharmafb authoring 188 on May 6; davemevans authoring #179 on May 6). Only Ali C. Begen’s ccf9d2e “docs: update reference” and the bot release PRs are maintainer-internal. First time in moqtail’s history that 3 different external contributors land code on main within a 48-hour window. PR #193 [4/n] +248/−132 will likely be the largest sharmafb contribution when it merges.
  • moqtail completes a key relay capability in contributor-led increments: upstream FETCH on cache miss is a textbook CDN-relay primitive (a relay that can fetch absent groups from origin rather than serving only what’s locally cached). PR 193 implement it as a 4-PR chain. First example of a non-trivial relay feature being shipped to moqtail by an external contributor. The 4-terminal manual test setup in PR #193’s body documents the testing approach reproducibly.
  • secure-objects shows life signs but only diagram-level: 2 commits on main (Suhas Nandakumar) merge a pic-fix branch correcting the encryption/decryption figure to match the SECURE_OBJECT_AAD structure. No normative change. The substantive secure-objects-01 draft (containing the SFRAME RFC reference, additional test vectors, en-dash fix from open PRs 85) remains not on Datatracker as of May 7. Suhas’s parallel May 6 17:49 CEST Slack post about the cat-rs CAT4MOQ open-source release suggests a coherent Cisco/Quicr push around the broader CAT4MOQ + secure-objects axis.
  • CAT4MOQ Rust impl cat-rs open-sourced (Quicr/cat-rs) — first Rust CAT4MOQ client-side implementation. Pairs with the existing C++ catapult to give the privacy-pass / CAT4MOQ track its first cross-language client-side coverage. Both libraries claim full CAT token + DPoP support per spec. Notable framing: Suhas’s Slack post explicitly invites feedback (“Please give them a try and let us know”) — solicitation of community testing, not just announcement.
  • First public-facing MoQ town hall scheduled: Dan Rayburn (StreamingMediaBlog analyst) hosting a May 12 1pm ET Zoom Town Hall, open to all. Distinct from IETF interim format — frames as “promote your project or service, or debate the nuances of MOQT”. Will Law (Akamai) is the messenger. Falls 6 days from the next regular WG cadence; slot timing (1pm ET / 19:00 CEST / 17:00 UTC / 10am PT) hits both EU and US working hours. First non-IETF-organized MoQ public event of the year.
  • Interop runner three consecutive days at floor: 20/71/14 unchanged. PR #1341 (moq-mux backport, merged May 6 01:20 UTC) did not move the matrix — the catalog Container::Cmaf { init: Bytes } schema change is internal to moq-dev’s hang format, so moq-transport wire interop is preserved as designed. The post-PR #145 image-rebuild floor at 20 pass continues to be the new normal until pair-level fixes land. moqtail PR #193 (upstream FETCH +248/−132) is the next candidate to potentially move the matrix when moqtail-relay rebuilds with merge.

2026-05-06 — Luke’s biggest single-day merge run on moq-dev/moq; moqtail-ts polish; afrind closes door on Subgroup-ID/varint reopening; interop flat at floor

TL;DR:

  • moq-dev/moq lands seven PRs in a ~9-hour window — capped by the +2588/−3594 PR #1341 moq-mux backport from dev to main (82 files; net deletion ~1000 lines, all per-codec feature flags removed, dual OrderedConsumer/Consumer API collapsed into single Consumer<F: Container>). Other merges: PR #1378 API tightening (+295/−240), PR #1380 Origin API renames (port from #1358), PR #1379 Windows DNS fix, PR #1377 TOML config string-or-array, PR #1356 insert_track-takes-TrackConsumer, PR #1381 OG image. PR #1307 OPENED: legacy-SETUP fallback so Firefox can negotiate Lite03+ without ALPN selection. PR #1374 (Lite05 DATAGRAMS) still open.
  • mailing list: alan-frindell enters “Knowing the start of a Subgroup” thread with two replies in 6 minutes — pushes back on revisiting Subgroup ID width (“we’ve already been over this ground”) and on a broader varint audit (Group/Object IDs are also varints + part of priority scheme); on track-starts: “we’ve been at this four years and no one has needed it.” Combined with Ian Swett’s May 3 FIRST_OBJECT-bit decision, the editorial direction now signals subgroup-design topics are closed for draft -18. Cullen’s request-sync framing remains unanswered for a 5th day. moqtail merges per-subscription early-discard (#189) + isValidTrackAlias BigInt fix (#191, co-authored by thexeos closing #156). moq-wg/loc — Luke OPENS Issue #19 “How do you encode LOC Private Properties?” — argues LOC needs its own version/encoding contract rather than borrowing moq-transport’s. PR #1378 SWITCH (gwendalsimon) gets 2 commits reassigning message type 0x12 → 0x1F → 0x1B.
  • Implementations: moq-dev/moq merges 7 PRs (PR #1341 +2588/−3594, PR #1378 +295/−240, others smaller); PR #1307 OPENED Firefox legacy-SETUP fallback. moqtail merges PR 190 (moqtail-ts polish + release); PR #156 closed in favor of #191. cloudflare/moq-rs Day +23 fork quiet; google/quiche moqt Day +1 quiet (post-Vasiliev rewrite); video-dev/moq-js, birneee/quiche_moq, Eyevinn repos all quiet.
  • Interop: 20/71/14 — flat vs May 5 (also 20/71/14). Two consecutive days at the Apr 17–21 floor; no recovery from yesterday’s −4 regression.

Operation: Update Sources:

  • Slack: #moqno new posts since torbjorn-einarsson’s May 5 06:43 CEST moqlivemock + warp-player MSF/LOC/WebCodecs/moq-mi announcement (3 clap reactions are the only post-Slack-MCP-probe activity). #moq-rs (C09CG9V7A2Y), #moq-js (C09BZ7KH0BZ), #libquicr (C08ER7J16BF) all unchanged.
  • GitHub moq-wg repos:
    • moq-transport: No new commits or merged PRs in the May 5 06:00 UTC → May 6 06:00 UTC window.
      • PR #1378 (gwendalsimon SWITCH for client-side ABR) updated May 5 09:55–09:59 UTC with 2 commits: c301893 fix(switch): change SWITCH message type from 0x12 to 0x1F + 77e5326 fix(switch): change SWITCH message type to 0x1B. Two consecutive code-point assignments in 4 minutes — final SWITCH type 0x1B. Open since Nov 24, 2025; received its first push in months as the Joining-FETCH-vs-SWITCH design space heats up.
      • PR #1604 (martinduke Joining FETCH with subscription) — afrind comment May 5 16:36:31 UTC: “Luke indicated in another issue a case where you want future SUBSCRIBE groups > FETCH current group > SUBSCRIBE current group. But that also can’t be expressed in any form in MOQ today.” Frames the priority-overlap concern as an open spec gap rather than a blocker.
      • Open PR slate unchanged: #1627, #1604, #1617, #1615, #1625, #1607, #1544, #1623, #1618, #1621, #1591, #1605, #1378 (now active), #1613.
    • moq-wg/loc — Issue #19 OPENED May 5 22:12:11 UTC by kixelated (luke-curley) — “How do you encode LOC Private Properties?“. Body: “The encoding of LOC Public Properties depend on the moq-transport version, but it’s how are we supposed to encode private properties? I don’t know the version, nor will it be the same between an arbitrary publisher/subscriber with a relay in the middle.” Self-comment May 5 22:14:17 UTC: “Based on vi64 I can guess that moq-transport-17 encoding is being used, but LOC itself is going to have to specify a specific version/encoding for anything in the payload.” Direct conceptual challenge to LOC’s “borrow moq-transport’s encoding” stance; intersects with #1550 (Properties Type collision moq-16 ↔ loc-01) at a deeper architectural layer.
    • moq-wg/secure-objects, msf, cmsf, catalog-format, privacy-pass: No new activity since the May 1 secure-objects editorial wave. Open secure-objects PRs remain #83 (SFRAME RFC ref), #84 (test vectors), #85 (en-dash fix). draft-ietf-moq-secure-objects-01 still not on Datatracker.
  • GitHub implementations:
    • moq-dev/moq (biggest single-day merge run since Apr 29–30):
      • PR #1377 MERGED May 5 17:17:23 UTC (+52/−1, closes #1376) — fix(config): accept single string or array for TOML list fields. serde_with::OneOrMany<_, PreferMany> on server.tls.{cert,key,generate,root}, tls.root, web.https.root, auth.tls.root, auth.domains. Production-fixing config PR.
      • PR #1380 MERGED May 5 18:51:38 UTC (+130/−127). moq-lite: port Origin API renames from #1358. Stacked on #1378. Ports public-API renames without merging the substrate change. OriginProducer::publish_onlyscope; OriginConsumer::consume_onlyscope; OriginConsumer::try_consume_broadcastget_broadcast; OriginProducer::consume_only and try_consume_broadcast dropped.
      • PR #1379 MERGED May 5 19:22:22 UTC (+110/−11). Fix DNS resolution to prefer matching address family. New pick_addr() selects DNS entry whose family matches local socket; falls back to first entry. Cross-platform stability fix for Windows AddrNotAvailable errors.
      • PR #1381 MERGED May 5 20:03:32 UTC — OG image dimensions. Cosmetic.
      • PR #1378 MERGED May 5 20:08:31 UTC (+295/−240, 20 files). moq-lite: tighten public API surface and remove deprecated methods. Crate-private ALPN_* / MAX_HOPS / coding module / encode_params!/decode_params! macros; re-export DecodeError/EncodeError/BoundsExceeded from crate root. Drops deprecated TrackProducer::close, poll_next_group, next_group (alias), FrameProducer::write_chunk, OriginProducer/OriginConsumer::consume_broadcast. Renames next_group_orderednext_group. Adds Origin::new(id). cargo test -p moq-lite --lib 278/278 pass. 🤖 Generated with Claude Code. Largest API-surface tightening of the moq-lite cycle.
      • PR #1356 MERGED May 5 22:15:50 UTC (+117/−160). moq-lite: switch insert_track to take TrackConsumer. Removes TrackConsumer::produce() from #1300 (added as workaround). Adds TrackConsumer::weak() (pub(crate)).
      • PR #1341 MERGED May 6 01:20:29 UTC (+2588/−3594, 82 files) — moq-mux backport + dual-API cleanup. Largest moq-dev/moq merge of the post-NAB period. Backports moq-mux structural refactor from dev; module reorg moq_mux::{import,export,container,convert}; catalog-side Container::Cmaf { init: Bytes }; all codec support always compiled (no per-codec feature flags); lazy track creation; DecoderFramed rename; convert::cmaf::Convert + convert::hang::Convert. Final cleanup commit 5e6d5a3 collapses dual APIs in moq_mux::export: OrderedConsumer<F: ContainerFormat>Consumer<F: Container>; ContainerFormat trait → container::Container trait; OrderedFramecontainer::Frame; OrderedMuxer<F>Muxed; export::Cmaf { timescale }container::Cmaf { trak }. Net deletion ~1000 lines despite being a backport. ksletmoe-aws’s #1359 effectively flowed back via this merge in a different shape.
      • PR #1307 OPENED / updated May 5 21:45 UTC (+150/−13, still open) — moq-lite: negotiate Lite03+ via legacy SETUP when ALPN is unavailable. Direct Firefox-WebTransport-compatibility fix. Firefox can never pick moq-lite-03/04 since WebTransport doesn’t expose ALPN selection; previous fallback only advertised [Lite02, Lite01, Draft14]. Extends fallback to advertise every supported moq-lite version in draft-14 SETUP versions list.
      • PR #853 + PR #856 CLOSED unmerged May 5 21:45 UTC — fcancela’s “Minimal observability metrics” (+1261/−38) and ac-freeman’s “WIP: Delivery timeout” (+225/−54). Multi-year-old housekeeping retire from before the moq-lite split.
      • PR #1374 (Lite05 DATAGRAMS) updated May 5 16:17 UTC — still open. Today’s merges (#1378, #1380, #1377) reduce surrounding API surface area.
      • PR #1371 (cross-broadcast track refs) updated May 5 16:07 UTC — still open.
      • PR #1338 (chore: release, moq-bot) updated May 5 22:37 UTC — staging the next moq-lite release line.
    • moqtail/moqtail (moqtail-ts polish day):
      • PR #189 MERGED May 5 13:40:06 UTC by zafergurel (+18/−4) — feat(moqtail-ts): set early discard policy per subscription. Refines May 4 PR #184’s lib-wide setEarlyDiscardPolicy API to per-subscription scope.
      • PR #191 MERGED May 5 14:00:08 UTC by zafergurel (+51/−4, closes #156, co-authored by @thexeos) — fix(moqtail-ts): adds isValidTrackAlias validator. Fixes a BigInt-falsy bugif (!trackAlias) returns true for 0n, so the relay’s first-assigned trackAlias = 0 was treated as missing. Single canonical isValidTrackAlias type guard consolidates 3 prior inconsistent checks. First moqtail-ts merge with a non-maintainer co-author.
      • PR #156 CLOSED unmerged May 5 14:01:57 UTC (thexeos’s strict-undefined-check approach, superseded by zafergurel’s broader fix in #191 with attribution preserved).
      • PR #190 MERGED May 5 14:04:21 UTC by github-actions[bot] — [ci] release. Cuts next moqtail release line capturing #189 + #191.
      • PR #179 (davemevans Firefox docs) updated May 5 10:04 UTC — still open.
      • PRs 188 (sharmafb upstream-FETCH 3-PR series) — all 3 still open, no movement.
    • cloudflare/moq-rs: No new commits since Apr 13 (Day +23 fork quiet).
    • video-dev/moq-js: No new commits since Apr 16.
    • google/quiche (quiche/quic/moqt): No new commits since the May 5 01:02 UTC 1ceadc7 Vasiliev “Rewrite MOQT control message parser” — Day +1 of post-rewrite quiet.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqlivemock + warp-player: No new commits since the May 5 04:15 UTC v0.8.0 release.
    • Eyevinn/moqtransport: No new commits.
  • Mailing list:
    • “Knowing the start of a Subgroup” — 2 new May 5 messages, both from alan-frindell:
      • alan-frindell May 5 16:56 UTC (msg) — replies to Luke Curley’s May 4 b-frame use-case. “We’ve already been over this ground and I don’t see any need to revisit the size of the subgroup ID field.” Counter-frames prioritization argument: “Group IDs and Object IDs are varints and are also part of the priority scheme, so ‘we only have 1 byte for prioritization’ is already the wrong place to start from.” Concedes editorial gap on mixed subgroup/datagram priority specification but tags it as tertiary.
      • alan-frindell May 5 17:02 UTC (msg) — replies to a Cullen suggestion about addressing track/group/subgroup starts simultaneously. Splits the problem: group starts already solved (Object ID = 0 or Gap header); track starts non-trivial (publishers can lose state between instances, but “we’ve been at this four years and no one has needed it”); subgroup-ID priority overlap dismissed via Group/Object ID varint argument.
    • REWIND consensus: No chair-summary message. Cullen’s “Request Synchronization Use Case” thread (May 1) and Magnus Westerlund’s three May 4 framing messages remain unanswered for a 5th day.
  • IETF Datatracker: No new draft versions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 substantively ready in repo, still not on Datatracker), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9, despite Lite05 in moq-dev/moq PR #1374), nmsf-01 (Apr 7), qlog-moq-events-06 (Mar 16), media-interop-03 (expired Apr 23, no -04), subscribe-rewind-02.
  • Interop runner: 20 pass / 71 fail / 14 skip (105 tests, 2026-05-06 00:36 UTC report). Flat vs. May 5 00:37 UTC (also 20/71/14). Walking arc: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20 → 20. Two consecutive days at the Apr 17–21 floor reading. PR #1341 (moq-mux backport) merged May 6 01:20 UTC — after this run, so its effect could appear in May 7. Other moq-dev/moq merges are API/config/platform fixes (no wire-format changes), so wire interop should be preserved.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +5 since #1 publication.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues remain closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (top-level “May 5 06:00 UTC → May 6 06:00 UTC” section added), moq-dev.md (header bump + “May 5 → May 6” section: 7 PRs merged incl. PR #1341 moq-mux backport, PR #1307 Firefox fallback opened), moqtail.md (header bump + “May 5” section: PR #189 + #191 + #190 merged, PR #156 closed in favor of #191), interop-status.md (20/71/14 flat day note + post-PR-#145 narrative), interop-runner.md (May 6 row added + narrative paragraph), index.md (last_updated bump), log.md.

Key findings:

  • Luke’s biggest single-day merge run since Apr 29–30: 7 PRs merged on main, capped by the +2588/−3594 PR #1341 moq-mux backport. Despite being a backport, the merge net-deletes ~1000 lines because all per-codec feature gates evaporate and the dual OrderedConsumer/Consumer APIs collapse into a single Consumer<F: Container>. ksletmoe-aws’s #1359 (closed unmerged on May 4) effectively flowed back into the codebase through this dev-branch backport in a different shape — first time that pattern is visible in moq-dev/moq’s history.
  • moq-lite API tightening completes the post-Lite04 deprecation queue: PR #1378 (+295/−240) drops every deprecated method accumulated since Lite03, makes ALPN_* / MAX_HOPS / coding module crate-private, and re-exports the minimum-viable error types from the crate root. Combined with PR #1380 (Origin API renames) and PR #1356 (insert_track takes TrackConsumer), the moq-lite public API is now in its cleanest pre-Lite05 state. The next merge can be PR #1374 (Lite05 DATAGRAMS) without dragging deprecated naming forward.
  • Firefox compatibility front opens via PR #1307: Firefox’s WebTransport doesn’t expose an ALPN selection API, so it has been stuck on Lite02 for the post-Lite03 era. PR #1307 extends the legacy SETUP path (bare moql ALPN) to advertise every supported moq-lite version in the draft-14 SETUP versions list. First moq-dev/moq PR addressing a known browser-platform compatibility gap that doesn’t require browser-vendor changes.
  • afrind closes the door on Subgroup-ID/varint reopening: Two replies in 6 minutes turn back both fronts of Mo Zanaty’s May 4 04:24 UTC varint-vs-fixed-width audit call. Combined with Ian Swett’s May 3 22:38 UTC FIRST_OBJECT-bit decision, the editorial direction is clear: subgroup-design topics are closed for draft -18; reopening would need fresh on-list advocacy. Notable specific framing: “we’ve been at this four years and no one has needed it” on Track-start markers — a strong “demonstrated need only” stance from the editor.
  • Luke (kixelated) opens new LOC architectural front via Issue #19: Argues LOC needs its own version/encoding contract for private properties rather than implicitly inheriting moq-transport’s wire version — particularly because the publisher/subscriber pair may not even agree on the wire-version when a relay bridges them. Conceptually adjacent to the existing #1550 (Properties Type collision moq-16 ↔ loc-01) but at a deeper layer. First LOC issue from the moq-dev/moq maintainer in a multi-week window.
  • moqtail-ts polish + first non-maintainer co-author: PR #191 (isValidTrackAlias) absorbs thexeos’s PR #156 (strict-undefined-check approach), preserving credit via Co-Authored-By. Establishes a template for the moqtail maintainer team to merge externally-proposed-but-broader-fix-warranted PRs: replace with the broader fix, close the original PR, credit the original author. Useful pattern as moqtail’s contributor base widens (sharmafb’s 3-PR upstream-FETCH series is the next contributor-led thread to watch).
  • Interop runner two consecutive days at floor: 20/71/14 unchanged. The post-moqtail-PR-#145 image-rebuild state appears to be the new normal until pair-level fixes land. Today’s seven moq-dev/moq merges are non-wire (API, config, DNS, OG image), so no further matrix shift expected on those rebuilds. PR #1341 (moq-mux backport) merged 44 minutes after the May 6 00:36 UTC report — its effect would appear in May 7.

2026-05-05 — moqtail draft-16 umbrella merges; moq-lite Lite05 opens; interop major regression

TL;DR:

  • moqtail PR #145 (umbrella draft-16) finally MERGED into main after being open since Mar 6 — 216 files, +17,114/−11,744. PR #182 (drop draft-14 docs) merges 49 min later — moqtail is now a single-draft (draft-16) project. Mailing list “Knowing the start of a Subgroup” thread surfaces 3 implementer voices asking “why >256 subgroups?”; Magnus Westerlund returns to list with 3 messages reframing request-sync as problem-solving and pointing at London.
  • Implementations: moqtail PR #145 MERGED (+17,114/−11,744 across 216 files); PR 184 MERGED; sharmafb opens 3-PR upstream-FETCH series 188 (+240/−14). moq-dev/moq Luke OPENS PR #1374 introducing Lite05 wire version (ALPN moq-lite-05, +1615/−7 across 21 files, new DATAGRAMS control stream + QUIC datagram delivery). google/quiche +1 moqt commit (Vasiliev: rewrite control message parser) — first since Apr 22. Eyevinn moqlivemock + warp-player coordinated v0.8.0 (HEVC LOC, WebCodecs LOC, namespace filtering, Safari wt.closed fix). cloudflare/moq-rs Day +22 quiet, video-dev/moq-js, birneee/quiche_moq quiet.
  • Interop: 20/71/14 — −4 pass / +4 fail vs May 4 (24/67/14). Largest single-day regression since Apr 17 floor. Most plausible cause: moqtail-relay image rebuild after PR #145 wholesale draft-14→draft-16 migration.

Operation: Update Sources:

  • Slack: #moq (broke 7-day silence) — yuyou May 4 08:47 CEST (London June interim venue question), Martin Duke May 4 16:19 CEST (“yes”), torbjorn-einarsson May 5 06:43 CEST announces moqlivemock + warp-player MSF/LOC/WebCodecs/moq-mi update with demo URL https://moqlivemock.demo.osaas.io. #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport: No new commits, no new PRs opened, no merges in May 4 06:00 UTC → May 5 06:00 UTC window. Open PRs unchanged: #1627, #1604, #1617, #1615, #1625, #1607, #1544, #1623, #1618, #1621, #1591, #1605, #1378, #1613.
    • moq-wg/secure-objects: No new activity since May 1 wave. Open PRs remain #83, #84, #85.
    • moq-wg/msf, loc, cmsf, catalog-format, privacy-pass: No new activity.
  • GitHub implementations:
    • moq-dev/moq (Lite05 day):
      • PR #1374 OPENED May 4 22:57:32 UTC by luke-curleymoq-lite: add DATAGRAMS control stream + QUIC datagram delivery (Lite05) (+1615/−7 across 21 files, both Rust + TS). New wire version Lite05 / DRAFT_05, ALPN moq-lite-05, code 0xff0dad05. New DATAGRAMS bidi control stream 0x6 parallel to SUBSCRIBE sharing subscribe_id namespace. QUIC datagram body: subscribe_id (i) | sequence (i) | payload (b), payload capped at 1200B. 33ms publisher-side cache with per-subscriber max_latency filter. Public API: TrackProducer.write_datagram / append_datagram, TrackConsumer.subscribe_datagramsDatagramsConsumer. JS: Track.writeDatagram / appendDatagram / recvDatagram / skipDatagramsToLatest. Spec draft section + Lite05 changelog entry live in the separate moq-wg/moq-drafts repo (not the source-code monorepo). 17 new Rust tests, 12 new TS tests; manual relay round-trip + Lite04↔Lite05 cross-version sanity still pending. Body marked ”🤖 Generated with Claude Code”.
      • PR #1359 CLOSED unmerged May 4 21:25 UTC — ksletmoe-aws’s unify Consumer across container formats did not land in the form opened (~+1002/−1173 across 14 files).
      • PR #1356 updated May 4 23:10 UTC by luke-curleymoq-lite: switch insert_track to take TrackConsumer (+39/−93). Removes TrackConsumer::produce() from #1300; adds TrackConsumer::weak().
      • PR #1373 updated May 4 22:25 UTC by skirsten — playback stalls / frame-rate beating fix (still open, follow-up to PR #1367).
      • PR #1341 updated May 4 22:24 UTC by luke-curley — fMP4 / CMAF passthrough refactor (+3808/−2025 across 79 files; module reorg moq_mux::importmoq_mux::producer, removed feature gates, base64 ftyp+moov in catalog).
      • PR #1338 updated May 4 21:47 UTC — chore: release (moq-bot staging release).
    • moqtail/moqtail (umbrella merge day):
      • PR #145 MERGED May 4 19:23:22 UTC by zafergurelfeat: draft-16 compatibility (+17,114/−11,744 across 216 files). Body: “Here is a substantial PR thanks to the huge difference between draft-14 and draft-16.” New ALPN-based ClientSetup/ServerSetup negotiation (#132). Two new demo apps: apps/client-js (browser subscriber) + apps/meet (WebRTC-over-MoQ video conferencing). Renamed request_idmax_request_id (#146). MessageParameter typed parameters (#153). Track Extensions + Object Extensions (#155). Unified request ID registry (#163).
      • PR #181 MERGED May 4 19:39:57 UTC by zafergurel — refactor: clean up object status values (closes Issue #117).
      • PR #182 MERGED May 4 20:12:09 UTC by zafergurel — docs: remove draft 14 texts. moqtail formally drops draft-14 documentation ~30 minutes after umbrella draft-16 lands.
      • PR #184 MERGED May 4 21:21:20 UTC by zafergurel — feat: add setEarlyDiscardPolicy to moqtail-ts API (+85/−38). New developer-facing API to cancel slow subgroup streams after configurable timeout.
      • README updated May 4 20:27 UTC by Ali C. Begen (1d39865) — first co-maintainer commit on main in this window.
      • CI release commits (#173, #183, #185) bumped versions on main.
      • PR #186 OPENED May 4 21:37:33 UTC by sharmafb (Aman Sharma) — [upstream fetches] Add command-line args for FETCH upstream timeout and gap limit [1/n] (+15/0).
      • PR #187 OPENED May 5 02:35:51 UTC by sharmafb[upstream fetches] Plumbing to forward FETCH data received from upstream [2/n] (+71/−6).
      • PR #188 OPENED May 5 02:50:23 UTC by sharmafb[upstream fetches] Function to send upstream fetch [3/n] (+154/−8).
    • google/quiche (quiche/quic/moqt): First commit since Apr 22 (Day +13 quiet ended) — 1ceadc7 May 5 01:02:22 UTC “Rewrite MOQT control message parser” by Vasiliev.
    • cloudflare/moq-rs: No new commits since Apr 13 (Day +22 of upstream-fork quiet).
    • video-dev/moq-js: No new commits since Apr 16.
    • birneee/quiche_moq: No new commits since Mar 13.
    • Eyevinn/moqlivemock (v0.8.0 release): d174037 May 5 03:59 UTC chore: bump version to 0.8.0; 77d67b0 May 3 22:13 UTC feat(catalog): expose accurate per-packaging bitrate; 2d08ea1 May 3 21:20 UTC feat(loc): add HEVC support for LOC packaging (closes Issue #23 via PR #76).
    • Eyevinn/warp-player (v0.8.0 release): 05ded99 May 5 04:15 UTC chore: bump version to 0.8.0; 421e8da May 5 03:54 UTC docs: cover MSF catalog and WebCodecs LOC pipeline in README and CLAUDE.md; 48378e9 May 3 21:32 UTC feat(loc): add HEVC support to WebCodecs LOC pipeline; f154020 May 3 20:56 UTC fix(transport): handle wt.closed rejection so Safari doesn’t flag it; 95a653d May 3 20:36 UTC feat(ui): add engine legend, mute toggle, and namespace filtering.
  • Mailing list:
    • “Knowing the start of a Subgroup” thread — 4 new May 4 messages:
      • ian-swett May 4 16:56 UTC (msg) — replies to Mo Zanaty: limiting Subgroup ID to single byte is “a very appealing change”, but flags trade-off (256-Object/Group cap when doing Object-per-Subgroup without datagrams). References Issue #1405. Reiterates concern about Subgroup ID + Priority overlap as prioritization mechanisms.
      • mo-zanaty May 4 17:36 UTC (msg) — proposes single-object stream workaround (multiple objects with id=0 + reset) plus a specialized header format for single-object streams resembling datagrams. “If stream-per-object can be done without consuming many Subgroup IDs, a single byte for Subgroup ID would suffice.”
      • suhas-nandakumar May 4 17:40 UTC (msg) — “Is there a use-case where we need more than 256 subgroups and needs to be considered for prioritization? I cannot think of one but appreciate inputs from others.”
      • luke-curley May 4 20:00 UTC (msg) — “What are the use-cases for a sub-group per object/datagram? I think for media, it would be sending each b-frame as a separate sub-group.”
    • “Request Synchronization Use Case” thread — 3 new May 4 messages:
      • magnus-westerlund May 4 10:04 UTC (msg) — replies to Cullen’s May 1 framing. Clarifies WG poll was about whether request synchronization needed resolution in draft-18, with intent to defer to London. “The discussion also indicated that there are some different views on why a request synchronization mechanism is needed.” Proposes two paths: state explicitly that capability remains, or retain required_request_id in -18 with notes documenting issues. Frames as problem-solving, not removal of consensus.
      • magnus-westerlund May 4 10:15 UTC (msg) — asks Cullen to detail three scenarios: Swap Tracks (REQUEST_UPDATE forward-flag vs new subscriptions), Client Side ABR (REQUEST_UPDATE / new subscriptions / SWITCH), Pause/Unpause (questions whether reorder-via-REQUEST_UPDATE is achievable; “requests will be delivered and processed in the order transmitted”).
      • luke-curley May 4 17:10 UTC (msg) — identifies deadlock concern with draft-17 required_request_id: “if either side RESETs a request, it can cause a deadlock. The peer may never learn about a specific request_id referenced via a required_request_id so it will block.” Says the issue is “addressable”.
    • “Re: Minutes from Interim meeting 27 of April 2026”magnus-westerlund May 4 07:59 UTC (msg) — responds to Cullen on minutes quality. “For keeping the arguments more easily available we should in fact have more discussion over email as there the full argumentation would be available in the mail archive.”
  • IETF Datatracker: No new draft versions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 substantively ready in repo, still not on Datatracker), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9, despite Lite05 introduction in moq-dev/moq PR #1374), nmsf-01 (Apr 7).
  • Interop runner: 20 pass / 71 fail / 14 skip (105 tests, 2026-05-05 00:37 UTC report). −4 pass / +4 fail vs May 4 00:38 UTC’s 24/67/14. Largest single-day regression since Apr 17 floor (also 20). Walking arc: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24 → 20. Most plausible cause: moqtail PR #145 merged into main May 4 19:23 UTC — image rebuilds for moqtail-relay and moq-dev-rs / moq-dev-js likely flipping multiple pairs to fail.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +4 since #1 publication.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues remain closed: #1, #2, #3.)

Pages updated: discussions-2026-05.md (top-level “May 4 06:00 UTC → May 5 06:00 UTC” section added covering moqtail umbrella merge + Lite05 + mailing list + Slack + Eyevinn v0.8.0 + interop regression), moqtail.md (header + new “May 4” section: PR #145 merged, draft-14 docs removed, setEarlyDiscardPolicy, sharmafb upstream-FETCH 3-PR series), moq-dev.md (header + new “May 4 → May 5” section: PR #1374 Lite05, PR #1359 closed, PR 1341 updated), moqlivemock.md (header bump to v0.8.0, packaging formats now CMSF/LOC/MSF/moq-mi, both moqlivemock and warp-player at v0.8.0), moq-lite.md (Lite05 banner added at top), interop-status.md (20/71/14, regression note), interop-runner.md (May 5 row added, narrative paragraph appended), index.md (last_updated bump), log.md.

Key findings:

  • moqtail’s 2-month draft-16 migration completes: PR #145 (umbrella draft-16) was opened Mar 6 and merged May 4 19:23 UTC after 29 commits and 216 files of churn. Combined with PR #182 (remove draft-14 docs) merged 49 minutes later, moqtail is now a single-draft (draft-16) project on main. This is the largest moqtail merge in the project’s history. Concurrently, the team has already started building draft-16-specific features on top — sharmafb’s 3-PR upstream-FETCH series and zafergurel’s setEarlyDiscardPolicy API both opened/merged the same day.
  • moq-lite Lite05 wire-version increment: Luke’s PR #1374 adds the first wire-version increment in moq-lite since Lite04 was the baseline. The DATAGRAMS control stream + QUIC datagram body design intentionally encodes a sequence field that Lite05 doesn’t use — “so a future moq-transport adapter can reuse the same encoding.” This is forward-looking spec engineering: the unreliable delivery design is being defined in moq-lite first, with a clear extension hook for adoption into moq-transport later. Notable that the spec text lives in moq-wg/moq-drafts (a separate repo) rather than being merged into draft-lcurley-moq-lite-05 on Datatracker — suggests a different publication cadence.
  • Magnus Westerlund returns to the list with substance: Three messages in a single day (Apr 27 interim minutes, Cullen’s request-sync framing × 2). His framing on request-synchronization explicitly resists Cullen’s “removal of consensus” reading — “problem-solving”. Asks Cullen to detail three concrete scenarios (Swap Tracks / Client Side ABR / Pause/Unpause). London (June 9–12) appears now firmly framed as the venue where this gets resolved, with the mailing list as the primary preparation surface — Magnus explicitly: “we should in fact have more discussion over email as there the full argumentation would be available in the mail archive.”
  • Subgroup-ID-as-single-byte gains traction: The May 4 thread surfaces 3 implementer voices (Ian Swett, Suhas Nandakumar, Luke Curley) asking the same question — “why do we need >256 subgroups?” — with no use case offered. Mo Zanaty’s varint-vs-fixed-width audit thread (opened May 4 04:24 UTC) is now feeding directly into PR-shaped change proposals. Likely London agenda item.
  • Interop runner regression coincides with moqtail umbrella merge: 24 → 20 pass / 67 → 71 fail. The proximate cause is most likely the moqtail-relay image rebuild after PR #145 — the wholesale draft-14→draft-16 migration would change wire-level behavior on every moqtail × {moq-dev, moq-rs, moqx, moxygen, …} pair. Pair-level diff inspection warranted to confirm. moq-dev/moq PR #1374 (Lite05) was opened May 4 22:57 UTC and is not yet merged, so the May 5 regression cannot be attributed to it.
  • Eyevinn coordinated v0.8.0 release: Both moqlivemock and warp-player bumped to v0.8.0 May 4–5, with HEVC for LOC, WebCodecs LOC pipeline, accurate per-packaging bitrate in catalog, namespace filtering UI, mute toggle, and a Safari wt.closed rejection fix. Tobbe’s Slack announcement makes this the most expansive Eyevinn-side release of the cycle: now spans CMSF + LOC + MSF + moq-mi, and exercises both MSE and WebCodecs rendering paths.

2026-05-04 — ianswett opens competing-design Issue #1627 to martinduke’s PR #1604

TL;DR:

  • ianswett opens Issue #1627 (“SUBSCRIBE with Joining Fetch”) as a competing-design alternative to martinduke’s PR #1604; fixes the same four issues (#1039/#1313/#1602/#1612) by adding two new modes to SUBSCRIBE instead of carrying Joining FETCH on the SUBSCRIBE stream. Mailing list reignites — ianswett announces decision to proceed with FIRST_OBJECT bit (PR #1618), backing the May 1 PR #1608 closure on-list; Mo Zanaty broadens scope by calling for varint-vs-fixed-width audit (“Subgroup ID could be a single byte”). Weekly GitHub digest sent May 3.
  • Implementations: moq-dev/moq PR #1373 OPENED by skirsten (@moq/watch playback stall + frame-rate beating fix, closes #1367) supersedes skirsten’s own PR #1367 two days after opening; PR #1359 (ksletmoe-aws Consumer unify) revised. moqtail PR #145 (umbrella draft-16) gets 3 commits (two race-condition fixes bracketing a logging refactor). cloudflare/moq-rs Day +21 fork quiet; google/quiche moqt Day +12; video-dev/moq-js, birneee/quiche_moq quiet.
  • Interop: 24/67/14 — flat vs May 3 (post-revert run shows net-zero matrix change).

Operation: Update Sources:

  • Slack: #moq — no new posts since Apr 27 18:50 CEST (Day +7). #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport:
      • Issue #1627 OPENED May 3 07:40:15 UTC by ian-swett“SUBSCRIBE with Joining Fetch”. Body: “A different take on #1604 that adds two new modes to SUBSCRIBE instead of allowing Joining FETCH to be sent on the SUBSCRIBE stream.” Notes: removable Request ID once #1615 lands; needs text on FETCH_HEADER stream behavior on Subscription cancel; needs prioritization clarification. Fixes #1039, #1313, #1602, #1612 — same four-issue closure target as martin-duke’s PR #1604, framed as a competing simpler design.
      • PR #1604 (Joining FETCH with subscription) — comments by ianswett May 3 06:39 + 06:42 UTC. First comment replies to gwendalsimon’s Apr 16 SWITCH-relay-proactive-FETCH framing: “This conversation makes me think using a single message would be better.” Second on prioritization concern: “I don’t think there’s a compelling use case for updating the priority separately. You’re issuing a message to Join a Track.” Both ~1 hour before opening Issue #1627.
      • No new commits or merged PRs in the May 3 06:00 → May 4 06:00 UTC window.
    • moq-wg/secure-objects: No new activity since May 1 editorial wave. Open PRs remain #83 (SFRAME RFC ref), #84 (test vectors), #85 (en-dash fix).
    • moq-wg/msf, loc, cmsf, catalog-format, privacy-pass: No new activity.
  • GitHub implementations:
    • moq-dev/moq:
      • PR #1373 OPENED May 3 16:53:49 UTC by skirsten (+146/−144 across 6 files, @moq/watch: fix playback stalls and frame-rate beating, closes #1367). Body terse: “Detailed description of both fixes is in the commits.” Same author as the May 1 PR #1367 (pull-mode renderer for 144Hz+ Chrome) — effectively a rewrite that supersedes #1367. coderabbitai bot review (May 3 17:02): “No actionable comments were generated.” skirsten now has 4 PRs in the May 1–3 window (#1349 + #1365 merged; #1367 + #1373 open with #1373 superseding).
      • PR #1359 revised May 3 04:30 UTC by ksletmoe-aws — now +1002/−1173 across 14 files (vs. earlier reading). Author summary: “Replace the two separate consumer implementations (Legacy and CMAF) with a single generic Consumer class that accepts a ContainerFormat strategy for frame parsing. This mirrors the Rust moq-mux Consumer<F: Container> pattern… Additionally, add a sequential delivery mode flag to fix audio stuttering caused by inter-group serialization.” Presumably addresses Luke’s May 2 nits about Frame/DecodedFrame reuse and avoiding Legacy.LegacyFormat.
      • No merges in window. Open: PR #1370 (metapox), #1371 (Luke), #1367 (skirsten), #1373 (skirsten), #1359 (ksletmoe-aws), #1362 (Qizot), 1341 (Luke).
    • moqtail/moqtail:
      • PR #145 (DRAFT: draft-16) updated with 3 new commits May 3:
        • 6f79910 18:10 UTC fix: fixes a race condition
        • ee9f7e0 19:02 UTC refactor: proper logging for moqtail-ts
        • ad78f25 23:39 UTC fix: fixes a race condition Now at 29 commits, +17187/−11733, 240 files vs. main. Two race-condition fixes ~5.5 hours apart bracket the logging refactor. Still not landed on main.
    • cloudflare/moq-rs: No new commits since Apr 13 (Day +21 of upstream-fork quiet).
    • video-dev/moq-js: No new commits since Apr 16.
    • google/quiche (quiche/quic/moqt): No new commits since Apr 22 (Day +12).
    • birneee/quiche_moq: No new commits since Mar 13.
  • Mailing list:
    • ian-swett May 3 22:38 UTC (msg) “Re: Knowing the start of a Subgroup” — thanks Mo Zanaty, announces decision to proceed with the bitfield approach (FIRST_OBJECT bit, PR #1618). Reservation: “having both Subgroup ID and Priority serve as methods for prioritizing objects within a group” — Subgroup ID creates a much larger namespace than the agreed single-byte priority. Effectively closes the design dispute on-list.
    • mo-zanaty May 4 04:24 UTC (msg) “Re: Knowing the start of a Subgroup” — replies broadening the topic: proposes reconsidering varints across the spec (“Subgroup ID could be a single byte”), recommends a broader review of all variable-length integer fields to determine whether they genuinely require varint encoding. First explicit on-list call for a varint-vs-fixed-width audit.
    • Repository Activity Summary Bot May 3 (msg) — weekly GitHub digest. moq-transport: “3 new issues, 12 issues received 15 comments, 14 issues closed, 10 PRs.” Notable: PR #1625 (Magnus Security), PR #1615 (Remove RRID, “Merge Ready”), PR #1608 (6 comments), PR #1607 (Largest Available Group filter). For warp-streaming-format: “2 PRs incl. SCTE-35 + CEA-608/708 accessibility fields and initial zapping specifications” — first wiki-visible mention of warp-streaming-format SCTE-35/CC PR work.
    • REWIND consensus: Day +3 since May 1 deadline without chair-summary message. Cullen’s “Request Synchronization Use Case” thread (May 1) still no replies.
  • IETF Datatracker: No new draft versions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 substantively ready but not yet published despite the May 1 merge wave), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9), nmsf-01 (Apr 7).
  • Interop runner: 24 pass / 67 fail / 14 skip (105 tests, 2026-05-04 00:38 UTC report). Flat vs. May 3 00:38 UTC (also 24/67/14). Walking arc since Apr 17 floor: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24 → 24. The May 2 21:18 UTC PR #1372 revert (Luke pulling fetch_group + Subscription API) presumably reached this run, so any restoration-effect is already baked in.
  • MoQ Monthly: No new issue. Archive remains #0 (Mar 3) + #1 (Apr 30 / May 1). Day +3 since #1 publication.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (top-level “May 3 06:00 UTC → May 4 06:00 UTC” section added), moq-dev.md (May 3 → May 4 section: PR #1373 opened superseding #1367, PR #1359 revised), moqtail.md (PR #145 commit log extended), interop-status.md (24/67/14, flat day note), interop-runner.md (history table extended), index.md (last_updated bump), log.md.

Key findings:

  • Joining FETCH redesign now has two competing live proposals in the moq-transport repo: Martin Duke’s PR #1604 (carry Joining FETCH on the SUBSCRIBE stream) vs. Ian Swett’s brand-new Issue #1627 (collapse Joining FETCH into new SUBSCRIBE modes). Both target the same four issues (#1039 / #1313 / #1602 / #1612). Issue #1627 was opened ~1 hour after Ian’s “single message would be better” comment on PR #1604, making it explicit that he wants the alternative shape considered. Resolution will likely surface in London hybrid-interim agenda.
  • Subgroup-start design is on-list-confirmed: Ian Swett’s May 3 22:38 UTC message converts the May 1 PR #1608 closure into an on-list direction statement — FIRST_OBJECT bit (PR #1618) is the WG path forward. That removes ambiguity from the closed dispute.
  • Mo Zanaty has opened a new design front: a broader varint vs. fixed-width audit. This is the first time the spec’s encoding-class choices have been challenged as a design topic on-list, separate from any specific message. Could be picked up at London if anyone champions it.
  • moq-dev/moq external-contributor velocity: skirsten alone has 4 PRs in 3 days (#1349 catalog merged, #1365 AudioContext merged, #1367 pull-mode + #1373 superseding-fix open). ksletmoe-aws is now in active revision turn-around. metapox has the open PriorityQueue bug-with-fix-offer (#1370). Luke’s repo has clearly transitioned from solo-development to multi-contributor activity in the post-NAB window.
  • Interop runner flat-day: the May 2 PR #1372 revert (Luke removing the partial fetch_group / Subscription API merged Apr 30) didn’t move the matrix needle — net zero from May 3 to May 4. The walking arc has stabilized at 24 pass for 2 consecutive days, with one excursion to 25 on May 2.
  • Slack signal-to-noise: 7 days of silence on #moq after the Apr 27 interim. The mailing list and GitHub are the only active surfaces — Slack as a coordination channel is absent post-interim.

2026-05-03 — Luke reverts the FETCH-path API; metapox files first fix-with-PR

TL;DR:

  • Luke reverts PR #1357 (fetch_group + TrackDynamic) and PR #1348 via PR #1372“FETCH isn’t hooked up yet, the breaking API change isn’t worth it; the API also wasn’t quite right.” Three days after PR #1357 was framed as the first track-level FETCH path API. moq-transport quiet (no new PRs/commits); REWIND consensus chair-summary message still absent (Day +2 since deadline); MoQ Monthly archive shows #1 dated Apr 30 not May 1 (minor adjustment).
  • Implementations: moq-dev/moq PR #1372 MERGED (revert); PR #1371 OPENED by Luke (hang cross-broadcast track refs, +PathRelative type); metapox OPENS PR #1370 (PriorityQueue not updating in-flight groups on SUBSCRIBE_UPDATE) — detailed bug report citing draft-13 §6.1 with working fix in their fork (camera-focus switch latency) and offer to submit. PR #1369 (sidsethupathi moq-gst EOS) MERGED. moqtail PR #180 (separate stream for SUBSCRIBE_NAMESPACE, +1150/−488) MERGED into draft-16 branch ~10 hours BEFORE moq-transport PR #1542 itself merged. cloudflare/moq-rs, video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 24/67/14 — first regression after 4-day +1/day recovery streak (−1 pass / +1 fail vs May 2’s 25/66/14).

Operation: Update Sources:

  • Slack: #moq — no new posts since Apr 27 18:50 CEST. #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport: No new commits or PRs in the May 2 → May 3 06:00 UTC window. Issue #1313 (ianswett “Joining FETCH as a separate control message creates edge cases and feature gaps”) got a comment May 3 06:00 UTC.
    • moq-wg/secure-objects: No new activity. Open PRs remain #83 (SFRAME RFC ref), #84 (test vectors), #85 (en-dash fix) — all editorial polish.
    • moq-wg/msf, loc, cmsf, catalog-format, privacy-pass: No new activity.
  • GitHub implementations:
    • moq-dev/moq (busy day):
      • PR #1372 MERGED May 2 21:18:50 UTC by luke-curleyRevert moq-lite FETCH/Subscription API changes. Reverts PR #1357 (fetch_group + TrackDynamic, merged Apr 30 00:01 UTC) and PR #1348 (Subscription model API for FETCH readiness). Body: “FETCH isn’t hooked up yet, so the breaking API change isn’t worth it; the API also wasn’t quite right.” Hop-based clustering (PR #1322) and per-frame buffer changes (PR #1353) preserved. Notable U-turn — PR #1357 was just three days old and described as “first track-level FETCH path API” in the Apr 30 wiki entry.
      • PR #1371 OPENED May 2 20:28:59 UTC by luke-curleyhang: cross-broadcast track references in renditions. New PathRelative type + Path::resolve in moq-lite Rust + mirror resolveBroadcast for @moq/hang. Lets a downstream catalog reference tracks in another broadcast without republishing bytes. Body explicitly notes ”🤖 Generated with Claude Code”.
      • PR #1370 OPENED May 2 15:28:56 UTC by metapoxfix(lite): PriorityQueue does not update in-flight groups on SUBSCRIBE_UPDATE. Detailed bug report citing draft-ietf-moq-transport-13 §6.1: “When subscriber priority is changed, a best effort SHOULD be made to apply the change to all objects that have not been sent.” PriorityQueue::insert() copies the track value at insertion time; SUBSCRIBE_UPDATE doesn’t refresh in-flight groups. Real-world impact: “Switching camera focus via SUBSCRIBE_UPDATE takes several seconds because old groups from the previously-focused camera continue to be served at high priority.” Proposed fix: subscription_id on PriorityItem, update_subscription() API, wider quinn priority spread index * 64, priority-aware write_all via tokio::select! with priority.next(). metapox: “We have a working implementation in our fork and can submit a PR if interested.” References Issues #699 (priority tie-breaking) + #1363 (own JS SUBSCRIBE_UPDATE issue from Apr 30). First substantive bug-report-with-fix-offer from metapox.
      • PR #1369 MERGED May 2 14:53:33 UTC by luke-curley (sidsethupathi author, +39/−2, moq-gst: fix moqsink eos). Lands ~11.5 hours after open. sidsethupathi’s second merged PR after #1294 (Apr 12).
    • moqtail/moqtail:
      • PR #180 MERGED May 1 12:45:51 UTC by zafergurel (+1150/−488, feat: separate stream for subscribe_namespace) into the draft-16 branch. Reviewer: DenizUgur. moqtail merged the impl-side SUBSCRIBE_NAMESPACE/SUBSCRIBE_TRACKS split design ~10 hours BEFORE moq-transport PR #1542 itself merged May 1 22:59 UTC. Still on draft-16 branch (PR #145 umbrella tracker still not landed on main).
    • cloudflare/moq-rs: No new commits since Apr 13.
    • video-dev/moq-js: Quiet since Apr 21.
    • google/quiche (quiche/quic/moqt): No new commits since Apr 22.
    • birneee/quiche_moq: No new commits since Mar 13.
  • Mailing list: No new on-list messages May 2-3 visible. Cullen’s “Request Synchronization Use Case” thread (May 1) has had no replies. The “Knowing the start of a Subgroup” thread is quiet. The REWIND consensus deadline message-of-record from a chair has still not appeared on the list as of May 3 06:00 UTC.
  • IETF Datatracker: No new draft versions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 substantively ready but not yet published), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9), nmsf-01 (Apr 7).
  • Interop runner: 24 pass / 67 fail / 14 skip (105 tests, 2026-05-03 00:38 UTC report). First regression after 4-day +1/day recovery streak: −1 pass / +1 fail vs May 2’s 25/66/14. Walking arc since the Apr 17 floor: 18 → 18 → 18 → 20 → 22 → 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23 → 23 → 24 → 25 → 24. Most plausible cause: a moqtail draft-16 branch image rebuild after PR #180 merged.
  • MoQ Monthly: Archive page now shows #1 (“NAB, interoperability, and a whole lot of catching up”) dated April 30 rather than May 1. The publish email may have arrived May 1 but the archive entry is dated Apr 30 — minor cleanup vs May 2 wiki entry.
  • tobbee/moq-llm-wiki: No new open issues. (3 issues all closed: #1 OpenMOQ, #2 broken interop-runner links, #3 factual corrections.)

Pages updated: discussions-2026-05.md (top-level “May 2 → May 3” section added), moq-dev.md (May 2 → May 3 section: PRs #1369 merged, 1371 opened, #1372 merged-as-revert), moqtail.md (PR #180 status updated to MERGED), interop-status.md (24/67/14), interop-runner.md (history table extended + May 3 narrative), index.md (last_updated bump), log.md.

Key findings:

  • moq-dev/moq: Luke’s PR #1372 reverts PR #1357 (fetch_group + TrackDynamic) just three days after merging it, with the candid rationale that “FETCH isn’t hooked up yet, the breaking API change isn’t worth it; the API also wasn’t quite right”. The Apr 30 wiki entry framed PR #1357 as the “first track-level FETCH path API” — that framing is now stale; track-level FETCH path remains unimplemented in moq-dev/moq.
  • metapox PR #1370 is the most concrete external-contributor bug report on moq-dev/moq to date: cites the draft normatively, has a working fix, identifies a real user-visible regression (camera-focus switching takes seconds under bandwidth pressure), and offers to submit. Tracks Issue #699 (priority tie-breaking) which has been open since 2025.
  • moqtail PR #180 lands the SUBSCRIBE_NAMESPACE / SUBSCRIBE_TRACKS split design before the corresponding moq-transport PR #1542 merged. moqtail’s draft-16 branch is now ahead of the moq-transport main on this design point.
  • Interop runner regression breaks the 4-day +1/day recovery streak. The May 2 21:18 UTC PR #1372 (Luke’s revert) happened after the May 3 00:38 UTC report, so its effect — possibly partially restoring functionality that broke when PR #1357 landed — would only show up in May 4’s run.
  • Mailing list silence on REWIND consensus continues. Day +2 since the May 1 deadline without a chair-summary message; Cullen’s framing (option-#1, willing to “punt to London”) remains the only on-list interpretation.

2026-05-02 — PR #1542 NAMESPACE split MERGED; secure-objects wave concludes; MoQ Monthly #1

TL;DR:

  • PR #1542 (SUBSCRIBE_NAMESPACE/SUBSCRIBE_TRACKS split) MERGED — most structural moq-transport merge of the post-interim wave; closes Issue #1458. New Issue #1626 (sharmafb, QMUX version negotiation) — afrind: “TLS ALPN moqt-18 implies qmux-01” (first concrete framing for draft-18). PR #1608 formally CLOSED in favor of #1618. REWIND consensus call deadline reached without chair-summary message; Cullen opens “Request Synchronization Use Case” thread (3 use cases — track swap, ABR, pause/unpause), willing to “punt to London”.
  • MoQ Monthly #1 PUBLISHED May 1 by Mike English — first since #0 (Mar 4); names draft-18 as next interop target, calls Safari 26.4 → WebTransport Baseline, explicitly cites this wiki (tobbee.github.io/moq-llm-wiki/) and Tobbe’s moqlivemock update.
  • Implementations: secure-objects editorial wave concludes May 1 — PRs #82 (padding, fixes #54), #77 (threat model, fixes #49), #86 (fan-out, fixes #49) all MERGED. moq-dev/moq quiet day for Luke (PR #1366 flake bump, PR #1368 doc-note merged) but two new contributor PRs OPENED — skirsten PR #1367 (pull-mode renderer for 144Hz+ Chrome) + sidsethupathi PR #1369 (moqsink EOS fix, second sidsethupathi PR). moqtail, cloudflare/moq-rs, video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 25/66/14 (+1 vs May 1) — recovery now +1/day for 4 consecutive days.

Operation: Update Sources:

  • Slack: #moq — no new posts since Apr 27 18:50 CEST. #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport:
      • PR #1542 MERGED May 1 22:59:13 UTC by alan-frindell (+215/−135, Split SUBSCRIBE_NAMESPACE into SUBSCRIBE_NAMESPACE and SUBSCRIBE_TRACKS). Replaces single SUBSCRIBE_NAMESPACE (0x11) with SUBSCRIBE_NAMESPACE (0x50) for namespace discovery + SUBSCRIBE_TRACKS (0x51) for track subscriptions; removes SUBSCRIBE_NAMESPACE_OPTIONS + BOTH mode; adds TRACK_NAMESPACE_PREFIX (0x34) for prefix changes via REQUEST_UPDATE. Approvals: ianswett (Mar 9), vasilvv (Apr 27), suhasHere (final May 1 18:32:48 UTC on commit 4aa849a). Closes Issue #1458 — one of the longest-standing draft-17 design splits. moqtail PR #180 (zafergurel) had already been opened against the post-Apr-29 split design.
      • Issue #1626 OPENED May 1 23:50:05 UTC by sharmafb (Suhas Sathyanarayana): “Version negotiation for QMUX” — body: “We have an idea of how version negotiation works for MoQ-over-HTTP/3 and how it works for MoQ-over-QUIC, but do we know how it’s going to work for MoQ-over-QMUX?” afrind reply May 2 02:19:30 UTC: “We discussed quite a bit last IETF. The plan is to say something like TLS ALPN moqt-18 implies qmux-01”. First explicit statement of the QMUX/transport ALPN coupling for draft-18.
      • PR #1608 formally CLOSED May 1 18:35 UTC by alan-frindell (“Closing in favor of 1618”) — confirms FIRST_OBJECT bit (PR #1618) as the WG-adopted answer to “Knowing the start of a Subgroup”.
    • moq-wg/secure-objectsEditorial wave concludes May 1 21:05–21:33 UTC:
      • PR #82 MERGED May 1 21:05:19 UTC by fluffy (suhasHere author, +66/0, Add padding property for byte boundary alignment). Closes Issue #54 (fluffy Nov 2025).
      • PR #77 MERGED May 1 21:06:12 UTC self-merged by fluffy (+50/0, describe threat model). Mostly fixes Issue #49.
      • PR #78 CLOSED unmerged May 1 21:29 UTC (the “DO NOT MERGE YET” fan-out PR, superseded).
      • PR #86 OPENED + MERGED May 1 21:27:42 → 21:33:18 UTC (~6 minutes) by fluffy → suhasHere (+27/0, Explain Fan Out Attack, “This replaces PR#78 and is part of Fixes #49”). Closes Issue #49.
      • Open PRs remaining: #83 (SFRAME RFC ref), #84 (test vectors), #85 (en-dash fix). All polish — secure-objects substantively at -01 release line, but draft-ietf-moq-secure-objects-01 has NOT yet been published on Datatracker.
    • moq-wg/msf, loc, cmsf, catalog-format: No new activity.
  • GitHub implementations:
    • moq-dev/moq:
      • PR #1366 MERGED May 1 14:58 UTC — flake.lock bump.
      • PR #1368 MERGED May 1 18:08:59 UTC by luke-curley (+1/−1) — single-line doc note: Cloudflare doesn’t support both reload AND latency=real-time.
      • PR #1367 OPENED May 1 15:17:12 UTC by skirsten (+46/−4, @moq/watch: add pull mode to video renderer). Fixes 120fps over-render on Chrome with 144Hz+ monitors via recursive rAF; adds mode: "push" | "pull" prop. Fourth skirsten PR after #1349, #1355, #1365.
      • PR #1369 OPENED May 2 03:27:40 UTC by sidsethupathi (Sid Sethupathi, MLB) (+39/−2, moq-gst: fix moqsink eos). Fixes the gst-launch pipeline so EOS from num-buffers is honored. Second sidsethupathi PR after #1294 (Apr 12).
    • moqtail/moqtail: No new activity since Apr 30 PR #178 merge + PR #180 open.
    • cloudflare/moq-rs: No new commits since Apr 13.
    • video-dev/moq-js: Quiet since Apr 21.
    • google/quiche (quiche/quic/moqt): No new commits since Apr 22.
    • birneee/quiche_moq: No new commits since Mar 13.
  • Mailing list:
    • Cullen Fluffy Jennings opens new thread “Request Synchronization Use Case” May 1 16:10:06 -0600 (22:10:06 UTC) (msg). Three use cases: (1) swap tracks in video conference, (2) client-side ABR, (3) rapid pause/unpause. Key quotes: “the chairs are going to treat this as we no longer have the consensus we had on drafts up to -17”, “reopening base issues about what the requirements are is not helpful”, “I would have objected to bidi if it did not have a way to synchronize”, “I’m fine with punting this to London.” No replies as of May 2 04:00 UTC.
    • REWIND Consensus Call deadline (May 1, 2026): No chair-summary message on the list as of May 2 04:00 UTC. Magnus Westerlund / Suhas Nandakumar / Alan Frindell have not yet posted an interpretation of the split outcome. Cullen’s “Request Synchronization Use Case” thread is his framing of the situation absent a chair message.
    • “Knowing the start of a Subgroup” thread: ~1 additional Cullen reply on May 1; PR #1608 formally closed same day.
  • IETF Datatracker: No new draft versions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (-01 imminent post-wave but not yet published), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9), nmsf-01 (Apr 7).
  • Interop runner: 25 pass / 66 fail / 14 skip (105 tests, 2026-05-02 00:37 UTC report). +1 pass / -1 fail vs May 1’s 24/67/14. Recovery now +1/day for 4 consecutive days from the Apr 17 floor.
  • MoQ Monthly #1 PUBLISHED May 1, 2026 by Mike English — first issue since #0 (Mar 4 2026). ~3,500 words. Title: “NAB, interoperability, and a whole lot of catching up”. Covers NAB 2026 (Qualabs/Ateme/EZDRM C2PA+DRM+MoQ on Cloudflare; Oracle Video@Edge multi-vendor with Ateme/Broadpeak/Cloudflare/Bitmovin; Wowza OBS→Shaka via CMSF; Norsk native MoQ), names draft-18 as next interop target, Safari 26.4 → WebTransport Baseline, OpenMOQ/aiomoqt/Vindral activity, Streaming Tech Sweden May 21 Stockholm, IETF MoQ Interim June 9–12 London (Cloudflare hosting). Explicitly cites this wiki at tobbee.github.io/moq-llm-wiki/: “Torbjörn is also running an experiment using Andrej Karpathy’s LLM Wiki concept to build a living MoQ ecosystem reference”; spec-section reference: “For a current summary of all active drafts and their status, the MoQ LLM Wiki has a useful table.” Tobbe’s moqlivemock update also called out by name.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (top-level “May 1 → May 2” section added), moq-transport.md (PR #1542 to Recently Merged, new Issue #1626, PR #1608 formally closed), moq-secure-objects.md (PRs 86 wave wraps, Issues #49 + #54 closed), moq-dev.md (May 1–2 doc fix + new contributor PRs), interop-status.md (25/66/14), interop-runner.md (history table extended), mike-english.md (MoQ Monthly #1 callout), index.md (last_updated bump), log.md.

Key findings:

  • moq-transport: PR #1542 lands the SUBSCRIBE_NAMESPACE/SUBSCRIBE_TRACKS split, the most structural merge of the post-interim wave. Closes Issue #1458 (~1.5 month old). moqtail PR #180 already prepares for this on the impl side.
  • secure-objects: 30-hour editorial wave wraps. 8 PRs merged across Apr 29 → May 1 (#75, #76, #79, #80, #82, #77, #86 + commit 87a95f77 AAD simplification); 7 issues closed (#49, #54, #58, #61, #70, #71, #74). Open work is all polish. -01 not yet on Datatracker but substantively ready.
  • QMUX version negotiation surface (Issue #1626) opens — afrind’s “TLS ALPN moqt-18 implies qmux-01” note is the first concrete framing for draft-18.
  • REWIND consensus deadline reached without a chair conclusion. Cullen’s “Request Synchronization Use Case” reframes the post-call situation as a regression of pre-interim consensus, willing to punt to London.
  • moq-dev contributor base widening: skirsten’s 4th PR + sidsethupathi’s 2nd; both external. Luke quiet on his own PRs (only flake bump + 1-line doc fix on May 1).
  • MoQ Monthly #1 cites this wiki by URL — first external publication acknowledgement of the wiki experiment. Names draft-18 as next interop target (matching the moq-transport editorial wave’s trajectory).

2026-05-01 — Editorial wave culminates; secure-objects 30-hour cleanup wave

TL;DR:

  • PR #1534 (REDIRECT) MERGED by afrind, closes Issue #1481. PR #1624 (LOC properties registry) MERGED, closes Issue #1550 (cross-draft 0x02/0x04 collision saga). afrind contests ianswett’s Issue #1622 walk-back of PR #1559 (Request ID in GOAWAY). Mailing list “Knowing the start of a Subgroup” expands 3→10 messages — Mo Zanaty calls PR #1608 a “footgun for devs” with concrete AV1 example; Luke proposes 0-indexed per-subgroup counter as a third design.
  • secure-objects MASSIVE editorial wave — 4 PRs MERGED (#79 fixed-width int AAD, #80 Publisher Priority in E2E, #75 track-extension guidance, #76 32-bit Object ID nonce), 5 issues CLOSED (#74 Track Properties → option #1 = no E2E, #58, #61, #70, #71), 6 PRs OPENED (#77/#78/#82-#85), direct commit removes Track Namespace + Track Name from AAD. -01 substantively ready, not yet on Datatracker.
  • Implementations: moqtail PR #178 (relay scheduling algorithm, +455/−62) MERGED — first draft-17-specific feature merged; PR #180 OPENED (+1150/−488, separate stream for SUBSCRIBE_NAMESPACE) — first impl adopting post-Apr-29 split. moq-dev/moq PR #1365 (skirsten AudioContext) MERGED; ksletmoe-aws PR #1359 self-summary + apology; new Issue #1364 (danrossi Cloudflare relay bug). cloudflare/moq-rs, video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 24/67/14 (+1 vs Apr 30); draft-cenzano-moq-media-interop-03 EXPIRED Apr 23 with no -04 published.

Operation: Update Sources:

  • Slack: #moq — no new posts since Apr 27 18:50 CEST. #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport:
      • PR #1534 MERGED May 1 01:11:59 UTC by afrind (+50/−1, Add REDIRECT for request errors and established subscriptions). Lands both: REDIRECT error code on REQUEST_ERROR + standalone REDIRECT message for established subscriptions. Closes Issue #1481 (per-track move).
      • PR #1624 MERGED Apr 30 18:10:18 UTC by afrind (+11/0, Add provisional registry for LOC properties, suhasHere). Closes Issue #1550 (cross-draft 0x02/0x04 collision saga). Provisional IANA registry coordinates LOC + MOQT codepoints.
      • Issue #1622 “Request ID in GOAWAY isn’t useful” (ianswett) — afrind counter Apr 30 18:31:57 UTC: “trivial to put the request ID in goaway, and might be useful. If nothing else it can speed up retry when a new request is racing a GOAWAY.” PR #1623 (revert) now contested. First explicit pushback against the walk-back.
      • PR #1607 (Largest Available Group filter, vasilvv) — suhasHere counter Apr 30 03:57 UTC on Luke’s Apr 24 catalog use-case: “NGR is not used for catalog typically. Also if new group generates the same catalog, it is application problem.” Stays in CHANGES_REQUESTED.
      • PR #1544 (0-RTT, ianswett) — 6 inline reply/suggestion comments Apr 30 02:12-02:29 UTC working through Thomson’s rewrite (already captured in Apr 30 entry).
    • moq-wg/secure-objectsMASSIVE editorial wave Apr 29 → May 1:
      • PR #79 MERGED May 1 03:02:45 UTC (suhasHere, Use fixed-width integers for AAD and nonce formation to avoid varint ambiguity). Closes Issue #58.
      • PR #80 MERGED May 1 03:04:41 UTC (suhasHere, Add Publisher Priority to E2E authenticated data). Closes Issue #71.
      • PR #75 MERGED May 1 03:24:17 UTC (fluffy, guidance on track extentions).
      • PR #76 MERGED May 1 03:24:52 UTC (fluffy, Explain 32-bit object ID nonce limitation). Closes Issue #70.
      • Commit 87a95f77 (suhasHere May 1 03:17:34 UTC): “Remove Track Namespace and Track Name from AAD structure” — landed via direct commit after PR #81 was closed unmerged. Most consequential wire-format change of the wave.
      • Commit 56248619 (suhasHere May 1 03:01:33 UTC): “make object id 32 bits”.
      • Issue #74 “Authentication of Track Properties” CLOSED May 1 03:24:18 UTC by suhasHere/fluffy with consensus: option #1 — “Don’t provide end to end security for track properties. Applications will just add properties that need end to end security as object properties to first object of the group.”
      • 6 new open PRs: #77 (threat model, fluffy, fixes #49), #78 (fan-out attack DO-NOT-MERGE, fluffy), #82 (padding for byte boundary, suhasHere, fixes #54), #83 (SFRAME RFC ref, fluffy), #84 (test vectors, fluffy), #85 (dash fix, fluffy).
      • PR #81 (Simplify SECURE_OBJECT_AAD) CLOSED unmerged May 1 03:19:20 UTC, but the change landed via commit 87a95f77.
    • moq-wg/msf, loc, cmsf, catalog-format: No new activity since Apr 29 wave.
  • GitHub implementations:
    • moq-dev/moq:
      • PR #1365 MERGED May 1 01:38:38 UTC (skirsten, @moq/watch: expose AudioContext on the audio backend, +11/0). Completes the Hang/moq-watch audio-handling polish (after PRs #1349 + #1355) for browser autoplay constraints.
      • PR #1359 (ksletmoe-aws OrderedConsumer refactor) — author self-summary Apr 30 21:16:33 UTC + apology Apr 30 22:10:45 UTC for messy commit history; Luke Apr 30 22:29:47 UTC: “No worries, I’ll take a look at it soon.” PR remains open.
      • Issue #1364 “Cloudflare Relay” opened Apr 30 14:20:51 UTC by danrossi — moq-js can’t connect to Cloudflare draft-14/draft-07 relays. CodeRabbit auto-flagged as possible duplicate of #586. Same class of friction as Issue #1346 (kubo6472).
    • moqtail/moqtail:
      • PR #178 MERGED Apr 30 12:23:13 UTC by zafergurel (+455/−62, feat: implementation of the scheduling algorithm in the relay). First draft-17-specific feature merged. Closes Issue #176.
      • PR #180 OPENED Apr 30 18:51:59 UTC by zafergurel (+1150/−488, feat: separate stream for subscribe_namespace) against draft-16 branch. Major refactor anticipating moq-transport PR #1542 split. First moqtail PR adopting the post-Apr-29 SUBSCRIBE_NAMESPACE split design.
    • cloudflare/moq-rs: No new commits since Apr 13.
    • video-dev/moq-js: Quiet since mid-March.
    • google/quiche (quiche/quic/moqt dir): No new commits since Apr 22.
  • Mailing list:
    • “Knowing the start of a Subgroup” thread (Apr 29 → Apr 30): expanded from 3 messages to 10 with 7 Apr 30 additions. Magnus Westerlund, Ian Swett follow-up, Luke Curley (proposes 0-indexed per-subgroup counter as third design alternative — “only helps REWIND for the first object… you still need a plan to handle the rest of the gaps”), Alan Frindell, Suhas Nandakumar, Luke follow-up, Mo Zanaty Apr 30 22:06 UTC (endorses #1618 over #1608 with concrete AV1 temporal-layering example showing frame numbers ≠ layer numbers; calls #1608 “a footgun for devs to screw up”; “even the working group fell into this trap”; on subgroup-vs-datagram tie-breaking: “subgroup wins”).
    • REWIND Consensus Call: deadline reached today (May 1, 2026). Chair Magnus Westerlund will need to interpret a split outcome (Cullen explicit option-#1, Luke + Ian-individually for option-3 with CurrentGroupFill, Martin Duke compromise-floor, Gwendal Simon live-streaming pushback). No new messages on this thread Apr 30 – May 1.
  • IETF Datatracker: No new draft versions. WG state: transport-17, msf-00, loc-02, secure-objects-00 (wave indicates -01 imminent), privacy-pass-02, cmsf-00. Notable individual: lite-04 (Apr 9), nmsf-01 (Apr 7).
  • Interop runner: 24 pass / 67 fail / 14 skip (105 tests, 2026-05-01 00:40 UTC report). +1 pass / -1 fail vs Apr 30’s 23/68/14. Gradual recovery from Apr 17 regression continues.
  • MoQ Monthly: Still only #0 (March 4 2026); no #1 yet.
  • tobbee/moq-llm-wiki: No new open issues.

Pages updated: discussions-2026-05.md (created), discussions-2026-04.md, moq-transport.md, moq-secure-objects.md, moq-dev.md, moqtail.md, interop-status.md, moq-media-interop.md (marked EXPIRED), index.md, log.md.

Key findings:

  • moq-transport: REDIRECT lands (PR #1534) — completes the Feb-9-Issue-#1481 → May-1-merge editorial cycle. LOC properties registry lands (PR #1624) — closes the cross-draft #1550 collision saga.
  • secure-objects: First substantive activity since draft-00 (Mar 2). Wave decided track-property authentication scope (Issue #74 option #1: not in scope), simplified AAD structure (Track Namespace + Track Name removed), nailed down 32-bit Object-ID nonce, brought publisher priority under AEAD. -01 release imminent.
  • “Knowing the start of a Subgroup” debate is now 3-way: PR #1608 (closed but ianswett still backs), PR #1618 (FIRST_OBJECT bit, APPROVED, Cullen + Mo Zanaty support), Luke’s per-subgroup counter (newly proposed Apr 30).
  • Request ID in GOAWAY contested: afrind pushes back on ianswett’s walk-back. PR #1623 needs WG resolution.
  • moqtail jumps to draft-17 features: PR #178 merged with §7.2 prioritization scheduling. PR #180 already prepares for SUBSCRIBE_NAMESPACE split.
  • moq-dev Hang audio polish complete: skirsten’s PR #1365 (AudioContext exposure) closes the autoplay-policy gap left by PRs #1349 and #1355.
  • media-interop draft EXPIRED Apr 23 with no -04. LOC media-interop testing relies on what’s already implemented; document marked outdated.

2026-04-30 — Editorial wave continues; ianswett walks back PR #1559

TL;DR:

  • PR #1619 (NAMESPACE response name fix) MERGED; PR #1593 CLOSED unmerged (OBE’d by #1618); Issue #1365 ABR-grouping CLOSED as NotTransport. ianswett walks back his own PR #1559 — opens Issue #1622 + PR #1623 (Remove Request ID from GOAWAY). suhasHere opens PR #1624 (LOC properties registry) + PR #1625 (rebased Magnus security considerations). PR #1542 / #1534 / #1620 / #1618 all reach APPROVED.
  • Mailing list: new thread “Knowing the start of a Subgroup” (Ian/Alan/Cullen) splits WG between #1608 and #1618 designs; Cullen casts first explicit option-#1 REWIND ballot vote.
  • Implementations: moq-dev/moq Luke MERGES four PRs — #1357 (fetch_group + TrackDynamic — first track-level FETCH path API), #1350 (mTLS HTTPS), #1349 (skirsten static catalog), #1360 (jemalloc into moq-native). Qizot replaces #1354 with #1362 (audio encoder reconfiguration); ksletmoe-aws expands #1359 from CMAF-specific fix to generic OrderedConsumer refactor (+971/−…) per Luke’s suggestion; metapox opens Issue #1363 (JS Subscriber lacks SUBSCRIBE_UPDATE). moqtail opens PR #178 (relay scheduling, +455/−62) + PR #179 (Firefox private-CA docs, new contributor davemevans). cloudflare/moq-rs, video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 23/68/14 — unchanged from Apr 29; the four moq-dev/moq merges all landed after the Apr 30 00:38 UTC run.

Operation: Update Sources:

  • Slack: MCP working. #moq — no new posts since Apr 27 18:50 CEST. #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transportPR-merge + new-PR + new-issue activity continuing the post-interim editorial wave (Apr 29 17:29 → Apr 30 06:00 UTC):
      • PR #1619 MERGED Apr 29 20:44:21 UTC by ian-swett (+1/−1, Fix SUBSCRIBE_NAMESPACE response message name, fixes #1616, label: Editorial). Approved by ianswett at Apr 29 20:44:14 UTC. Closes Issue #1616 (mope-life’s Apr 28 inconsistency report).
      • PR #1593 (RFC: Allow framing single Objects without Subgroup ID, ianswett, opened Apr 2) CLOSED unmerged Apr 29 17:29:35 UTC by ian-swett. The PR proposed a fundamentally different approach (OBJECT_STREAM type that omits Subgroup ID + Object Length, FETCH_HEADER moved 0x05→0x50). afrind’s Apr 3 review pushback (“This doesn’t make any sense. Datagrams and FETCH_HEADER never appear in the same context. … there’s already a way to omit the subgroup id in single-object subgroups — set the mode bits to ‘01’ and the sg-id == object id.”) plus the WG’s Apr 27 interim disposition on PR #1608 made #1593 OBE. The “knowing the start of a Subgroup” problem is now being addressed by PR #1618 (FIRST_OBJECT bit) instead.
      • Issue #1365 CLOSED Apr 30 01:46:16 UTC by ian-swett (“If you can’t deliver an entire Group, should you send any Objects for a Track?”, ianswett, Nov 6 2025). ianswett’s Apr 23 17:00 UTC closing comment: “I’m inclined to close this with no action right now or declare it as NotTransport since it’s something Sender side ABR would need to do.” Final closure delayed until Apr 30, but ultimately the existing DELIVERY_TIMEOUT and Data-Forwarding-prioritization text were judged sufficient. ABR-grouping decision deferred to “sender-side ABR” extension territory rather than a transport feature.
      • Issue #1622 OPENED Apr 30 00:52:40 UTC by ian-swett (label Handshake and Session): “Request ID in GOAWAY isn’t useful”. Body: “After more thought (yes I approved #1559), I don’t think the Request ID in GOAWAY is actionable in MoQ. My intuition was ‘We have a Stream ID in HTTP/3, so we should have one in MoQ’. But MoQ is not HTTP, and that’s intentional. … Now that we’re removing Required Request ID (#1615) and we’ve already removed Request ID flow control, GOAWAY is one of the two remaining uses of Request ID (the other is Joining Fetch). Filing this now because #1559 landed relatively recently (hasn’t even been published in a draft) to address #1549. … @vasilvv noted reluctance to relying on Request ID on the PR as well, but I think we all thought this would be useful at the time.” Walks back PR #1559 (which ianswett himself approved). Triggered by ianswett’s Apr 29 18:10 UTC comment on PR #1617: “I think we should remove Request ID from GOAWAY entirely, since I don’t think it has much practical value.”
      • PR #1623 OPENED Apr 30 01:38:30 UTC by ian-swett (+0/−10, Remove Request ID from GOAWAY, label Handshake and Session). Body: “Reverts #1559. Fixes #1622. Related to #1617 which adds GOAWAY for individual Requests.” Pure-removal patch (no additions). Pairs with PR #1615 (RRID removal) and the Apr 27 interim direction toward removing per-request Request ID semantics.
      • PR #1624 OPENED Apr 30 05:17:57 UTC by suhas-nandakumar (+11/0, Add provisional registry for LOC properties, fixes #1550). Tiny fix that addresses the LOC property-type collision (#1550 — Properties Type collision between moq-16 and loc-01) by adding a provisional IANA registry.
      • PR #1625 OPENED Apr 30 05:59:02 UTC by suhas-nandakumar (+132/−1, Rebased and Update Security Considerations PR from Magnus Westerlund). Body: “This PR adds a few fixes and addition to @gloinul PR #1455”. Rebases and extends Magnus Westerlund’s long-parked Security Considerations PR. Self-comment Apr 30 06:00:12 UTC: “@gloinul please give it a read and let me know if this is heading in the right direction”.
      • PR #1542 (Split SUBSCRIBE_NAMESPACE) — suhas-nandakumar APPROVED Apr 29 17:52:16 UTC after a brief comment thread (17:51-17:52 UTC). This is a second approval after Vasilvv’s pre-interim approval. PR is now ready to merge.
      • PR #1534 (REDIRECT) — suhas-nandakumar APPROVED Apr 29 17:56:52 UTC with one suggestion-text patch (Track Namespace/Track Name Length/Track Name formatting). Now has Vasilvv (Apr 27 23:01 UTC) + suhasHere approvals.
      • PR #1620 (Clarify Joining FETCH unaffected by fwd→0) — ian-swett APPROVED Apr 29 20:40:08 UTC. Two approvals → ready to merge.
      • PR #1618 (FIRST_OBJECT bit) — ian-swett inline comment Apr 29 20:48:19 UTC: “Ideally, I’d like this to be required, which was a perk of my other proposal to force the Subgroup ID==First Object ID”. Then a long Apr 29 20:54-22:04 UTC issue-level comment quoting yuyou, explaining why ianswett still prefers his closed PR #1608: “I looked at #1618 and I think this approach has some benefits: 1) It’s required that one use it. 2) You can tell when you Don’t have the first Object of a Subgroup.” afrind reply Apr 29 22:25 UTC: “An original publisher really ought to know if it’s the beginning or not. A relay should know then either because it just received this information or by caching it. … its primary value is to know when it’s safe to serve the beginning of a subgroup from cache vs going upstream.” suhas-nandakumar APPROVED Apr 29 23:45:55 UTC: “Looks fine to me” with one inline note (“if the subscriber/relay uses object status to make decision, this is at the same level. Whatever, we say there should be said here too or atleast they both should match”). PR ready to merge.
      • PR #1608 (Subgroup ID = first Object Id, CLOSED Apr 28) — saw two new ianswett summary comments Apr 29 20:54 + 22:04 UTC re-litigating the closure on the issue track, posting the full text of yuyou’s earlier objection as context. afrind’s Apr 28 closure stands.
      • PR #1607 (Largest Available Group filter) — saw a new suhas-nandakumar reply Apr 30 03:57:02 UTC pushing back on Luke’s catalog-track use case from Apr 24 23:10 UTC: “NGR is not used for catalog typically. Also if new group generates the same catalog, it is application problem. Regardless, fetching existing catalog seems a fine solution.” — keeps PR #1607 in CHANGES_REQUESTED state.
      • PR #1544 (0-RTT) — significant editorial activity Apr 28 → Apr 30. After martin-thomson’s Apr 28 01:30 UTC substantive rewrite of the introductory sentences, ian-swett posted 6 inline reply/suggestion comments Apr 30 02:12-02:29 UTC working through Thomson’s rewrite: defending the gRPC-style “client declares request as safe” 0-RTT-WT path (“Technically I could 0-RTT a WebTransport session if I declare my request as safe in the client library.”); two suggested-text patches around cache-expiry semantics for replayed objects; and a rewrite for the resource-exhaustion mitigation (“Relays MAY defer initiating upstream subscriptions until the handshake is complete or reject 0-RTT entirely to mitigate resource exhaustion from replayed packets.”). martin-thomson replied Apr 30 03:25:32 UTC: “Do you have a specific response code that a relay could use so that the client can know that this was something that can be retried? Or is it always possible to retry a subscription? Surely there are classes of rejection that are permanent and others that are temporary.” Plus a follow-up review Apr 30 03:27:15 UTC. The 0-RTT review is now in serious dialogue.
      • PR #1617 (per-request GOAWAY) — ianswett comment Apr 29 18:10 UTC: “I think we should remove Request ID from GOAWAY entirely, since I don’t think it has much practical value.” — directly motivated PR #1623.
      • Issue #1453 (Send Rate parameter, wilaw) — labeled Parked by ian-swett Apr 30 01:52:15 UTC. ianswett’s Mar 30 closing comment: “I’m increasingly unsure if we want to add this as a client controlled feature, at least now. … we might want to park this until someone implements and deploys Netflix style pacing that uses MoQ.”
    • msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • moq-dev/moqfour merges + Qizot replaces #1354 with #1362 + ksletmoe-aws pivots #1359 to a generic refactor + new external bug:
      • PR #1357 MERGED Apr 30 00:01:46 UTC by luke-curley (final +427/−133, moq-lite: add fetch_group API + TrackDynamic). First FETCH path API at the track level lands. New TrackConsumer::fetch_group(seq) -> Result<GroupConsumer> with cache-hit / cache-miss-no-handler / cache-miss-with-handler branches. Concurrent fetches for the same sequence share the in-flight group. New TrackProducer::dynamic() -> TrackDynamic mirrors BroadcastProducer::dynamic(). New TrackDynamic::poll_requested_group / requested_group yields GroupProducer for the publisher to fill. 8 new unit tests in rs/moq-lite/src/model/track.rs. cargo test --workspace = 290 moq-lite tests pass (up from 282). Wire-side FETCH hookup (lite::ControlType::Fetch, ietf::run_fetch_stream) intentionally still returns errors — captured here as a clean follow-up.
      • PR #1350 MERGED Apr 29 16:46:18 UTC by luke-curleymoq-relay: authenticate HTTPS callers via the cluster mTLS CA. The CodeRabbit-flagged 🟠 Major (CORS+browser-readable-GET) noted in the Apr 28 log was apparently resolved offline (no follow-up review thread visible) and the PR merged. mTLS HTTPS auth lands.
      • PR #1349 MERGED Apr 29 16:08:52 UTC by luke-curley (skirsten’s @moq/watch: add static catalog format). Third catalog mode lands — <moq-watch catalog-format="static"> plus writable Signal<Catalog.Root | undefined> for Broadcast.catalog.
      • PR #1360 MERGED Apr 29 16:29:05 UTC by luke-curley (+29/−10, moq-native: relocate jemalloc helper; wire it into moq-boy). moq-boy now production-instrumented for jemalloc heap profiling at 6+ instances.
      • PR #1361 OPENED+CLOSED Apr 29 16:17 UTC → 16:29 UTC by luke-curleymoq-native: move jemalloc profiling helper from moq-relay. Replaced by PR #1360 (broader scope including HTTPS mTLS) — closed superseded.
      • PR #1354 CLOSED unmerged Apr 29 16:54:30 UTC by Qizot. Qizot’s closing comment: “This was wrong approach, we should have reconfigured the encoder instead.” Replaced by PR #1362 OPENED Apr 29 17:04:41 UTC by Qizot (+40/−17, Add audio encoder reconfiguration). New approach: when iOS Safari mismatch is detected (worklet’s channelCount resolves to 2 but onmessage receives mono), the encoder is reconfigured rather than padding the AudioData. Cleaner solution. Open and under CodeRabbit review.
      • PR #1359 — TITLE CHANGED from “fix(watch): process CMAF groups sequentially in WebCodecs decoder” to “feat(hang): unify OrderedConsumer across container formats”. Now +971/−… (was +64/−67). After Luke’s Apr 28 23:00 UTC review comment: “I think we need a generic OrderedConsumer. The problem is that recvGroup (and MoQ in general) returns groups out-of-order. The idea behind OrderedConsumer is that we skip groups based on the target latency, which requires timestamp information unfortunately.” and Apr 29 00:29 UTC: “On the Rust side, I made an interface to parse the timestamp out of each frame. Then OrderedConsumer can be reusable.” — ksletmoe-aws (Karl Sletmoe, AWS) rewrote the PR as a generic OrderedConsumer<F: Container> refactor that unifies Legacy + CMAF containers behind a ContainerFormat strategy interface. Mirrors the Rust moq-mux Consumer<F: Container> pattern. New files: container/format.ts, container/consumer.ts, container/cmaf/format.ts, container/consumer.test.ts (25 tests). 4 watch decoders migrated. Apr 30 01:43 UTC ksletmoe-aws addressed CodeRabbit nitpicks.
      • Issue #1363 OPENED Apr 30 00:43:26 UTC by metapox (taku): “feat(lite): JS Subscriber lacks SUBSCRIBE_UPDATE support for dynamic priority changes”. Concrete use case: multi-camera streaming where the viewer switches focus between cameras; each camera has a subscription, and the focused one should get higher priority — but the close→re-subscribe path causes a 1s keyframe-wait gap on every switch, while SUBSCRIBE_UPDATE would be seamless. Rust subscriber already handles this via TrackSubscriber::update(). JS subscriber is missing the equivalent. Issue includes a proposed implementation in three files (track.ts adds priority Signal + updatePriority; lite/subscriber.ts watches for priority changes and sends SubscribeUpdate; lite/publisher.ts applies received priority). Tested in metapox’s moq-multicam app. Fork: https://github.com/metapox/moq/tree/feat/subscribe-update-api. Total diff: 30 inserts/4 deletes across 3 files. Second time metapox surfaces a moq-lite/JS issue (after Apr 27 #1351 false-alarm).
      • PR #1356 / #1358 / #1341: still OPEN, no new substantive activity.
    • moqtail/moqtailtwo new PRs Apr 29 morning:
      • PR #178 OPENED Apr 29 08:54:49 UTC by zafergurel (+455/−62, feat: implementation of the scheduling algorithm in the relay). Body: “This PR implements the scheduling algorithm in the relay defined in the draft. Look at the comments for a detailed explanation of how priorities are computed based on the subscriber and publisher priorities.” Implements draft-17’s prioritization scheduling at the relay layer.
      • PR #179 OPENED Apr 29 09:44:42 UTC by davemevans (David Evans, +11/−2, docs: add instructions for Firefox testing using private CA). Firefox-specific HTTP/3 trust-quirk workaround (network.http.http3.disable_when_third_party_roots_found). First moqtail PR from David Evans (new external contributor). Notably moqtail’s umbrella PR #145 (zafergurel) for draft-16 onto main remains open.
    • cloudflare/moq-rs, video-dev/moq-js, google/quiche (moqt), birneee/quiche_moq: No new activity. (google/quiche has many non-moqt commits Apr 27-30 in adjacent QUIC/MASQUE areas; nothing under quiche/quic/moqt/.)
  • Mailing list — two new threads / six new messages Apr 28–30:
    • ian-swett Apr 29 (msg): “[Moq] Knowing the start of a Subgroup”NEW THREAD. Re-litigates the closed PR #1608 vs. open PR #1618 design choice on the list. ianswett still prefers his closed-PR-#1608 approach (Subgroup ID == first Object ID): mandatory, plus enables receivers to detect when they don’t have the first Object. Notes #1618 (FIRST_OBJECT bit) is “less effective”. Maintains compatibility with Subgroups arriving on separate streams as a core requirement. Asks for community feedback, particularly from those with concerns about #1608.
    • alan-frindell Apr 29 (msg): “Re: Knowing the start of a Subgroup” — supports #1608 over #1618. “It’s not clear to me why that’s a problem” (re removing application surface). Notes that Mo, Cullen, Magnus, and Suhas objected during the Monday interim meeting, and explicitly asks them to provide examples of what would be broken by #1608.
    • Cullen Fluffy Jennings Apr 30 ~14:00 MDT (msg): “RE: Knowing the start of a Subgroup” — three critiques of #1608: (1) “mirror existing end-marker logic — publishers should explicitly signal the start of tracks, groups, and subgroups when known”; (2) implementation feasibility — “I’m just not seeing how it works in this case” re. catalogs needing stable Subgroup IDs while incrementing object IDs within groups; (3) opposes the conflation of Subgroup ID with first Object ID — prefers explicit signaling rather than “pinning to very weird implicit signaling”. Clearly favors the #1618 FIRST_OBJECT-bit approach over #1608.
    • ian-swett Apr 29 17:27 UTC (msg): “Re: Consensus call on way forward on REWIND” — clarifies his Apr 28 02:03 UTC CurrentGroupFill endorsement was “his individual position” as an editor, not an editorial mandate. Endorses “some variant of option 3” (use REWIND as basis for a PR), specifically afrind’s CurrentGroupFill proposal as “a strict improvement on the current draft”. Reiterates: “I’m open to some variant of REWIND, but not very optimistic that we’ll get consensus on anything more complex than CurrentGroupFill.” Direct response to chair Magnus’s Apr 28 10:49 UTC “please state explicit positions” intervention.
    • Cullen Fluffy Jennings Apr 29 ~14:54 MDT (msg): “Re: Consensus call on way forward on REWIND” — explicitly endorses option #1: “I support option #1. I do not think we should not take on Rewind until we have MoQT wrapped up.” Adds: “when the working group eventually addresses this topic, we need to start with the use case we are trying solve.” First explicit option-#1 ballot vote on the list.
    • Magnus Westerlund (chair) Apr 29 (msg): “Re: Minutes from Interim meeting 27 of April 2026” — notes Martin Duke submitted a correction to the AI-generated summary’s representation of his technical argument. Magnus expresses satisfaction with AI-assisted minutes overall. Invites group feedback on whether participants’ points were “fairly represented”.
    • Pre-interim list activity not previously logged (Apr 27): Mo Zanaty Apr 27 14:43 UTC (msg): “1608 is a major change to the core data model that makes subgroups semantically meaningless, as they would encode transport irregularities that destroy the app’s semantic meaning.” Argues subgroup IDs are meaningful video-layer identifiers (LOC use case), and proposes alternative subgroup-header type values. alan-frindell Apr 27 16:04 UTC (msg) reply: “Do you have an application that uses subgroup IDs with specific semantic values that would break if this change were adopted? Can you explain how it works?” — establishing the burden of proof shift that ultimately led to PR #1608’s closure.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). draft-ietf-moq-transport-17 still the latest WG transport draft.
  • Interop runner: Apr 30 00:38 UTC run = 23 / 68 / 14unchanged from Apr 29. Walking arc since draft-17 publication: 22 → 23 → 24 → 22 → 23 → 22 → 23 → 23. The four moq-dev/moq merges (#1357, #1350, #1349, #1360) all merged after the Apr 30 00:38 UTC run, so they couldn’t have shifted the matrix yet. The two interim spec PR merges (#1611, #1609) are spec-only.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: None open (3 closed).

Pages updated: discussions/discussions-2026-04.md, drafts/moq-transport.md, implementations/moq-dev.md, implementations/moqtail.md, interop/interop-runner.md, index.md

Key findings:

Editorial wave continues at full pace; ianswett shifts attention from PR 1618 to GOAWAY Request ID removal. The Apr 29-30 work pattern mirrors the Apr 28-29 wave but with new structural targets. ianswett’s Apr 29 18:10 UTC review comment on PR #1617 (per-request GOAWAY) — “I think we should remove Request ID from GOAWAY entirely” — turned into Issue #1622 within hours, then PR #1623 (a pure-removal patch reverting his own #1559 from earlier in the cycle). With PR #1615 removing Required Request ID and PR #1623 about to remove the GOAWAY use of Request ID, the only remaining use of Request ID across the whole protocol becomes Joining FETCH. The cleanup arc that started at the interim is now drilling into specific control-message dependencies. ianswett walking back his own approval of #1559 — “yes I approved #1559” — is unusual editorial honesty and a useful signal that the WG’s Apr 27 RRID-removal decision is reshaping how editors think about adjacent uses of Request ID.

PR #1608 vs PR #1618 design dispute moves to the IETF list. Both ianswett and afrind posted to the list Apr 29 defending the closed PR #1608 approach (Subgroup ID == first Object ID) over the open PR #1618 (FIRST_OBJECT bit). afrind asks the four objectors at the interim (Mo, Cullen, Magnus, Suhas) to “provide examples of what would be broken by #1608”. Mo’s Apr 27 list message (now surfaced into the wiki record): “1608 is a major change to the core data model that makes subgroups semantically meaningless, as they would encode transport irregularities”. Cullen’s Apr 30 list reply: prefers explicit signaling, “pinning to very weird implicit signaling” is the wrong direction. Net: the WG decided in the interim, but two of the four authors are publicly relitigating the decision on the list. Meanwhile PR #1618 itself reached APPROVED state Apr 29 23:45 UTC from suhasHere — so the implementation is moving forward in parallel. The list discussion’s outcome may amount to “let #1618 land, but document the FIRST_OBJECT semantics carefully so it constrains future relay behavior.”

Cullen casts the first explicit “option #1” REWIND ballot. After chair Magnus’s Apr 28 10:49 UTC “please state explicit positions” intervention, Cullen Fluffy Jennings posts the most clear-cut response yet: “I support option #1. I do not think we should not take on Rewind until we have MoQT wrapped up.” (Note the double-negative — Cullen means “we should not take on REWIND until MoQT wraps up”; option #1 = no action.) ianswett’s Apr 29 reply clarifies his Apr 28 CurrentGroupFill endorsement was an “individual position” (option 3 with afrind’s filter). The May 1 deadline is in 1 day. With at least one explicit option-#1 vote (Cullen) and several strong option-3-with-CurrentGroupFill positions (Luke, Ian Swett), and Martin Duke’s compromise-floor framing, the chair will need to interpret a split outcome. Gwendal’s Apr 28 push-back on Joining FETCH removal isn’t yet on the ballot.

Luke’s FETCH-readiness API lands; the moq-lite-fetch branch is fully scaffolded. PR #1357 merging at Apr 30 00:01 UTC is the first FETCH-path API merge at the moq-lite track-consumer level. Combined with the still-open #1356 (TrackConsumer-by-value insert_track), #1358 (Origin rewrite), and PR #1348 (Subscription model API, also in flight), the model layer is now FETCH-aware. The wire-side hookup is still TODO (lite::ControlType::Fetch returns errors, ietf::run_fetch_stream Standalone returns “not supported”), but Luke’s stated approach is to land each subsystem independently. Pairs with his Apr 27 issue #1614 (JOINING FETCH prioritization) — Luke wants the API design fully settled before wire-format work begins. moq-relay also gets mTLS HTTPS auth (PR #1350 merged) and moq-boy gets jemalloc heap profiling (PR #1360 merged) — the operational instrumentation continues alongside the protocol work.

Luke + ksletmoe-aws redesign PR #1359 from a fix into a generic OrderedConsumer refactor. The original ksletmoe-aws fix (CMAF-specific decoder ordering) was rewritten — at Luke’s suggestion — into a generic OrderedConsumer<F: Container> pattern mirroring Rust’s moq-mux::Consumer<F: Container>. The PR went from +64/−67 (a one-file fix) to +971/−… (a 13-file refactor including 25 unit tests). This is the first instance of a moq-dev/moq external contributor’s PR being expanded in scope at the maintainer’s request, in this case to align JS-side architecture with the Rust side. AWS’s Karl Sletmoe followed Luke’s lead and redesigned the work — concrete sign of the AWS contribution becoming a genuine collaborative effort rather than a one-off bug fix.

moqtail starts implementing draft-17 features (relay scheduling, +455 LOC). Zafer Gurel’s PR #178 (relay scheduling algorithm per the draft) is the first moqtail PR implementing a draft-17-specific feature rather than chasing draft-16 conformance. With draft-16 work still ongoing on the integration branch and umbrella PR #145 still open against main, the relay-side scheduling work appears to be running in parallel. David Evans’s PR #179 (Firefox private-CA docs) is moqtail’s first PR from a new external contributor since Feb. Both are live signals that moqtail is widening its contributor surface.

Interop matrix unchanged at 23/68/14. No movement Apr 29 → Apr 30. The four moq-dev/moq merges (PRs #1357, #1350, #1349, #1360) all landed after the Apr 30 00:38 UTC run, so the next run will be the first to reflect them. Expect a possible matrix shift in the Apr 30 → May 1 window from moq-dev-rs / moq-dev-js image rebuilds.


2026-04-29 — Post-interim editorial wave; afrind 9-PR burst in 8 hours

TL;DR:

  • afrind 9-PR wave in ~8 hours: PR #1611 (PUBLISH_OK removal) + PR #1609 (Joining FETCH fwd race → request error) MERGED; PR #1608 (Subgroup ID = first Object ID) CLOSED unmerged, replaced by PR #1618 (FIRST_OBJECT bit per yuyou’s review-comment template); five new afrind PRs opened (#1617 individual GOAWAY, #1618, #1619, #1620, #1621 forbid LARGEST_OBJECT lying). PR #1615 (RRID removal) now unblocked.
  • Chair Magnus asks for explicit ballot positions with 3 days left; Gwendal Simon pushes back on Joining FETCH removal from a live-streaming-deployment perspective; Ian Swett endorses CurrentGroupFill (option-3 floor); minutes from interim-14 published.
  • Implementations: moq-dev/moq merges #1352 (announcement-less relay handling, resolves #1346) + #1353 (per-frame buffer, +346/−146) + #1355; five new Luke PRs (#1356–#1360, including #1358 Origin rewrite +994/−1289); first AWS-affiliated PR (ksletmoe-aws #1359, CMAF passthrough); Qizot #1354 (audio encoder); moq-boy now in production at 6+ instances. cloudflare/moq-rs, video-dev/moq-js, moqtail, google/quiche, birneee/quiche_moq quiet.
  • Interop: 23/68/14 (+1 vs Apr 28); back to Apr 24/27 reading.

Operation: Update Sources:

  • Slack: MCP working. #moq — no new posts since Apr 27 18:50 CEST (Giovanni Marzot’s 😞). #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport9-PR wave from afrind over ~8 hours (5 new + 2 merges + 1 close + duplicate-closure):
      • PR #1611 MERGED Apr 29 00:04:05 UTC by alan-frindell (+11/−30, Remove PUBLISH_OK message type, make it a REQUEST_OK alias, fixes #1598). Wire-format change: removes the PUBLISH_OK code point. Approvals from ian-swett (Apr 27 19:39 UTC, post-interim greenlight), Suhas Sathyanarayana (@sharmafb, Apr 28 23:42 UTC), @sandarsh (Apr 28 23:55 UTC). Closes Issue #1598.
      • PR #1609 MERGED Apr 29 00:03:07 UTC by alan-frindell (+3/−2, Joining Fetch forward state mismatch is a request error, fixes #1601). Approvals from ian-swett, @sharmafb, @sandarsh. Unblocks PR #1615 per afrind’s Apr 28 21:17 UTC comment: “Removing RRID creates races between REQUEST_UPDATE FWD=1 and Joining FETCH (rejoining a paused subscription). At least #1609 is required, so it’s a request rather than a session error.”
      • PR #1608 CLOSED unmerged Apr 28 21:19 UTC. afrind: “Discussed 4/27: The working group didn’t think this was the right approach, but agreed we need a way to know if a subgroup contains the beginning.” Issue #1405 stays open. yuyou’s Apr 28 07:29 UTC review comment on #1608 anticipated the FIRST_OBJECT bit alternative: “To solve the original problem of identifying the first Object ID, may it be an alternative approach to explicitly signal the starting Object ID in the Subgroup header instead of tying it to the Subgroup ID field. By keeping the Subgroup ID logically decoupled from the Object ID, publishers can maintain consistent data structures.”
      • PR #1617 OPENED Apr 28 16:21 UTC by alan-frindell (+85/−73): Allow GOAWAY on request streams to migrate individual requests (fixes #1481 — fluffy’s Feb 9 issue). Per-request GOAWAY with zero-length URI for client; on receipt the endpoint re-issues that request on a session at the specified URI and closes the old stream.
      • PR #1618 OPENED Apr 28 21:33 UTC by alan-frindell (+20/−10): Add FIRST_OBJECT bit to SUBGROUP_HEADER type. “Add bit 6 (0x40) to signal that the subgroup contains the first object published in the subgroup by the original publisher. The type format expands from 0b00X1XXXX to 0b0XX1XXXX. All valid type values still fit in a 1-byte varint.” The replacement for PR #1608, honoring yuyou’s alternative-approach comment.
      • PR #1619 OPENED Apr 28 22:05 UTC by alan-frindell (+1/−1): Fix SUBSCRIBE_NAMESPACE response message name (fixes #1616). Implements afrind’s Apr 28 03:43 UTC commitment to mope-life.
      • PR #1620 OPENED Apr 28 23:25 UTC by alan-frindell (+2/0): Clarify Joining FETCH is unaffected by fwd changing to 0 (fixes #1612).
      • PR #1621 OPENED Apr 28 23:50 UTC by alan-frindell (+8/−1): Forbid relays from lying about LARGEST_OBJECT (fixes #1386 — ianswett’s Dec 7 2025 issue). “If we want to serve cached objects in response to SUBSCRIBE, lying is not the correct approach.”
      • Issue #1602 (martinduke, Joining Fetch should be on the SUBSCRIBE/PUBLISH stream) CLOSED Apr 28 23:31 UTC by afrind as duplicate of #1313 (ianswett’s Joining-FETCH-as-separate-control-message issue from Oct 15).
      • PR #1615 (Remove Required Request ID) — still OPEN. afrind’s Apr 28 21:17 UTC comment confirms PR #1609 was the precondition; now unblocked.
    • msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • moq-dev/moq — two interim PRs land plus a wide push from Luke and external contributors:
      • PR #1352 MERGED Apr 29 01:32:29 UTC (+10/−2, Handle relays without announcement subscription support) — final size grew by 4 lines vs the original +6/0 after the CodeRabbit suffix-match-false-positive fix. Issue #1346 (kubo6472’s cross-impl Cloudflare-relay catalog-discovery friction) effectively resolved at the moq-lite layer.
      • PR #1353 MERGED Apr 29 01:49:24 UTC (+347/−147, moq-lite: per-frame buffer + BufMut producer to cut relay memory) — production-profiled memory optimization (~234 MB / ~254 MB / ~446 MB attribution) lands. First memory-cost-per-connection optimization to land in moq-relay.
      • PR #1355 MERGED Apr 28 20:04:23 UTC by luke-curley (author Qizot, +7/−2): Add encoder’s AudioContext sampleRate override. Routine.
      • PR #1356 OPENED Apr 28 16:11 UTC (+27/−86): moq-lite: switch insert_track to take TrackConsumer. Removes TrackConsumer::produce() (added in #1300 as a workaround).
      • PR #1357 OPENED Apr 28 16:33 UTC (+319/−24): moq-lite: add fetch_group API + TrackDynamic. New TrackConsumer::fetch_group(seq) -> Result<GroupConsumer> first-class FETCH path. “The breaking API change is captured here so the wire-side hookup (lite ControlType::Fetch, ietf::run_fetch_stream) can land as a clean follow-up.”
      • PR #1358 OPENED Apr 28 19:20 UTC (+994/−1289): moq-lite: rewrite Origin as a poll-driven, conducer-based model. Massive rewrite: replaces OriginNode/NotifyNode tree, per-publish web_async::spawn cleanup, and per-consumer mpsc fan-out with a flat HashMap<PathOwned, Entry> behind a Mutex + per-consumer queues + conducer::Waiter.
      • PR #1360 OPENED Apr 28 23:55 UTC (+29/−10): moq-native: relocate jemalloc helper; wire it into moq-boy. Wires moq-boy for jemalloc heap profiling — “its 6 production instances…”moq-boy is now in production at 6+ instances.
      • External — PR #1359 OPENED Apr 28 21:22 UTC by ksletmoe-aws (Karl Sletmoe, AWS) (+64/−67): fix(watch): process CMAF groups sequentially in WebCodecs decoder. Concrete bug exposed by CMAF passthrough where each group is one moof+mdat blob — concurrent effect.spawn() per MoQ group caused issues. First moq-dev/moq PR from an AWS contributor.
      • External — PR #1354 OPENED Apr 28 07:23 UTC by Qizot (+21/−11): Fix missing channel samples for audio encoder. iOS Safari WebCodecs/getUserMedia mismatch — channelCount resolves to 2 but the encoder receives mono audio.
      • PR #1350 (mTLS for HTTPS callers) — still OPEN, last activity Apr 27 23:33 UTC. The CodeRabbit-flagged 🟠 Major (CORS+browser-readable-GET) hasn’t been addressed.
      • Issues 1328 (beeequeue, JS tooling) — substantive Luke replies Apr 28→Apr 29 about Vite-specific URL resolution.
    • cloudflare/moq-rs, video-dev/moq-js, moqtail/moqtail, google/quiche (moqt), birneee/quiche_moq: No activity in the window.
  • Mailing list — Four new messages Apr 28 continuing the REWIND thread plus interim minutes:
    • luke-curley Apr 28 08:43 UTC (msg): Three paths for merging CurrentGroup proposals — (1) status quo with Joining FETCH, (2) replace Joining FETCH with REWIND or modified SUBSCRIBE with Start_Group parameter, (3) remove Joining FETCH entirely. Personal preference for option 2.
    • Gwendal Simon (Synamedia) Apr 28 10:38 UTC (msg): Pushes back on Joining FETCH removal. “Joining FETCH was added via explicit WG consensus to address live streaming requirements”. Argues CurrentGroupFill addresses the current group only while Joining FETCH enables fast buffer filling at join (multiple past groups). Alternative: proactive past-object inline delivery on SUBSCRIBE/PUBLISH; a parameter in SUBSCRIBE_OK communicates [Start_Group, Live_Edge), eliminating subscriber round trip. First substantive defense of Joining FETCH from a live-streaming-deployment perspective.
    • Magnus Westerlund (chair) Apr 28 10:49 UTC (msg): Chair note — difficulty interpreting consensus because participants have discussed numerous related topics without clearly stating positions on the actual consensus question. Requests explicit ballot positions. With 3 days left until the May 1 ballot deadline, the consensus call is at risk of producing no clear outcome.
    • Magnus Westerlund Apr 28 12:34 UTC (msg): “Minutes from Interim meeting 27 of April 2026” — formally publishes the interim-14 minutes on the datatracker.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). draft-ietf-moq-transport-17 still the latest WG transport draft.
  • Interop runner: Apr 29 00:38 UTC run = 23 / 68 / 14+1 pass from Apr 28 (22/69/14), back to the Apr 24 / Apr 27 reading. Walking arc: 22 → 23 → 24 → 22 → 23 → 22 → 23. The two interim-PR merges (#1611, #1609) are spec-only; the moq-dev/moq merges (#1352, #1353, #1355) merged after the Apr 29 00:38 UTC run. Most likely a flaky test or an upstream image rebuild.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: None open (3 closed).

Pages updated: discussions/discussions-2026-04.md, drafts/moq-transport.md, implementations/moq-dev.md, interop/interop-runner.md, index.md

Key findings:

Editorial-cleanup wave is the dominant story. afrind opened 5 new PRs and merged 2 in ~8 hours (Apr 28 16:21 UTC → Apr 29 00:04 UTC). The volume is unusually concentrated. Three of the new PRs implement specific interim-14 outcomes; two close longer-running 2025-era design issues (#1481 individual-track GOAWAY; #1386 LARGEST_OBJECT lying). The merge wave is conspicuously all-afrind on the new-PR side (5/5), with concurring approvals from @sharmafb (Suhas Sathyanarayana, who’s been driving recent reviews) and @sandarsh. PR #1615 (RRID removal) is the sole interim-driven PR not yet merged — now unblocked because afrind’s stated precondition (PR #1609) merged Apr 29 00:03 UTC.

PR #1608 → PR #1618 design pivot driven by yuyou’s review comment. The “Subgroup ID = first Object ID” approach was closed unmerged after WG pushback at the interim. yuyou’s Apr 28 07:29 UTC review comment on #1608 is now the template for the replacement design (PR #1618): explicitly signal the first-Object property via a header bit rather than encoding it in the Subgroup ID. The header type byte gains bit 6 (0x40), expanding the format from 0b00X1XXXX to 0b0XX1XXXX while still fitting in a 1-byte varint. This is the cleanest “WG identified the requirement, then someone unrelated to the original PR proposed a better mechanism” sequence in the wiki record so far this month.

REWIND consensus call enters chair-arbitration territory. With 3 days to the May 1 ballot deadline, chair Magnus Westerlund posted an unusual mid-thread intervention asking participants to state explicit ballot positions rather than continuing the design debate. Gwendal Simon’s same-day message defends Joining FETCH from a live-streaming-deployment perspective — the first substantive pushback on the Luke + Ian “remove Joining FETCH” framing. Gwendal’s proactive-past-object-delivery proposal (a parameter in SUBSCRIBE_OK communicating [Start_Group, Live_Edge)) is a third structural option that the thread hadn’t surfaced before. The ballot may produce no clear outcome under these conditions.

moq-dev/moq external contributor base widening rapidly. Four of the last 12 PRs/issues come from non-Luke contributors: Qizot (audio-encoder, iOS Safari), ksletmoe-aws (Karl Sletmoe / AWS, CMAF passthrough decoder), skirsten (static catalog), kubo6472 (cross-impl Cloudflare bug). The AWS PR is the first moq-dev/moq PR from an AWS-affiliated contributor. Combined with the moq-boy production-profile context in PR #1360 (“its 6 production instances”), Luke’s stack is now seeing both production deployment scaling and external contribution at a scale not seen earlier in 2026.

moq-lite-fetch readiness API takes shape. Three PRs in flight build the FETCH path at the model layer: PR #1348 (Subscription API, Apr 26), #1356 (insert_track takes TrackConsumer), #1357 (fetch_group + TrackDynamic). Luke explicitly states the design pattern in #1357: “The breaking API change is captured here so the wire-side hookup (lite ControlType::Fetch, ietf::run_fetch_stream) can land as a clean follow-up.” This is unusual scaffolding-first-then-wire ordering — Luke wants the API surface settled before FETCH semantics are implemented on the wire. Pairs with his Apr 27 issue #1614 spec-side argumentation about JOINING FETCH prioritization.

Interop matrix +1 to 23/68/14. Recovery from Apr 28’s 22/69/14 dip. Neither the spec merges (#1611, #1609) nor the moq-dev/moq merges (#1352, #1353, #1355) explain it — the latter merged after the Apr 29 00:38 UTC interop run. Most likely a flaky test or upstream image rebuild. The matrix continues to walk between 22 and 24 since draft-17 publication; no new ground broken in either direction.


2026-04-28 — Interim-14 day; WG decision REMOVE Required Request ID

TL;DR:

  • interim-2026-moq-14 takes place Apr 27 16:30 UTC. Headline WG decision: REMOVE Required Request ID from draft-18 (ianswett opens PR #1615 +3/−52, vasilvv approves within hours). Make-before-break work deferred to London hybrid interim in June. PR #1608 closed at the interim with WG agreement that the requirement (knowing the start of a subgroup) needs a different mechanism. Martin Thomson joins PR #1544 (0-RTT) review with a substantive rewrite — first time on a moq-transport PR.
  • Mailing list: REWIND consensus thread re-erupts (9 messages Apr 27-28) — Luke + Ian Swett favor CurrentGroupFill; Martin Duke defends best-effort REWIND; Gwendal Simon pushes back on Joining FETCH removal. Chair Magnus asks for explicit ballot positions.
  • Implementations: Luke’s moq-relay big day — three open PRs in <2 hours after interim: PR #1350 (mTLS HTTPS, +351/−18), PR #1352 (announcement-less relay, +6/0, resolves Apr 24 kubo6472 bug), PR #1353 (per-frame buffer, +346/−146, production-profiled memory optimization on a 66-connection 4 GB box). cloudflare/moq-rs, video-dev/moq-js, moqtail, google/quiche, birneee/quiche_moq quiet.
  • Interop: 22/69/14 (−1 vs Apr 27); back to the Apr 21–23 plateau.

Operation: Update Sources:

  • Slack: MCP working. #moq — two new posts since the Apr 27 log entry, both during the interim itself: alan-frindell Apr 27 16:32 UTC (“Interim starting now. Small number of participants so far…”) and Giovanni Marzot Apr 27 16:50 UTC (single 😞 emoji). #moq-rs / #moq-js / #libquicr quiet.
  • GitHub moq-wg repos:
    • moq-transport:
      • PR #1615 OPENED Apr 27 19:48 UTC by ian-swett (+3/−52, Remove Required Request ID, label Control Messages). Body: “Fixes #1603. Removes ‘Required Request ID’. Does not remove Request ID, because it is used by Joining Fetch and GOAWAY.” victor-vasiliev APPROVED within hours. Direct implementation of the interim decision.
      • Issue #1603 closed-pending: ian-swett Apr 27 18:42 UTC summary comment: “From today’s interim: Conclusion was to remove required-request-id from draft 18 and fix Joining Fetch (if necessary?). Those who believe some functionality in this space is useful, such as for make-before-break, should explore those use cases in more detail and further describe what, if any, dependency structure between requests is needed in MoQ. Tentative plan is to discuss these at the London hybrid interim in June.” Make-before-break work pushed to London (interim-2026-moq-08–11, June 11-12).
      • PR #1611 (PUBLISH_OK removal): ian-swett Apr 27 19:39 UTC review APPROVED with body “Reminder to retarget this.” — proceeds with retarget post-interim.
      • PR #1608 (Subgroup ID = first Object Id): ian-swett Apr 27 18:36 UTC summary of interim feedback: “1) People agreed it was important to know what the start Object ID of the Subgroup (and possibly Group?) 2) People had different concerns about restricting the Subgroup ID to be starting Object ID at the Original Publisher. 3) There was some confusion about both this proposal and what is possible in today’s Object model in terms of publishing Objects in a subgroup ‘out of order’.” — no merge yet, more iteration needed. Issue #1405 (“Single Object Subgroups don’t need a Subgroup ID”) received the same comment Apr 27 18:36 UTC.
      • PR #1534 (REDIRECT): victor-vasiliev APPROVED Apr 27 23:01 UTC after interim. afrind’s Cloudflare/Google relay-caching alignment loop (“Cacheable up to retry interval?”) still unresolved in pushed text but no longer blocking review.
      • PR #1542 (SUBSCRIBE_NAMESPACE split): Pre-interim review pass concluded in early hours of Apr 27 (already covered Apr 27 log). victor-vasiliev APPROVED Apr 27 04:00 UTC. Several afrind responses Apr 27 05:07–05:13 UTC. Looks close to merge.
      • PR #1544 (0-RTT): Forward-secrecy text removal sequence — ian-swett Apr 27 19:42 UTC: “I think I took that from HTTP/3 or the early data draft? Should I remove this?”; victor-vasiliev Apr 27 22:08 UTC: “I don’t see text like that in RFC 8470. Let’s just remove it?”; ian-swett Apr 28 01:28 UTC removed it via suggestion patch. Then martin-thomson (well-known IETF figure, IAB chair / TLS WG / former QUIC chair) joined the review at Apr 28 01:46 UTC with a substantive rewrite suggestion for the introductory sentences: rewriting “QUIC 0-RTT provides the option for a client to initiate transactions immediately after attempting to establish a connection…” and clarifying the WebTransport restriction.
      • Issue #1614 OPENED Apr 27 19:11 UTC by luke-curley (split from #1358): “(JOINING) FETCH + SUBSCRIBE prioritization”. Body: “as it stands in the current draft, it’s implementation specific how to prioritize these two requests. Ideally, we want the JOINING FETCH first… However, this doesn’t work properly when NextGroup starts. The higher priority JOINING FETCH takes precedence over order=DESC.” Concrete TTV math. Concludes: “Basically, we need order=DESC support for JOINING FETCH. Either some way of prioritizing between the SUBSCRIBE + JOINING FETCH, or cancelling the JOINING FETCH if the next group starts (kinda gross), or add back the LargestGroup filter (pls).” Self-comment Apr 27 19:16 UTC: “Effectively, I want to race to determine if it’s faster to: Download all of the current group (at network speed), or Wait for the next group. SUBSCRIBE filter=CurrentGroup order=DESC does this perfectly. I don’t think it’s possible in the current draft.”
      • Issue #1616 OPENED Apr 28 03:09 UTC by mope-life (Dustin Ross, new contributor): “Both PUBLISH_NAMESPACE and NAMESPACE are responses to SUBSCRIBE_NAMESPACE”. Spotted a textual inconsistency in §1588-1592 vs §3404-3408 of draft-ietf-moq-transport.md. afrind Apr 28 03:43 UTC: “It should only be NAMESPACE since draft-16. We will clean this ul[sic].” Editorial cleanup item.
      • Other interim agenda PRs (#1604 / #1605 / #1607 / #1591 / #1378): no new substantive comments. PR #1607 received a non-text luke-curley COMMENTED review at Apr 27 19:40 UTC.
    • msf:
      • PR #133 (suhas-nandakumar, “Add SCTE-35 support and CEA-608/708 accessibility fields”, fixes #95) — suhas pinged @wilaw Apr 27 19:19 UTC after pushing fixes for Will’s earlier feedback.
      • PR #122 (suhas-nandakumar, “initial text on zapping”, fixes #110, +2627/0) — suhas pinged @wilaw Apr 27 18:56 UTC requesting another review pass.
    • loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • moq-dev/moq — three new PRs from luke-curley in <2 hours after the interim, plus an external opener:
      • PR #1350 OPENED Apr 27 22:24 UTC (+351/−18) — moq-relay: authenticate HTTPS callers via the cluster mTLS CA. The QUIC server already short-circuits to AuthToken::unrestricted() when a peer presents a client cert signed by --server-tls-root, but the HTTPS web server (/announced, /fetch, /ws/*) didn’t. New MtlsAcceptor wraps RustlsAcceptor, installs WebPkiClientVerifier with .allow_unauthenticated(), and a per-connection tower middleware (SetMtlsExtension) injects an Option<MtlsPeer> request extension. SIGUSR1 cert hot-reload preserved on the mTLS path. CodeRabbit flagged a 🟠 Major issue: combined with CorsLayer::allow_origin(Any), an arbitrary website could read /announced and /fetch through a browser that auto-selects or has approved a matching client cert. Luke posted six self-review comments Apr 27 23:15–23:28 UTC — same self-review pattern as PR #1343.
      • PR #1352 OPENED Apr 27 23:59 UTC (+6/0) — Handle relays without announcement subscription support. Direct response to issue #1346 (kubo6472’s Apr 24 cross-impl Cloudflare-relay catalog-discovery bug). Changes announced getter type from Set<Path.Valid> to Set<Path.Valid> | undefined; when connecting to mediaoverquic.com the system explicitly sets announced to undefined and treats it as reload=false, preventing indefinite waiting for announcements that will never arrive. CodeRabbit flagged hostname-suffix matching false-positive risk; Luke pushed a fix at Apr 28 00:07 UTC.
      • PR #1353 OPENED Apr 28 00:27 UTC (+346/−146) — moq-lite: per-frame buffer + BufMut producer to cut relay memory. Production-profiled memory optimization — Luke profiled a relay with ~66 connections at 2.7 GB RSS on a 4 GB box, attributing ~234 MB to per-chunk Bytes headers, ~254 MB to retained frame state, and ~446 MB to quinn’s reassembly arena that was being pinned by held Bytes. Replaces FrameState.chunks: Vec<Bytes> with FrameBuf — a single Arc-shared, fixed-capacity heap allocation per frame. FrameProducer now impl bytes::BufMut so the receive path writes quinn stream bytes directly into the pre-allocated buffer via read_buf. FrameConsumer tracks a byte cursor and materializes transient Bytes views via Bytes::from_owner(buf.clone()).slice(..). Net effect: one memcpy, no per-chunk Bytes headers, no quinn-arena pinning.
      • Issue #1351 OPENED+CLOSED Apr 27 23:15 UTC → Apr 28 00:10 UTC by metapox (taku): “Container.Legacy.Consumer.next() returns undefined after 20-60 frames with multiple concurrent tracks”. Reported against @moq/hang 0.2.4 + @moq/lite 0.2.2 against moq-relay 0.10. Luke replied Apr 27 23:18 UTC: “recvGroup() should only return undefined when the track has finished. Can you verify this is not happening? Yeah, I need more information, this should never happen.” metapox followed up Apr 28 00:08 UTC: “After further investigation, I was unable to reproduce this issue in a clean environment. Both recvGroup() and Container.Legacy.Consumer work correctly with multiple groups and 200+ frames. The original report was likely caused by an unstable publisher on my side. Sorry for the noise — feel free to close this.” — false-alarm closure.
      • PR #1349 (skirsten static catalog) — no new pushed code, last activity Apr 28 01:27 UTC (CodeRabbit re-review).
      • PR #1348 (moq-lite-fetch Subscription model) — no new pushed code, last activity Apr 28 00:27 UTC.
      • No new merges to main since Apr 26 (PRs #1340 + #1343).
    • cloudflare/moq-rs, video-dev/moq-js, moqtail/moqtail, google/quiche (moqt), birneee/quiche_moq: No activity in the window.
  • Mailing list — The “Consensus call on way forward on REWIND” thread RE-ERUPTS (9 messages Apr 27 06:55 UTC → Apr 28 02:03 UTC). Magnus Westerlund’s Apr 16 consensus call (ballot deadline May 1) had been quiet for 9 days; the interim discussion pushed the design debate back onto the list:
    • Suhas Nandakumar Apr 27 06:55 UTC (replying to Gwendal Simon’s earlier ABR-switching argument): “IIUC REWIND was not addressing this use-case. Looks like the switch needs continuous groups with no gaps as it expects Relay to have cached the objects. REWIND does give up if there are gaps.”
    • Luke Curley Apr 27 08:33 UTC: “Imagine if HTTP operated based on the cache state… a HTTP server was allowed to return a partial response with byte range 68-419.” Argues against cache-state-dependent behavior; would support REWIND if it required best-effort upstream retrieval.
    • Gwendal Simon (Synamedia) Apr 27 16:12 UTC: Acknowledges Luke’s feedback re PR #1378. “REWIND delivery begins at the start of the latest gap-free run of Groups, skipping earlier Groups with gaps.” Notes SWITCH has stricter requirement: “for every Group in the range, if available on current Track, must be available on target Track”. Symmetric gaps OK. Commits to updating #1378 with explicit cache-continuity condition.
    • Martin Duke Apr 27 12:23 UTC: Defends best-effort design. “The ‘best-effortness’ of REWIND is critical to the design, and is consistent with what I briefed in Boulder.”
    • Luke Curley Apr 27 12:46 UTC: Reiterates HTTP analogy + supports PR #1607 (Largest Available Group filter) instead.
    • Martin Duke Apr 27 12:52 UTC: Compromise proposal — “would you accept something that is still best-effort (i.e. the publisher MAY refuse based on its cache state) but does not preclude the relay doing something more aggressive” (best-effort floor, allow more aggressive).
    • Luke Curley Apr 27 13:18 UTC: Agrees: “A relay MUST deliver objects within a sub-group in order (SUBSCRIBE semantics). Otherwise, the relay MUST skip the remainder of the sub-group.”
    • Luke Curley Apr 27 13:32 UTC (clarification): Fragmented-cache options — relay may serve partial sub-groups, request upstream via REWIND/FETCH, or skip sub-groups entirely. “Relays must deliver objects within sub-groups in order per SUBSCRIBE semantics. If unable to maintain order, the relay must skip the remainder of that sub-group. Skipping entire groups will negatively impact user experience, similar to a FETCH returning an error.”
    • Ian Swett Apr 28 02:03 UTC: “I’m open to some variant of REWIND, but not very optimistic that we’ll get consensus on anything more complex than CurrentGroupFill.” Endorses CurrentGroupFill (Alan Frindell’s sketched alternative) — “the main rationale for pursuing more complex solutions like REWIND would be enabling removal of the Joining Fetch mechanism entirely”. Would support removing Joining Fetch if CurrentGroupFill adopted, but uncertain about WG support.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). draft-ietf-moq-transport-17 still the latest WG transport draft.
  • Interop runner: Apr 28 00:37 UTC run = 22 / 69 / 14−1 pass from Apr 27 (23/68/14), regressing back to the Apr 21–23 / Apr 26 plateau. The walking arc since draft-17 publication: 22 → 23 → 24 → 22 → 23 → 22. Most plausible cause: flaky test or an upstream image rebuild. moq-dev/moq’s Apr 27 PRs (#1349, #1350, #1352, #1353) are all still open, so they shouldn’t have rebuilt the docker image. moqtail’s draft-16 work also remains on a branch.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: None open (3 closed).

Pages updated: discussions/discussions-2026-04.md, discussions/interim-meetings.md, drafts/moq-transport.md, implementations/moq-dev.md, interop/interop-runner.md, index.md

Key findings:

Interim outcome on RRID: REMOVE. The biggest spec decision of the interim is now in the editor’s copy as PR #1615 (ian-swett, Apr 27 19:48 UTC, +3/−52). victor-vasiliev approved within hours. Required Request ID is being removed from draft-18, not flow-controlled (Alan’s PR #1613) or restructured (Martin’s PR #1604 — joining FETCH on SUBSCRIBE stream). The structural-fix camp won the conceptual argument: RRID’s use cases (make-before-break, dependency ordering) didn’t justify keeping the field in the wire format. Make-before-break design work is deferred to the London hybrid interim in June (interim-2026-moq-08–11, June 11-12). Net: PR #1604 and PR #1613 both lose their headline justification; #1615 lands the simplest possible resolution. Request ID itself stays — Joining FETCH and GOAWAY still need it.

REWIND consensus thread breaks the dam. After 9 calendar days of post-Apr-16-consensus-call silence, the thread re-erupted with 9 messages over 19 hours during/after the interim. Two crystallizing positions: (a) Luke Curley + Ian Swett favor CurrentGroupFill — the simpler band-aid Alan sketched on Apr 17, no relay-side backfill, just current-group-with-fill semantics. Ian states explicitly that “I’m open to some variant of REWIND, but not very optimistic that we’ll get consensus on anything more complex than CurrentGroupFill” and would support removing Joining Fetch entirely if CurrentGroupFill landed. (b) Martin Duke defends REWIND’s best-effort semantics as critical to the design, but accepts a compromise framing: best-effort floor, allow relays to do something more aggressive. The HTTP-style “publisher MUST attempt upstream retrieval” framing Luke initially pushed has been weakened to a sub-group-ordering MUST that Luke agreed to. Suhas raised a structural challenge: REWIND can’t handle gapped caches, which Gwendal’s PR #1378 SWITCH does. Gwendal committed to updating SWITCH with an explicit cache-continuity condition. The May 1 consensus-call deadline is now 3 days away.

moq-relay big day from Luke: mTLS for HTTPS, announcement-less relay handling, per-frame buffer. Three open PRs in <2 hours after the interim, two of which directly address operational reality. PR #1350 (mTLS HTTPS, +351/−18) closes the gap between the QUIC server’s mTLS short-circuit and the HTTPS REST surface (/announced, /fetch, /ws/*) — important for any cluster-internal HTTPS callers (e.g., a control plane behind the same mTLS root). CodeRabbit flagged the CORS/browser-readable-GET issue; not yet addressed. PR #1352 (announcement-less relay, +6/0) is a tiny but operationally significant patch — directly resolves the Apr 24 kubo6472 cross-impl bug (issue #1346) by hardcoding mediaoverquic.com as a relay that doesn’t support announcement subscriptions and short-circuiting the indefinite-wait logic. (CodeRabbit flagged the suffix-match false-positive, fixed.) PR #1353 (per-frame buffer, +346/−146) is a production-profiled memory optimization — Luke’s profiling on a real ~66-connection relay attributed ~234 MB to per-chunk Bytes headers and ~446 MB to pinning quinn’s reassembly arena, then rewrote frame storage to a single Arc<FrameBuf> per frame with BufMut-driven direct writes. Together these three PRs continue the Apr 26 SaaS-multi-tenancy push (slug routing + wait_for_broadcast) by tackling the next layer down: HTTPS auth, peer-impl differences, and memory cost-per-connection.

Issue #1346 (kubo6472) closed in PR by mode rather than fix. The cross-impl Cloudflare-relay catalog-discovery friction the user reported Apr 24 is now resolved in moq-lite via explicit knowledge that mediaoverquic.com doesn’t support SUBSCRIBE_NAMESPACE. Strictly, moq-lite stops waiting for the announcements that will never arrive; the underlying interop gap (Cloudflare moq-rs not implementing announcement subscriptions) is unchanged. From Luke’s side this is a pragmatic move — preserves the user-visible behavior of <moq-watch catalog-format=msf> against a Cloudflare endpoint at the cost of hardcoding a single relay URL into the moq-lite source.

Martin Thomson joins PR #1544 review. Martin Thomson (former QUIC WG chair, IAB member, very senior IETF security/transport reviewer) posted a substantive rewrite suggestion on the 0-RTT introductory text at Apr 28 01:46 UTC. First time on a moq-transport PR within April 2026’s wiki record. PR #1544 had been parked since Mar 8 with only ianswett activity; Vasilvv started reviewing Apr 27, and now Thomson. The review is becoming serious and the security-considerations text needs a rewrite before merge — not surprising for 0-RTT but a notable widening of the reviewer pool.

Interop matrix walks back into the plateau at 22/69/14. Apr 28 = 22/69/14, −1 from Apr 27. Five-day arc: 22 → 23 → 24 → 22 → 23 → 22. None of moq-dev/moq’s Apr 27 PRs have merged to main, so docker images shouldn’t have rebuilt. Most likely a flaky test or an unrelated impl rebuild. The matrix neither at the Apr 25 peak (24) nor at the Apr 19–20 trough (18) — stuck at the post-draft-17 plateau.


2026-04-27 (deep-dive) — Wire-format diff across moq-transport draft-14/16/17

TL;DR:

  • User query: scrutinize Group/Subgroup/Object encoding and stream/channel framing across draft-14, -16, -17. Conceptual data model is stable across 14/16/17; draft-15/16 was the wire-format upheaval (bit-flag Type fields, FETCH redesigned with delta encoding); draft-17 is mostly rename + the bidi-stream-per-request architecture change.
  • New page concepts/streams-and-framing.md; major rewrites of subgroups-and-objects.md and track-properties.md; downloaded the missing draft-16 source.
  • Implementations: n/a — research-only deep-dive, no impl activity inspected.
  • Interop: n/a — research-only deep-dive, no runner check.

Operation: User query — “Scrutinize the concepts page and the description of the groups, subgroups, objects for their definitions and encoding. … description of any differences between draft 14, 16, 17. The same goes for channels and streams.”

Sources read:

  • sources/ietf-drafts/draft-ietf-moq-transport-14.txt
  • sources/ietf-drafts/draft-ietf-moq-transport-17.txt
  • sources/ietf-drafts/draft-ietf-moq-transport-16.txt (downloaded fresh from https://www.ietf.org/archive/id/draft-ietf-moq-transport-16.txt — this version was missing from the local source mirror).

Sections compared in each draft: §1.3 Stream Management Terms, §2 Object Data Model (incl. §2.1 Objects, §2.2 Subgroups, §2.3 Groups, §2.4 Track Naming, §2.5 Extension Headers/Properties), §10.1 Track Alias, §10.2 Objects, §10.2.1 Object Status / Extension Headers / Properties, §10.3 Datagrams, §10.4 Streams (incl. §10.4.2 Subgroup Header and the FETCH per-Object format).

Pages updated:

  • concepts/subgroups-and-objects.md — major rewrite. Now contains version-by-version wire-format diagrams for SUBGROUP_HEADER + Object, OBJECT_DATAGRAM, and FETCH per-Object header across 14/16/17, plus a delta-encoding summary table covering Group ID / Subgroup ID / Object ID / Publisher Priority / Properties on each stream type. Calls out PR #1586 (FETCH delta encoding, merged Apr 27) and PR #1608 (Subgroup ID = first Object ID).
  • concepts/track-properties.md — added the “Naming Evolution” table (Object Extension Headers → Extension Headers → Properties), the delta-encoded KVP Type rule new in draft-16, and draft-17’s reserved application-private code-point ranges.
  • concepts/streams-and-framing.mdnew page. Covers the bidi-stream architecture change in draft-17 (control stream → SETUP unidirectional pair + bidi-per-request), the unidirectional Stream-Type code-point table (0x05 FETCH, 0x10..0x1D SUBGROUP, 0x2F00 SETUP), the OBJECT_DATAGRAM bit-flag layout, and the Stream Cancellation reset-code registry across 14/16/17.
  • index.md — added streams-and-framing to Protocol Concepts; tagged subgroups-and-objects and track-properties with their version-diff scope.

Sources mirror updated: added draft-ietf-moq-transport-16.txt (237 KB, 4988 lines) — the previously-missing intermediate version.

Key findings (synthesized):

  1. Conceptual data model is stable across 14/16/17. Track / Group / Subgroup / Object definitions are essentially the same. Wording polish in 16/17 only — the only substantive changes are: (a) the three-state Object existence model added in 16; (b) Track Namespace gaining an explicit on-wire structure in 16, then the lower bound dropping from 1 to 0 fields in 17; (c) “forwarding preference” moving from Track-level (14) to per-Object (16+).

  2. draft-15/16 was the wire-format upheaval. SUBGROUP_HEADER and OBJECT_DATAGRAM Type fields moved from enumerated values to bit-flag layouts, gaining the DEFAULT_PRIORITY flag that lets Publisher Priority be inherited from the subscription. Extensions wrapped in a named Extensions { Length, Headers } struct. Subgroup ID encoding moved to a 2-bit SUBGROUP_ID_MODE field. FETCH per-Object header was completely redesigned: a single Serialization Flags varint gates the presence of every field and supports delta encoding from the prior Object, with two reserved values 0x8C / 0x10C for End-of-Non-Existent-Range / End-of-Unknown-Range. Object Status was removed from FETCH responses and SUBSCRIPTION-only thereafter. KVP types delta-encoded.

  3. draft-17 is mostly a rename + cleanup, with one big architectural change. Wire-byte layout of subgroup objects, datagrams, and FETCH per-Object framing is byte-identical to draft-16. The data-plane changes are: Extension HeadersProperties everywhere (including the bit name in the Type field); (i)(vi64) annotation backed by a self-contained varint definition (§1.4.1) that extends the integer range from RFC-9000’s 2⁶²−1 to 2⁶⁴−1 via a new 9-byte encoding (prefix 11111111), omits the 7-byte length, and reserves 11111100 as invalid (PR #1595). The architectural change is bidirectional-stream-per-request: SETUP moves from a single bidi control stream to a pair of unidirectional control streams (new code point 0x2F00), and SUBSCRIBE / PUBLISH / FETCH / PUBLISH_NAMESPACE / SUBSCRIBE_NAMESPACE / TRACK_STATUS each open their own bidirectional request stream. Plus a new normative datagram check (STATUS + PROPERTIES with non-Normal status → PROTOCOL_VIOLATION) and a clarification of “prior Object” semantics across End-of-Range markers in FETCH.

  4. PR #1586 (merged Apr 27 2026, into post-17 main, +32/−23) is a textual cleanup of the FETCH-response delta-encoding rule already introduced in draft-16. Final normative wording: “If the Group ID Delta field is present, the Object ID is the value of Object ID Delta if present. When the Group ID Delta field is not present, the Object ID is the prior Object’s ID plus the Object ID Delta if present.” Closes Martin Duke’s long-running #877 “Pack the bits”. Not a redesign of the draft-16 Serialization Flags scheme.

2026-04-27 (interim) — Pre-interim editor warm-up; moq-dev opens FETCH-readiness PR

TL;DR:

  • PR #1586 (FETCH delta encoding) merges, closing Martin’s long-running #877 “Pack the bits”.
  • Pre-interim review pass: Suhas on #1542 (SUBSCRIBE_NAMESPACE/TRACKS split, 7 inline comments), Vasilvv on #1534 (REDIRECT) and #1544 (0-RTT).
  • Implementations: moq-dev/moq merges PR #1340 (+182/−5, wait_for_broadcast) and PR #1343 (+283/−26, subdomain slug routing); opens FETCH-readiness PR #1348 (+1049/−471). External PR #1349 from skirsten (+196/−13) adds static catalog mode to <moq-watch>. cloudflare/moq-rs, video-dev/moq-js, moqtail, google/quiche, birneee/quiche_moq all quiet.
  • Interop: 23/68/14 (+1 vs Apr 26, −1 below Apr 25 high of 24/67/14).

Operation: Update Sources:

  • Slack: MCP verified working. #moq / #moq-rs / #moq-js / #libquicr all quiet — no new posts in any channel since ian-swett’s Apr 23 14:12 UTC i18n review request. Four+ days of silence on the eve / morning of the interim.
  • GitHub moq-wg repos:
    • moq-transport:
      • PR #1586 MERGED Apr 27 05:24 UTC by alan-frindell (+32/−23, Make Object ID and Group ID delta encoded in Fetch responses). Final suggested-text patch landed at 05:23 UTC immediately before merge. Closes martin-duke’s Issue #877 (“Pack the bits”) and Issue #1345 (“Separate the list of reasons for malformed tracks into two lists”, yekuiwang) — both closed Apr 27 05:24 UTC.
      • PR #1542 review pass (Split SUBSCRIBE_NAMESPACE / SUBSCRIBE_TRACKS) — suhas-nandakumar posted seven inline comments Apr 27 03:18–03:40 UTC: suggested SUBSCRIBE_NAMESPACES plural rename; “I think we don’t allow for the tracks to be echoed by default (sub-ns with self track commit)”; clarifying-question on REQUEST_UPDATE-prefix-narrowing as error; “may be you need to add one line that says what does ‘First’ mean here?”; “should we also add a note to say the namespace, namespace done, publish, publish done messages all get sent on the same bidirectional stream?”; “why did we remove this?”. afrind responded Apr 27 04:59–05:23 UTC: “It is not an error. It is only an error if the new namespace overlaps with a different sub_ns.” / “It was removed in #1596, I updated here to match.” / suggested-text “messages for tracks within matching namespaces, excluding tracks published by the subscriber.” / ”🤷 I can spend 45 seconds asking in the interim” (one item explicitly deferred to live discussion).
      • PR #1534 review pass (Add REDIRECT) — suhas-nandakumar Apr 27 03:15 UTC: “I am not sure how a relay would know the right FullTrackName which is application scoped.” (afrind replied “via configuration rules typically, it’s not in-band”). victor-vasiliev reviewed Apr 27 03:52 UTC: “This overall looks good, but we do need text on relay behavior (forwarding and caching).” afrind Apr 27 05:00 UTC: “@vasilvv Do you remember what we agreed to say? Cacheable up to retry interval?” — Cloudflare/Google relay-caching alignment loop opened ~3 hours pre-interim.
      • PR #1544 (Improve Startup Latency and 0-RTT, ianswett, opened Mar 8) — victor-vasiliev reviewed Apr 27 04:09 UTC: “I don’t understand what forward secrecy has anything to do with the text of this section.” First post-park signal on the PR.
      • Other interim agenda PRs (#1603 / #1604 / #1605 / #1607 / #1608 / #1609 / #1611 / #1613): no new comments.
    • msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: No new issues, no new PRs, no new comments.
  • Implementation repos:
    • moq-dev/moq:
      • PR #1340 MERGED Apr 26 16:26 UTC by luke-curley (+182/−5) — moq-lite: add OriginConsumer::wait_for_broadcast; deprecate consume_broadcast. Fixes the moq-gst sync-lookup footgun.
      • PR #1343 MERGED Apr 26 16:35 UTC by luke-curley (+283/−26) — relay: add subdomain-based slug routing for customer isolation. The 🔴 Critical WS/web auth-handler bypass that CodeRabbit flagged Apr 23 was resolved before merge. First SaaS-style multi-tenancy primitive in moq-relay.
      • PR #1348 OPENED Apr 26 15:38 UTC by luke-curley (+1049/−471) — moq-lite: backport Subscription model API for FETCH readiness. First FETCH-readiness commit on moq-lite-fetch. Backports Subscription / TrackSubscriber model-layer API from dev’s PR #1134. Track loses priority; new Subscription { priority, ordered, max_latency, start, end } carries it. CodeRabbit flagged 🔴 Critical: aggregator’s start/end reduce treats None as “no preference” but the doc says start: None = “deliver all cached history” / end: None = “no end (live)” — semantics mismatch.
      • PR #1349 OPENED Apr 27 01:32 UTC by skirsten (Simon Kirsten, external contributor, +196/−13) — @moq/watch: add static catalog format. Third catalog mode beyond hang / msf: static lets callers pass a Catalog.Root directly. Promotes Broadcast.catalog to writable Signal<Catalog.Root | undefined>. CodeRabbit 🟡 Minor: finally clears a potentially user-owned signal. Second contributor-driven catalog-format extension to <moq-watch> after Luke’s MSF (PR #1330).
      • PR #1341 (Refactor media producers) — Luke posted 8 inline self-review comments Apr 26 16:08–16:16 UTC: “release-plz will bump this; don’t manually do it.” / “just call it init honestly. Also is there some serde_as thing we could use instead of String?” / “Could we avoid making this pub?” / “I don’t think we should remove these jitter calculations. Maybe make a jitter.rs helper instead of copy-pasting? jitter isn’t a great name, really it should be min_frame_duration or something.” — same self-review pattern as PR #1343 used pre-merge.
    • moqtail/moqtail, cloudflare/moq-rs, video-dev/moq-js, google/quiche (moqt), birneee/quiche_moq: No activity in the window.
  • Mailing list: Apr 26 Weekly GitHub digest from Repository Activity Summary Bot (covers Apr 19–26 across moq-charter, moq-transport, moq-requirements, warp-streaming-format, loc, wg-materials). Highlights match what the wiki already tracks: +1 issue (#1612 “What happens to Joining FETCH if fwd changes to 0?”), 1 closed, 5 PRs submitted, 6 receiving 9 comments. No new individual posts since alan-frindell’s Apr 24 18:26 PDT slides-folder reply.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). draft-ietf-moq-transport-17 still the latest WG transport draft.
  • Interop runner: Apr 27 00:34 UTC run = 23 / 68 / 14+1 pass vs. Apr 26 (22/69/14), but still −1 below the Apr 25 high (24/67/14). Matches the Apr 24 reading and the Apr 15–16 baseline. Walking-arc-with-regression: 22 → 23 → 24 → 22 → 23. The flipped test is not exposed in the summary report. Most plausible cause: PR #1340 (wait_for_broadcast) flowing through moq-dev-rs / moq-dev-js docker rebuilds.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: None open.

Pages updated: discussions/discussions-2026-04.md, implementations/moq-dev.md, interop/interop-runner.md, drafts/moq-transport.md, index.md

Key findings:

Pre-interim warm-up on PR #1542 / #1534 / #1544 — Suhas Nandakumar conducted a substantial pre-interim review pass on PR #1542 (SUBSCRIBE_NAMESPACE/SUBSCRIBE_TRACKS split), posting seven inline comments in 22 minutes (Apr 27 03:18–03:40 UTC) raising semantics questions about self-track-echo, REQUEST_UPDATE-prefix-narrowing-as-error, “First message” definition, and the bidi-stream-pinning convention. afrind responded systematically over 24 minutes (04:59–05:23 UTC), explicitly deferring one item to “the interim itself” with ”🤷 I can spend 45 seconds asking in the interim”. Separately, Vasilvv reviewed PR #1534 (REDIRECT) approving the structure but flagging missing relay-behavior text — opening a Cloudflare/Google caching-alignment loop that afrind acknowledged with “@vasilvv Do you remember what we agreed to say? Cacheable up to retry interval?“. Vasilvv also pushed back on PR #1544’s (0-RTT) forward-secrecy framing as a pre-merge blocker. Classic editor warm-up: groom text in PR comments to either land or punt before the call.

PR #1586 lands and closes “Pack the bits” — afrind merged the FETCH delta-encoding PR at Apr 27 05:24 UTC, just hours before the interim, and used it to close two long-running issues: Martin Duke’s #877 “Pack the bits” (one of the older open Martin issues) and yekuiwang’s #1345 (malformed tracks reasons split). Final suggested-text iteration landed at 05:23 UTC immediately before merge. The PR resolves the Apr 23 mid-group-FETCH ambiguity afrind flagged. This is the second main merge in the post-draft-17 era after PR #1606 (stream reset codes) on Apr 23 — moving the editor needle on cleanup as the WG approaches the meeting.

moq-dev/moq big day: #1340 + #1343 merged, #1348 opens for FETCH — Luke pushed two relay-infra primitives through to main Apr 26 16:26–16:35 UTC: wait_for_broadcast (fixes the moq-gst sync-lookup footgun) and subdomain-based slug routing (the first SaaS-style multi-tenancy primitive in moq-relay; resolves the Apr 23 🔴 Critical WS/web auth-handler bypass before merge). Then opened the major FETCH-readiness foundation PR #1348 at 15:38 UTC: backports the Subscription / TrackSubscriber model-layer API from dev’s PR #1134 onto moq-lite-fetch (+1049/−471). Goal stated explicitly: “Land the API surface FETCH needs without implementing FETCH wire/stream handling — fetch can plug into TrackSubscriber::update once the wire path is added.” Pairs with Luke’s Apr 24 spec-side argumentation on issue #1358 about JOINING FETCH priority limitations — Luke wants both API and design clarity locked in before FETCH wire ships. CodeRabbit flagged a 🔴 Critical semantics mismatch in the start/end aggregator that needs fixing before merge.

External PR #1349 from skirsten — second contributor-driven catalog-format extension — Simon Kirsten opened PR #1349 at Apr 27 01:32 UTC adding a third catalog mode (static) to <moq-watch>. After Luke’s own MSF mode (PR #1330) and now an external static mode, the catalog-format-as-attribute API is gaining contributor mindshare. The PR also promotes Broadcast.catalog from getter to writable Signal<Catalog.Root | undefined> — a public-API change that needs Luke’s review.

Interop matrix walks back into interim parity at 23/68/14 — Apr 27 00:34 UTC = 23/68/14, +1 from Apr 26 (22/69/14), but −1 below the Apr 25 high (24/67/14). The walking arc is 22 → 23 → 24 → 22 → 23 over five days. Still matches the Apr 24 reading and the Apr 15–16 baseline. Implementation activity in the relevant window includes moq-dev/moq’s two main merges, of which wait_for_broadcast (PR #1340) is the more plausible cause for a moq-dev-rs / moq-dev-js image rebuild that flipped one pair (it directly affects relay/origin lookups). The matrix walks into the Apr 27 interim at parity with Apr 24, neither at peak nor at the Apr 21–23 plateau.


2026-04-26 — Pre-interim lull; moqtail absorbs two big draft-16 merges

TL;DR:

  • moq-wg spec side completely quiet — interim agenda PRs all silent ahead of the Apr 27 meeting.
  • moq-dev issue #1346 root-caused as Firefox/GPU/driver, not a moq-lite or @moq/watch defect.
  • Implementations: moqtail draft-16 branch lands PR #168 (+1094/−443, FETCH wire format) + PR #169 (+994/−593, Message Parameters migration) — ~2.1k LOC combined, largest moqtail draft-16 day since Apr 14–16. moq-dev/moq merges PR #1345 (+108/0, Python examples) and dependabot PR #1347 (rustls bump). cloudflare/moq-rs, video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 22/69/14 (−2 vs Apr 25 high of 24/67/14; back to the Apr 21–23 plateau).

Operation: Update Sources:

  • Slack: MCP verified working. #moq / #moq-rs / #moq-js / #libquicr all quiet — no new posts in any channel since ian-swett’s Apr 23 14:12 UTC i18n review request. Three-plus calendar days of silence on the eve of the Apr 27 interim.
  • GitHub moq-wg repos:
    • moq-transport, msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: No new issues, no new PRs, no new comments since the Apr 25 log entry. Pre-interim lull — the headline interim agenda PRs (#1603 / #1604 / #1605 / #1607 / #1608 / #1609 / #1611 / #1613) are all quiet; discussion has likely moved to the meeting itself or offline conversations.
  • Implementation repos:
    • moq-dev/moq:
      • PR #1345 MERGED Apr 25 15:13 UTC by luke-curley (+108/−0) — py/moq-lite: add clock + announced examples. Adds two Python examples for the moq-lite Python bindings.
      • PR #1347 MERGED Apr 25 14:47 UTC by dependabot[bot] (+2/−2) — Bump rustls-webpki 0.103.12 → 0.103.13. Routine.
      • PR #1343 (subdomain-based slug routing) — still OPEN. Luke posted two self-review rounds on Apr 25 (22:09 UTC and 22:40 UTC) with five inline comments addressing CodeRabbit’s earlier feedback (“IMO do one strip_suffix call.” / “Maybe add the leading . to the domain after parsing the config file?” / “We could replace . with / to support multiple paths.” / “We should also lowercase and add a . prefix here.” / “Why is this public? IDK seems like it’s too specific.”). A new CodeRabbit review (Apr 24 22:22 UTC) suggests pre-canonicalizing suffixes to lowercase in Auth::new. The 🔴 Critical WS/web auth-handler bypass is still not addressed in pushed code.
      • Issue #1346 (catalog-discovery / “how to build something with this”) — saw ~7 substantive exchanges between @kubo6472 and Luke on Apr 25 14:17–19:15 UTC. Root cause confirmed at 19:15 UTC: kubo6472 switched to Chromium on Linux Mint and both /watch/live and moq.dev/watch started working — original tearing was a Firefox/GPU/driver issue, not a moq-lite or @moq/watch defect. Luke confirmed “I’m working on DVR (rewind). It’ll be at least a few months.” The underlying cross-impl Cloudflare-relay catalog-discovery bug (SUBSCRIBE_NAMESPACE not implemented) and the docs gap remain. Issue still OPEN.
    • moqtail/moqtail: Two large merges into the draft-16 integration branch within 2 minutes on Apr 25 afternoon UTC:
      • PR #168 MERGED Apr 25 17:15 UTC by @ctllmp (+1094/−443) — closes #115. Lands the FETCH-object wire format finalized in the Apr 23 PR comment.
      • PR #169 MERGED Apr 25 17:17 UTC by @fatih-alperen (+994/−593). Migrates FETCH, SUBSCRIBE_NAMESPACE, PUBLISH_NAMESPACE, and TRACK_STATUS messages from older-draft key-value pairs to draft-16 Message Parameters.
      • Together: ~2.1k lines across moqtail-rs + moqtail-ts in lockstep — largest moqtail draft-16 day since the Apr 14–16 burst. The umbrella PR #145 (zafergurel) remains open against main.
    • cloudflare/moq-rs, video-dev/moq-js, google/quiche (moqt), birneee/quiche_moq: No activity in the window.
  • Mailing list: No new posts since alan-frindell’s Apr 24 18:26 PDT (Apr 25 01:26 UTC) reply with the slides folder link. Three-plus calendar days of silence ahead of the Apr 27 interim.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). draft-ietf-moq-transport-17 still the latest WG transport draft.
  • Interop runner: Apr 26 00:34 UTC run = 22 / 69 / 14two-test regression from the Apr 25 high-water mark of 24/67/14, dropping back to the Apr 21–23 plateau. Breaks the three-day improvement arc. Most likely a flaky test or an upstream image rebuild for one of the other matrix entries — moqtail’s draft-16 work landed on the integration branch, not main, so docker images shouldn’t have changed; moq-dev/moq merged only a Python examples PR and a dep bump, neither of which touches the wire path.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: None open.

Pages updated: discussions/discussions-2026-04.md, implementations/moq-dev.md, implementations/moqtail.md, interop/interop-runner.md, index.md

Key findings:

Pre-interim lull on the spec side — Zero activity across all moq-wg repos in the Apr 25 02:00 UTC → Apr 26 00:34 UTC window: no new issues, no new PRs, and no new comments on any of the eight headline Apr 27 interim agenda PRs (#1603 RRID DoS, #1604 Joining FETCH onto SUBSCRIBE, #1605 delivery timeout, #1607 Largest Available Group filter, #1608 Subgroup ID alignment, #1609 forward-state-mismatch error, #1611 PUBLISH_OK removal, #1613 MAX_REQUEST_UPDATES). After the Apr 24 burst when Luke Curley posted three substantive comments in 52 minutes weighing in on the design, the editors and contributors have gone silent — three-plus calendar days of mailing-list silence too. Discussion has clearly moved offline or to the live meeting tomorrow. The interim agenda is now frozen-in-place: published slides for #1608, 1603, #1613, #1605; Victor Vasiliev’s still-private RRID alternative will be the wildcard.

moqtail’s draft-16 branch absorbs two big merges in 2 minutes — Apr 25 17:15 UTC and 17:17 UTC saw PR #168 (FETCH-object bitmask + delta encoding, +1094/−443, by @ctllmp) and PR #169 (Message Parameters migration for FETCH / SUBSCRIBE_NAMESPACE / PUBLISH_NAMESPACE / TRACK_STATUS, +994/−593, by @fatih-alperen) merged into the draft-16 integration branch. Together ~2.1k LOC across moqtail-rs and moqtail-ts — the largest moqtail day for draft-16 since the Apr 14–16 burst, and the cleanest single-day signal that moqtail is chasing draft-16 conformance for both languages in lockstep. Umbrella PR #145 (zafergurel) still open against main; until that lands, draft-16 work won’t appear in the moqtail interop docker image.

moq-dev #1343 self-review rather than push — Luke posted two self-review rolls on PR #1343 (subdomain-based slug routing) at Apr 25 22:09 UTC and 22:40 UTC with five inline TODOs (“do one strip_suffix call”, “lowercase and add a . prefix here”, “replace . with / to support multiple paths”, etc.). No code push yet; the Apr 23 🔴 Critical WS/web auth-handler bypass is still on the table. This is rework-in-thinking, not rework-in-code. The PR is the first SaaS-style multi-tenancy primitive in moq-relay and remains gated.

Issue #1346 root-caused as browser/GPU, not moq-lite — The Apr 24 first-externally-reported <moq-watch> + MSF cross-impl bug saw heavy back-and-forth Apr 25 afternoon UTC. After Luke pushed back on the tearing as a browser/GPU/driver issue, kubo6472 confirmed at 19:15 UTC: “tried chromium on said linux and now it works on both the /watch/live and the moq.dev/watch, cool”. So the visible playback regression turns out to be a Firefox-on-Linux/GPU-driver issue, not a defect in moq-lite or @moq/watch. The original cross-impl Cloudflare-relay catalog-discovery bug (Cloudflare relay does not support broadcast discovery yet) and the docs gap kubo6472 surfaced (had to paste live.vue source code asking “what am I doing wrong?”) remain unresolved.

Interop matrix regresses 2 tests overnight — Apr 26 00:34 UTC = 22/69/14 — back to the Apr 21–23 plateau and below the Apr 15–16 baseline of 23/68/14. The two flipped tests aren’t exposed in the summary report. Because moqtail’s two big merges hit the draft-16 integration branch (not main, so docker images shouldn’t have changed) and moq-dev/moq merged only a Python examples PR + a dep bump, neither of which touches the wire path, the regression is more plausibly explained by an upstream rebuild on one of the other matrix entries (moq-rs / moq-rs-draft-16 / moqx / quiche-moq / libquicr / xquic / imquic) or by a flaky test. The matrix now enters the Apr 27 interim at the Apr 21–23 plateau rather than at peak strength — the optimistic “matrix entering the meeting at its strongest April reading” framing from yesterday’s log no longer holds.


2026-04-25 — Luke joins the pre-interim spec debate; interop new April high

TL;DR:

  • Luke Curley posts three substantive comments in 52 minutes (#1603 RRID DoS, #1607 LargestGroup filter, #1358 JOINING FETCH priority) — strongest pro-#1607 advocacy yet, with concrete Twitch TTV math (333 ms median startup gain).
  • Correction: PR #1610 (REQUEST_OK textual aliases) was actually merged Apr 23, not still open as Apr 24 log claimed; unblocks #1611 (PUBLISH_OK removal). Apr 27 interim slides posted; Vasilvv to present a third RRID alternative beyond 1613.
  • Implementations: moq-dev/moq PR #1343 (+248/−27, subdomain slug routing) still open with unresolved 🔴 Critical WS auth-handler bypass; dependabot PR #1347 opened (rustls bump); Issue #1346 (first external @moq/watch + MSF cross-impl bug) opened by @kubo6472. cloudflare/moq-rs, video-dev/moq-js, moqtail, google/quiche, birneee/quiche_moq all quiet.
  • Interop: 24/67/14 — new April high; second consecutive day of improvement (22 → 23 → 24).

Operation: Update Sources:

  • Slack: MCP verified working. #moq / #moq-rs / #moq-js / #libquicr all quiet — no new posts since ian-swett’s Apr 23 14:12 UTC i18n review request on PR #1588.
  • GitHub moq-wg repos:
    • moq-transport:
      • PR #1610 noted as MERGED Apr 23 21:03 UTC by alan-frindell (+22/−17, Define textual aliases for REQUEST_OK by request type). The Apr 24 log entry incorrectly recorded this as still open; the merge happened ~2 hours after the PR opened, after a one-line LGTM from ian-swett. Unblocks PR #1611 (PUBLISH_OK removal) which had been parked behind it.
      • PR #1608 review thread (Subgroup ID = first Object Id) — three Apr 24 comments approaching consensus: ian-swett 12:26 UTC (“That’s what I mean, so I guess I should be more explicit”), suhas-nandakumar 17:43 UTC suggested-text Original publishers SHOULD assign each Subgroup a Subgroup ID equal to the Object ID, ian-swett 18:17 UTC (“Actually, re-reading the text, isn’t that what it says?”).
      • PR #1586 review thread (delta-encoded Object/Group ID in FETCH) — ian-swett Apr 24 18:15 UTC pushed two suggested-text patches addressing the Apr 23 ambiguity flagged by afrind, asking for re-review. Key clarification: If there is a prior Object in the Group and the Object ID Delta field is present, the Object ID is the prior Object's ID plus the Object ID Delta.
      • Issue #1603 / PR #1607 / Issue #1358 — luke-curley returns to the spec debate: Three substantive comments in 52 minutes on Apr 24 evening UTC.
        • #1603 (RRID DoS), Apr 24 22:44 UTC: “I don’t understand why it’s on so many messages either. … +1 Martin’s concern about DoS. I don’t think it’s a major issue in this instance because of MAX_STREAMS, but I’m not a fan of blocking on arbitrary IDs like Track Alias and Required Request ID in general (oops forgot a timeout).” Lines up with Martin’s structural-fix camp (PR #1604).
        • PR #1607 (Largest Available Group filter), Apr 24 23:10 UTC: Concrete defense against Suhas’s NextGroup alternative. Two arguments: (1) catalogs MUST use LargestGroup (NextGroup never resolves on dormant tracks, NGR for catalogs sends every existing subscriber a duplicate copy); (2) Twitch TTV math — at 1s into a 2s GoP with 1.5 Mb/s media on 3 Mb/s network, race-to-startup is 0.66s vs 1s wait = 333 ms faster startup, plus warmed congestion controller. Proposes the combined CurrentGroup + NGR race idiom.
        • Issue #1358 (Subscribing to start of current Group), Apr 24 23:36 UTC: Opens a new design problem — with subscriber priorities, a JOINING FETCH will never be deprioritized even when a new group starts. Walks through TTV=1.33s for JOINING FETCH vs TTV=0.5s for hypothetical SUBSCRIBE filter=LargestGroup order=DESC in his concrete example.
      • PR #1611 / #1609 / #1604 / #1613: Quiet since Apr 24 log entry.
    • msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • moq-dev/moq:
      • PR #1343 (subdomain-based slug routing for customer isolation, +248/−27) opened Apr 23 by luke-curley; updated Apr 24 22:22 UTC. CodeRabbit flagged a 🔴 Critical issue Apr 23: the WebSocket and web auth handlers build AuthParams directly without consulting Auth::domains, which would leak the slug-based isolation in the WebSocket path. Awaiting Luke’s response.
      • PR #1347 opened Apr 24 17:04 UTC by dependabot[bot] — bump rustls-webpki 0.103.12 → 0.103.13.
      • Issue #1346 opened Apr 24 08:24 UTC by @kubo6472 — first externally-reported bug exercising the new <moq-watch catalog-format="msf"> element (PR #1330, Apr 20). User points the element at the Cloudflare draft-14 endpoint; hits Cloudflare relay does not support broadcast discovery yet; skipping subscribe_namespace warning + subscribe error: id=0 broadcast=room/bbb track=catalog error=SUBSCRIBE error: code=0 reason=internal error: Internal error. No reply yet from Luke. Confirms cross-impl friction at the catalog discovery layer between moq-lite/moq-dev clients and the Cloudflare moq-rs relay (which still doesn’t implement SUBSCRIBE_NAMESPACE).
      • No new merges to main since PR #1322 (hop-based clustering, Apr 23 23:26 UTC).
    • cloudflare/moq-rs, video-dev/moq-js, moqtail/moqtail, birneee/quiche_moq: Quiet.
    • google/quiche (moqt): No new moqt-specific commits since the Apr 22 batch by martin-duke (MoqtClient/MoqtServer session parameters API + moqt_messages.h cleanup).
  • Mailing list: alan-frindell replied Apr 24 18:26 PDT (Apr 25 01:26 UTC) to Martin’s “Monday’s agenda is ready” thread with the slides folder link. Notable line: “Some content is still pending. Victor will provide updated slides on delivery timeout proposals and request ID alternatives.” — confirms Victor Vasiliev will present a competing proposal to RRID at the Apr 27 interim. Headline agenda items now have published slides for #1608, 1603, #1613, #1605; time permitting: Joining FETCH Dissent.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). draft-ietf-moq-transport-17 still the latest WG transport draft.
  • Interop runner: Apr 25 00:32 UTC run = 24 / 67 / 14 — second consecutive day of improvement and a new April 2026 high-water mark (Apr 15–16 baseline was 23/68/14). One more test flipped fail → pass. First time since draft-17 publication that the matrix has improved on two consecutive days.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: None open.

Pages updated: discussions/discussions-2026-04.md, discussions/interim-meetings.md, drafts/moq-transport.md, implementations/moq-dev.md, interop/interop-runner.md

Key findings:

Luke Curley returns to moq-transport spec PRs in force — After being mostly absent from the moq-wg/moq-transport thread (concentrating on his own moq-dev / moq-lite codebase), Luke posted three substantive comments in 52 minutes on Apr 24 evening UTC, weighing in on three of the four headline Apr 27 interim agenda items. The pattern is striking: Luke (1) +1’d Martin’s RRID DoS concern (#1603), aligning with the structural-fix camp behind PR #1604 over Alan’s flow-control camp behind PR #1613; (2) provided the strongest deployment-rooted defense yet for PR #1607 (Largest Available Group filter), with concrete Twitch TTV math (333 ms median startup-time savings) and the catalog-track use case that requires it; and (3) opened a new design problem with JOINING FETCH and subscriber priorities, showing TTV=1.33s for JOINING FETCH vs TTV=0.5s for a hypothetical SUBSCRIBE filter=LargestGroup order=DESC because the SUBSCRIBE can immediately reprioritize to a new group while a JOINING FETCH cannot. Net effect heading into the interim: PR #1607 has its strongest pro-merge advocate yet, PR #1604 vs #1613 leans toward #1604, and the JOINING-FETCH-vs-LargestGroup-SUBSCRIBE ergonomic comparison just got a lot sharper.

PR #1610 was actually merged Apr 23, not still open as the Apr 24 log claimed — A factual correction to yesterday’s log: the editorial REQUEST_OK textual-aliases PR was merged at Apr 23 21:03 UTC, ~2 hours after opening, after a one-line LGTM from Ian Swett. This unblocks PR #1611 (Remove PUBLISH_OK message type, make it a REQUEST_OK alias), which had been parked waiting on the rename to land first. Wiki has been corrected — moq-transport’s Recently Merged section now lists #1610 above #1606.

Apr 27 interim slides are posted; Victor Vasiliev will present an RRID alternative — Alan’s mailing-list reply locks in the agenda 60 hours before the meeting and explicitly flags that Victor will ship updated slides on two topics: delivery timeout proposals (PR #1605) and request ID alternatives. The “request ID alternatives” line is the new piece of information — it confirms there will be a third design proposal on the table beyond Martin’s PR #1604 (move Joining FETCH onto SUBSCRIBE stream) and Alan’s PR #1613 (MAX_REQUEST_UPDATES flow control). The interim is now positioned to choose between (a) status quo, (b) #1604, (c) #1613, or (d) Victor’s still-private proposal.

moq-relay subdomain routing lands on the roadmap with a critical auth bug — Luke’s PR #1343 adds the first SaaS-style multi-tenancy primitive in moq-relay: <slug>.<suffix> host pattern is rewritten to <suffix>/<slug>/... before auth runs. CodeRabbit caught a 🔴 Critical issue at PR-open time — the WS and web auth handlers build AuthParams directly without consulting Auth::domains, leaving a slug-isolation bypass on the WebSocket fallback path. Luke has not yet responded; the PR remains open. This is directly relevant to anyone running moq-relay behind a wildcard certificate (notably the cdn.moq.dev hosted relay).

First externally-reported @moq/watch + MSF cross-impl bug — Issue #1346 (kubo6472) is the first externally-reported bug exercising the catalog-format negotiation that Luke landed in PR #1330 (Apr 20). The user pointed <moq-watch> with catalog-format="msf" at the Cloudflare draft-14 endpoint, and hit two errors on the catalog discovery flow: a Cloudflare relay does not support broadcast discovery yet; skipping subscribe_namespace warning followed by an internal SUBSCRIBE error on the catalog track. Confirms the moq-lite ↔ moq-rs catalog-discovery interop gap is now exposed at the user-facing layer in the new browser element.

Interop matrix at new April high; entering the interim at peak strength — 24/67/14 at Apr 25 00:32 UTC is the strongest April reading and the first time since draft-17 publication that the matrix has improved on two consecutive days (22 → 23 → 24). With no new moq-dev/moq merges to main between the Apr 24 and Apr 25 runs (PR #1322 was the most recent landing, and was already counted toward yesterday’s tick), the gain is most likely attributable to ongoing moqtail or moq-rs container rebuilds. The matrix enters the Apr 27 interim at its strongest April reading — a counter-narrative to the otherwise unresolved spec design debate.


2026-04-24 — Hop-based clustering lands on moq-dev; RRID design forks

TL;DR:

  • Alan opens PR #1613 (MAX_REQUEST_UPDATES flow control) as second answer to Martin’s RRID DoS escalation; debate now three-way (#1603 + #1604 + #1613). Alan hints fwd=1 precondition on JOINING FETCH may be relaxed (#1612, “I wonder if we should just allow fwd=0”).
  • Implementations: moq-dev/moq merges PR #1322 (hop-based clustering, +961/−979) — biggest Claude-Code-authored moq-dev landing to date; breaking change for moq-lite/moq-relay. moqtail PR #168 finalizes draft-16 FETCH-object wire format in author comment (rebase pending). cloudflare/moq-rs, video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 23/68/14 (+1 after three days flat; matches Apr 15–16 baseline; coincides with hop-clustering merge).

Operation: Update Sources:

  • Slack: MCP verified working. #moq channel — one new post since the Apr 24 log entry: ian-swett at Apr 23 14:12 UTC asking for internationalization-statement review on moq-transport PR #1588 (“it’s generated by AI based on past IETF docs, so it’d be good to have a review from someone who knows more than Alan and I”). No response yet on the channel. #moq-rs / #moq-js / #libquicr all quiet (channel-join events only).
  • GitHub moq-wg repos:
    • moq-transport:
      • PR #1613 opened Apr 23 23:10 UTC by alan-frindell (+30/0, label Design, references #1063) — Add MAX_REQUEST_UPDATES setup option and TOO_MANY_REQUEST_UPDATES error. Per-stream flow control for REQUEST_UPDATE: new MAX_REQUEST_UPDATES Setup Option, each REQUEST_OK / REQUEST_ERROR response restores one unit of capacity, default 1 if not present. Direct response to Martin Duke’s RRID DoS escalation on #1603.
      • Issue #1612 reply Apr 23 21:02 UTC by alan-frindell — “Changing the subscription from 1 to 0 after joining fetch has no effect on the FETCH. … I wonder if we should just allow fwd=0.” Hints at relaxing the fwd=1 precondition for Joining FETCH entirely.
      • PR #1604 update Apr 23 20:55–20:57 UTC by martin-duke — added text that “killing SUBSCRIBE also kills the FETCH”; the PR description now says “Now fixes #1612 as well”. Branch is dirty vs main.
      • PR #1613 discussion Apr 23 23:28 UTC – Apr 24 00:42 UTC: Martin initially pushed back (“doesn’t solve the problem at all… sender sends 1,000 REQUEST_UPDATES, skipping a valid ID each time, each is OKed, receiver still has to store 1,000 request IDs”), then after an offline chat posted at 00:42 UTC: “OK, we chatted online and I get it now. Given the number of authorized streams, there’s a cap on the maximum possible request ID assuming the peer isn’t skipping request IDs, which it shouldn’t. So this does finitely bound the non-contiguous request ID table. However, this PR is missing any text that endpoints have to check the request ID against this theoretical maximum. That’s crucial, and a little tricky to write.”
      • PRs #1606 / #1608 / #1609 / #1610 / #1611 quiet since Apr 24 log entry; PR #1542 had a rebase push (updated_at 23:23 UTC) but no new review comments.
    • msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • moq-dev/moq: PR #1322 MERGED Apr 23 23:26:44 UTC by luke-curleymoq-lite/moq-relay: hop-based clustering (+961/−979, final diff). Four days after opening on the hops-port branch. Single commit landed to main as 45db108ab. hops-port branch deleted. A chore: release PR #1338 was refreshed by moq-bot at Apr 23 23:42 UTC to pick up version bumps. PR description carries the 🤖 Generated with [Claude Code] trailer — the largest Claude Code–authored moq-dev main merge to date. cargo-semver-checks flags this as a breaking change on moq-lite and moq-relay. PR #1345 (Python examples) unchanged.
    • cloudflare/moq-rs: No new activity. PR #165 (Semgrep CI) still open, no reviews. PR #157 (Pub/Sub Namespace) still quiet since Apr 21.
    • google/quiche (moqt): No new moqt-specific commits.
    • moqtail/moqtail: PR #168 status comment by @beyzademirr at Apr 23 20:01 UTC formalising the final draft-16 FETCH-object wire format: Serialization Flags varint with subgroup-mode low-2-bits + object_id / group_id / priority / extensions / datagram flags + End-of-Range markers at 0x8C / 0x10C. FETCH objects no longer carry Object Status; zero-length payload = zero-length Normal object. Sum-type API (enum FetchObject { Object, EndOfRange } in Rust; TS class + factories). FetchObjectContext threaded through serialize/deserialize like previous_object_id on subgroups. Client-js / meet / Rust client apps stay source-compatible. +1094/−443 on the overall PR.
    • video-dev/moq-js, birneee/quiche_moq: Quiet.
  • Mailing list: Still no new posts since martin-duke’s Apr 22 19:41 PDT “Monday’s agenda is ready” — two calendar days of silence ahead of the Apr 27 interim.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9).
  • Interop runner: Apr 24 00:35 UTC run = 23 / 68 / 14 — finally up one pass after three days flat at 22/69/14 (Apr 21–23). Matches the Apr 15–16 baseline. The summary report doesn’t expose pair-level diffs, but the timing (~1 hour after the hop-clustering merge) is consistent with moq-dev-rs / moq-dev-js docker rebuilds picking up the new cluster plane.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: No open issues (3 closed: #1 OpenMOQ, #2 broken interop links, #3 factual corrections).

Pages updated: discussions/discussions-2026-04.md, drafts/moq-transport.md, implementations/moq-dev.md, implementations/moqtail.md, interop/interop-runner.md

Key findings:

moq-dev’s biggest main-branch landing in weeks — PR #1322 had been on the hops-port branch since Apr 19 and is a structural rework of moq-relay’s cluster plane: the three-tier primary / secondary / combined model and the cluster: bool token flag are gone, replaced by a single OriginProducer per relay tagged with an OriginId and hop chains attached to every Broadcast. Lite04 Announce changes from Vec<u64> to Vec<OriginId>; MAX_HOPS tightened from 256 to 32; the CLI contracts from three cluster flags to one. Claims::cluster is now #[deprecated] — existing signed tokens still parse but the flag stops affecting routing. The PR description explicitly marks the local smoke test and browser-publisher interop checks as unchecked on the test plan — the design is wire-compatible, but the new JS originId plumbing ships un-smoke-tested. Claude Code authored this PR (the 🤖 Generated with [Claude Code] trailer at the bottom) — Luke has quietly been shipping more Claude-authored moq-dev PRs, this is the biggest one so far.

RRID DoS resolution is now a two-path fork — Before today, Martin Duke’s Apr 23 DoS escalation on #1603 had one structural answer: PR #1604 (move Joining FETCH onto the SUBSCRIBE stream so RRID stops multiplying). Alan’s PR #1613 opens a second path: keep RRID, add per-stream flow control via a MAX_REQUEST_UPDATES setup option. Martin’s Apr 24 00:42 UTC comment lands at an interesting middle: he accepts the bound argument (authorized-streams × max-per-stream caps the non-contiguous request-ID table) but flags the missing enforcement text (“endpoints have to check the request ID against this theoretical maximum. That’s crucial, and a little tricky to write.”). The Apr 27 interim now has #1603 + PR #1604 + PR #1613 as a three-way design debate instead of a binary one.

Joining FETCH fwd=1 precondition may be on the way out — Alan’s casual aside on #1612 (“I wonder if we should just allow fwd=0”) is the first suggestion from an editor that the fwd=1-only constraint on Joining FETCH might be relaxed. Paired with Martin’s update on PR #1604 clarifying the SUBSCRIBE-kills-FETCH semantics, the precondition and the forward-state-mismatch error path (addressed by PR #1609) are both being rethought together. Expect this to surface in the Apr 27 interim under agenda item 3 (#1604 / #1602).

Interop matrix finally up-ticks, coincides with hop-clustering — Three days flat at 22/69/14 broke at the Apr 24 00:35 UTC run (23/68/14), about an hour after the hop-clustering merge. Summary report doesn’t expose the pair-level diff, so the causal link is circumstantial — but the timing lines up with a moq-dev-rs / moq-dev-js docker rebuild. The 23/68/14 is now the three-way tie with the Apr 15–16 peak; beating it will require either PR #157 (moq-rs Pub/Sub Namespace) landing, PR #168 (moqtail draft-16 FETCH) landing, or one of the Apr 27 interim decisions translating to wire.

moqtail FETCH wire format: canonicalized in a PR comment — @beyzademirr’s Apr 23 20:01 UTC comment on PR #168 is effectively the author-side finalization of draft-16 §10.4.4’s FETCH Object encoding: the Serialization Flags varint at the head, the low-2-bits subgroup-mode encoding (zero / prior / prior+1 / explicit), the two End-of-Range sentinels (0x8C and 0x10C), dropping Object Status from FETCH, and the sum-type Rust enum / TS class API. It’s now on the record in a form that other implementations can cross-check against. PR still needs the rebase push to land.

Slack is quiet, mailing list is quiet, datatracker is quiet, MoQ Monthly is still at issue #0 — Three days of mailing-list silence before an Apr 27 interim is unusual but not unprecedented; the agenda is set and the editors have moved their design debate into GitHub threads. Slack had one substantive post (Ian Swett’s i18n review ask); no one has replied.


2026-04-23 (evening) — moq-transport editor wave ahead of Apr 27 interim

TL;DR:

  • Largest single-day moq-transport activity since draft-17: PR #1606 merged (stream reset codes, fixes #1581, first post-draft-17 merge); PRs #1608, #1609, #1610, #1611 all opened by Alan/Ian.
  • Martin Duke escalates #1603 with a DoS argument — RRID multiplies via REQUEST_UPDATE; proposes eliminating RRID and moving Joining FETCH to the SUBSCRIBE stream (per PR #1604). Suhas marks CHANGES_REQUESTED on PR #1607 — first hard blocker since the PR opened.
  • Implementations: cloudflare/moq-rs PR #165 (+30/0, Semgrep CI scanning) opened by Cloudflare App&ProdSec; moq-dev/moq PR #1345 (+108/0, Python clock + announced examples) opened by Luke. moqtail PR #168 has rebase commits but no substantive changes; video-dev/moq-js, google/quiche, birneee/quiche_moq quiet.
  • Interop: 22/69/14 — flat (no new run for Apr 24 yet at check time; last run Apr 23 00:35 UTC).

Operation: Update Sources:

  • Slack: No MCP access this session — skipped.
  • GitHub moq-wg repos:
    • moq-transport: Heavy Apr 23 UTC burst — largest single-day moq-transport day since the draft-17 publication:
      • PR #1606 MERGED Apr 23 18:32 UTC by alan-frindell (fixes #1581) — Generalize stream reset codes to all request streams, add new codes, align with PUBLISH_DONE. First merge to main since draft-17 published.
      • PR #1608 opened Apr 23 17:01 UTC by ian-swett (authored by Jules AI, +9/−10) — Make Subgroup ID identical to first Object Id in the Subgroup. Fixes #1405, closes #1593. First review comment from alan-frindell (18:31 UTC) flags the datagram + SG=0 case.
      • PR #1609 opened Apr 23 18:41 UTC by alan-frindell (fixes #1601, +3/−2) — Joining Fetch forward state mismatch is a request error. Downgrades session-fatal mismatch caused by REQUEST_UPDATE fwd=1 / joining-FETCH cross-stream race.
      • PR #1610 opened Apr 23 18:51 UTC by alan-frindell (+22/−17) — Define textual aliases for REQUEST_OK by request type. Editorial: REQUEST_UPDATE_OK, TRACK_STATUS_OK, SUBSCRIBE_NAMESPACE_OK, PUBLISH_NAMESPACE_OK.
      • PR #1611 opened Apr 23 18:56 UTC by alan-frindell (fixes #1598, +11/−30) — Remove PUBLISH_OK message type, make it a REQUEST_OK alias. Wire format change: removes PUBLISH_OK code point. Author note: retarget main after #1610 lands.
      • Issue #1612 opened Apr 23 20:25 UTC by martin-duke“What happens to Joining FETCH if fwd changes to 0?“. Asks for explicit spec text on this race.
      • PR #1607 (Largest Available Group filter) — suhas-nandakumar marked CHANGES_REQUESTED Apr 23 15:07 UTC — first hard blocker on the PR since it opened.
      • PR #1605 (DELIVERY_TIMEOUT split) — alan-frindell left three Apr 23 18:02 UTC suggestions: explicitly permit retransmission cancellation after delivery timeout; evaluate delivery timeout “as late as possible” after internal queuing (both datagram and subgroup paths).
      • PR #1586 (delta-encoded Object/Group ID in FETCH) — Apr 23 review by alan-frindell (ambiguity for mid-group FETCH starts) + ian-swett suggestion on Group-ID-Delta-present semantics.
      • Issue #1603 (required-request-id use case) — martin-duke escalated Apr 23 18:54 UTC with a DoS concern: request IDs multiply via REQUEST_UPDATE even within one stream, so a malicious client can inflate state. Concrete proposal: eliminate RRID + Request ID in REQUEST_UPDATE; move Joining FETCH to the SUBSCRIBE stream (per PR #1604); use SWITCH or accept REQUEST_ERROR for ordering. “I have all these aesthetic concerns, but I do want to highlight that there is a DoS vector in here that IMO we must address.”
      • Issue #1578 (Bikeshed: Largest ObjectNext Object) — ian-swett Apr 23 12:56 UTC: agrees with the rename.
      • Issue #1534 (REDIRECT) — Apr 23 editor call decision: remove REDIRECT message from PR, overload GOAWAY on bidi stream for the same purpose.
      • Issue #1476 (DELIVERY_TIMEOUT extension scope) — alan-frindell: “Victor asks if it’s ok to go from zero to non-zero.”
    • msf, loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • cloudflare/moq-rs: PR #165 opened Apr 23 20:47 UTC by @hrushikeshdeshpande (Cloudflare App&ProdSec) — ci: add Semgrep OSS scanning workflow. Part of Cloudflare’s migration from Semgrep Pro to Semgrep CE. +30/0. PR #157 (Pub/Sub Namespace) quiet since Apr 21.
    • moq-dev/moq: PR #1345 opened Apr 23 20:39 UTC by luke-curley (+108/0) — py/moq-lite: add clock + announced examples. Python twin of rs/moq-clock (publish / subscribe subcommands) plus a CLI listing broadcasts announced under a prefix. Fifth PR in the Apr 22–23 burst.
    • google/quiche (moqt): No new moqt-specific commits — Apr 22–23 commits are all general QUIC refactors (PendingStream cleanup) outside the moqt directory.
    • moqtail/moqtail: PR #168 (draft-16 fetch object) — @ctllmp pushed conflict-resolution commits Apr 23 19:49–19:56 UTC and merged draft-16 back into the feature branch. Rebase work ahead of a push to land; no new substantive changes. PR #169 (message-parameters fix) remains open.
    • video-dev/moq-js: Quiet.
    • birneee/quiche_moq: Quiet.
  • Mailing list: No new posts since Martin Duke’s Apr 22 19:41 PDT “Monday’s agenda is ready” notice.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9).
  • Interop runner: No new run for Apr 24 at time of check — last run Apr 23 00:35 UTC = 22/69/14.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: No open issues.

Pages updated: discussions/discussions-2026-04.md, drafts/moq-transport.md, implementations/moq-dev.md, implementations/moq-rs.md, implementations/moqtail.md, interop/interop-runner.md

Key findings:

moq-transport editor push ahead of Apr 27 interim — Apr 23 was the largest single-day moq-transport activity day since draft-17 published. The shape of the Apr 27 editor session is now clear: six PRs (#1605, #1607, #1608, #1609, #1610, #1611) and one heavyweight design issue (#1603 required-request-id). PR #1606 landing as the first post-draft-17 merge signals the editors are comfortable landing uncontroversial cleanup while the big design calls wait for the interim. Three Apr 23 PRs (#1609, #1610, #1611) all come from Alan Frindell in the same 15-minute window — a cleanup sweep of REQUEST_OK naming, PUBLISH_OK wire-format removal, and the Joining-FETCH session-error downgrade. PR #1608 is essentially Ian Swett’s inline suggestion from PR #1607 promoted to its own PR, retiring the long-running #1405 Subgroup-ID ambiguity and closing #1593. Suhas’s CHANGES_REQUESTED on PR #1607 is notable because it’s the first formal block on the Largest-Available-Group filter since Vasiliev opened it — until now the review energy had been mostly Luke’s partial-cache pushback and Ian’s Subgroup-ID clarification.

Martin Duke’s RRID DoS escalation (Issue #1603) — Issue #1603 has been lingering since Apr 10. Apr 23 it sharpened into a security argument: request IDs can multiply within a single stream via REQUEST_UPDATE, so the QUIC max-bidi-stream bound (Alan’s mitigation) doesn’t actually cap receiver state. Martin’s concrete proposal is now on the record: eliminate RRID except where dependencies are real (REQUEST_UPDATE, FETCH); move Joining FETCH onto the SUBSCRIBE stream; use SWITCH or accept REQUEST_ERROR for ordering. This is likely to be the spiciest item on the Apr 27 agenda.

Editor call results bleed through in issue threads — Comments like “Discussed in author/editor call” (PR #1534) and “Victor asks…” (Issue #1476) suggest an Apr 23 editor call happened in US hours before the PR burst. The call’s two visible outcomes: REDIRECT moves onto GOAWAY rather than getting its own message; DELIVERY_TIMEOUT zero→non-zero transitions are still an open question.

Semgrep CI scanning appears on moq-rs (PR #165) — Not MoQ-specific content, but a signal that Cloudflare’s App&ProdSec team is including cloudflare/moq-rs in their migration to Semgrep CE. The repo hadn’t had third-party security-tooling contributions before. No new push from Suhas on PR #157 this cycle.

moq-dev’s Python surface widens (PR #1345) — Luke’s Apr 23 PR adds clock.py and announced.py as py/moq-lite examples. Combined with Lullabee’s Apr 16 PR #1318 (raw track Python FFI), the Python binding is approaching functional parity with the Rust examples. This is the fifth consecutive PR in Luke’s Apr 22–23 push; a pattern of stabilizing main ahead of closing #1322 (hop-clustering) and promoting the MSF-vs-Hang catalog negotiation work.

Interop matrix still idle — Three straight days at 22/69/14 (Apr 21 recovered 18→20→22, then two flat days). Nothing landed Apr 23 that would touch the wire — moq-rs PR #157 is still open; moqtail PR #168 is still rebasing; all the moq-transport action was spec-level PRs. Expect movement once PR #157 merges, PR 169 lands, or the Apr 27 interim unblocks any of the DELIVERY_TIMEOUT / REDIRECT / Subgroup-ID design items.


2026-04-23 (morning) — MSF InitTracks reverted; Apr 27 interim agenda published

TL;DR:

  • MSF PR #154 merges Will Law’s revert of InitTracks (−170 lines); MSF reverts to statically declared inits + AVC3 self-init segments for mid-stream changes. Luke opens MSF #155 “Sequence aligned groups are too restrictive” challenging §4.2 group alignment.
  • Ian Swett review wave (~50 min) on three moq-transport PRs ahead of interim: #1606 APPROVED, #1605 first real review, #1607 Subgroup-ID-as-first-Object-ID inline suggestion. Apr 27 interim agenda published (16:30 UTC, “all editor time”).
  • Implementations: moq-dev/moq four-PR burst from Luke — PR #1339 merged (+5/−5, JS version bump), PR #1340 opened (+182/−5, wait_for_broadcast), PR #1341 opened (+748/−1145, media-producer refactor), PR #1343 opened (+226/−37, subdomain routing), PR #1344 merged (+31/0, catalog-format docs). cloudflare/moq-rs, video-dev/moq-js, google/quiche, moqtail (only Issue #177), birneee/quiche_moq quiet.
  • Interop: 22/69/14 — flat third consecutive day; 1 short of Apr 16 baseline.

Operation: Update Sources:

  • Slack: No MCP access this session — skipped.
  • GitHub moq-wg repos:
    • msf: PR #154 merged Apr 22 17:01 UTC by will-lawRevert “Add support for InitTracks” (−170 lines). After feedback from Victor Vasiliev, luke-curley, and suhas-nandakumar, Will decided the merged InitTracks design did not provide a practical solution for mid-stream parameter changes; MSF will stick with statically declared inits, leveraging AVC3 self-initializing segments (ISO/IEC 14496-15) for mid-stream changes. Follow-up discussion on catalog bloat: Will proposes initCopy or inherit track properties; Vasiliev asks if #144 zlib compression could solve it; Luke argues two tracks shouldn’t have identical init data if publisher is demuxing correctly.
    • msf: Issue #155 opened Apr 22 22:47 UTC by luke-curley“Sequence aligned groups are too restrictive”. Argues MSF §4.2 currently mandates group alignment across tracks and lists four concrete problems (audio buffering forced to video keyframe boundaries, on-demand encoding of late renditions, mixed GoP sizes across renditions, transcoding non-source renditions). Proposes MSF require shared PTS but loosen group alignment; CMSF can keep alignment for HLS/DASH compat.
    • moq-transport: PR #1606 APPROVED by ian-swett on Apr 23 01:20 UTC (stream reset codes generalization). PR #1605 first review by Ian at 01:55–02:10 UTC — overall “looks reasonable but not sure two timeouts are necessary” + 6 line suggestions on MUST/SHOULD/MAY tuning, section rename, WebTransport datagram queue citation. PR #1607 inline comment by Ian at 01:29 UTC — proposes forcing Subgroup ID = Object ID of first Object in a subgroup (cross-linked to issue #1405) to disambiguate subgroup start with “largest Object” / range filters.
    • loc, secure-objects, cmsf, catalog-format, privacy-pass: no activity.
  • Implementation repos:
    • moq-dev/moq: Four-PR burst by luke-curley (Apr 22 16:51 UTC – Apr 23 01:12 UTC):
      • PR #1339 (merged Apr 22 16:51 UTC, +5/−5) — bump JS patch versions to publish recvGroup; fixes the broken @moq/lite@0.2.1 on NPM that predated the Apr 17 recvGroup API.
      • PR #1340 (open, Apr 22 17:16 UTC, +182/−5) — OriginConsumer::wait_for_broadcast; deprecate consume_broadcast. Synchronous consume_broadcast is a footgun on freshly-connected origins; moq-gst’s source hit this.
      • PR #1341 (open, Apr 23 00:01 UTC, +748/−1145) — refactor media producers, simplify fMP4 CMAF passthrough; rename moq_mux::importmoq_mux::producer, remove Fmp4Config passthrough flag.
      • PR #1343 (open, Apr 23 00:24 UTC, +226/−37) — relay subdomain-based slug routing; --auth-domain/MOQ_AUTH_DOMAIN maps <slug>.<suffix> hosts into path-based routing.
      • PR #1344 (merged Apr 23 01:12 UTC, +31/−0) — catalog-format configuration docs for @moq/watch.
      • Issue #1342 (Apr 23 00:08 UTC) — “Raw QUIC doesn’t support paths”: no PATH SETUP param, only WebTransport works with path-based auth today.
    • cloudflare/moq-rs: No activity since Apr 21 PR #157 push.
    • google/quiche (moqt): No new moqt commits since Apr 22 10045277 (session-parameter API).
    • moqtail/moqtail: New Issue #177 opened Apr 22 11:08 UTC by @danrossi — Letsencrypt SSL setup docs suggestion. PR #169 (message-parameters fix, +900/−565) still open. Otherwise quiet.
    • video-dev/moq-js: Quiet.
    • birneee/quiche_moq: Quiet.
  • Mailing list: One new post — martin-duke Apr 22 19:41 PDT: “Monday’s agenda is ready” → points at datatracker agenda-interim-2026-moq-14 for the Apr 27 16:30 UTC session. “It’s all editor time.”
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9). New Apr 27 interim agenda published (PR 1602 + Message Parameters discussion).
  • Interop runner: Apr 23 00:35 UTC run — 22 / 69 / 14 — flat vs Apr 22 (third day of the same pass count after the Apr 21–22 two-day recovery). 1-test gap to the Apr 16 baseline remains.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: No open issues.

Pages updated: discussions/discussions-2026-04.md, discussions/interim-meetings.md, drafts/moq-msf.md, drafts/moq-transport.md, implementations/moq-dev.md, interop/interop-runner.md

Key findings:

MSF InitTracks reverted (Apr 22) — Six days of debate on msf#153 resolved decisively: Will Law reverted his own PR #141 rather than land a partial fix. The consensus that formed between Vasiliev’s original “remove initTrack”, Luke’s Apr 21 “I’d rather just use annexb”, and Suhas’s in-band SPS/PPS practice is now encoded as “statically declared inits only; AVC3 self-init segments for mid-stream changes”. The open design question has shifted from how to synchronize dynamic init updates to how to reduce the catalog bloat from repeated initData across renditions — Will’s proposed initCopy/inherit properties vs Vasiliev’s proposed zlib compression (#144). Luke’s stance is that a correctly-built demuxer won’t produce duplicate init data in the first place, so initCopy is mostly a demuxer-passthrough affordance.

Luke’s msf#155 challenges §4.2 group alignment — Opened hours after the #153 revert. The framing (“Sequence aligned groups are too restrictive”) targets a specific piece of MSF-00 §4.2 text (equal-numbered Groups must have overlapping render-duration). Luke’s four arguments target different pipeline shapes: live encoding (audio flush latency tied to video keyframes), on-demand rendition lift-in, mixed GoP-size ladders (fast-join 1s / efficient 4k 4s), and OBS→Twitch transmux where source keyframe cadence is externally controlled. The proposed split — strict PTS alignment, loose group alignment in MSF; strict group alignment only in CMSF for HLS/DASH back-compat — is a substantive design proposal, not a typo-level nit. Expect discussion on the Apr 27 interim or via the #moq channel.

Ian Swett review wave (Apr 23 01:20–02:10 UTC) — Three open moq-transport PRs reviewed in ~50 minutes, ahead of the Apr 27 interim that has all three on the agenda:

  • #1606 APPROVED — error-code generalization is straightforward and now ready to merge.
  • #1605 — the DELIVERY_TIMEOUT split got its first real review. Ian’s “don’t intuitively understand why two timeouts are necessary” is the key question the editors will likely take up on Monday.
  • #1607 — Ian’s “force Subgroup ID = first Object ID” observation is the kind of design simplification that could land as a separate PR bolted onto the Largest-Available-Group filter work. Cross-posted to issue #1405 (which is the long-standing “Single Object Subgroups don’t need a Subgroup ID” item).

moq-dev spec cleanup push (Apr 22–23) — Luke’s four PRs are all small/medium in scope (producer refactor is the largest at +748/−1145) but they read as a push to stabilize main ahead of (a) closing out hop-clustering #1322 and (b) promoting the MSF-vs-Hang catalog negotiation work landed Apr 19–20 (#1330). The wait_for_broadcast API is a direct fix for a footgun reported by moq-gst; the subdomain routing PR gives operators a cleaner customer-isolation story on multi-tenant relays.

Interop flat at 22/69/14 — Three days of the same number. Apr 22–23 didn’t include landed implementation fixes that would touch the matrix (the moq-dev PRs are docs/refactors; moq-rs PR #157 is still open; quiche moqt just got a session-parameter API that doesn’t change wire format). Expect movement again once PR #157 lands or moqtail PR #169 merges.


2026-04-22 — moq-rs datagram rate restored; interop +2 again

TL;DR:

  • Luke argues for static-init or annexb on MSF #153 (two comments) — reopens the simplification path alongside Will Law’s inits[] proposal and Vasiliev’s original remove-initTrack stance.
  • google/quiche moqt session-parameter API motivation cites partial-object delivery on the relay — ties directly to the partial-cache debate Luke opened on moq-transport PR #1607 on Apr 19.
  • Implementations: cloudflare/moq-rs +5 commits on PR #157 (forwarding-path repair; datagram rate restored 1/sec → 50/sec, fixing earlier regression). google/quiche moqt +2 commits (session-parameter API + moqt_messages.h cleanup). moqtail PR #175 merged (+47/−42, inactivity timeout 1 s → 5 s); new Issue #176 (draft-16 §7.2 scheduling not yet implemented). moq-dev/moq, video-dev/moq-js, birneee/quiche_moq quiet.
  • Interop: 22/69/14 — second consecutive +2 day (18 → 20 → 22); 1 short of Apr 16 baseline.

Operation: Update Sources:

  • Slack: No MCP access this session — skipped.
  • GitHub moq-wg repos: Only activity — two comments from luke-curley on msf#153 (Apr 21 16:21/16:26 UTC) reopening the static-init / annexb simplification path for initTrack. No new issues/PRs on moq-transport, msf (besides the comments), loc, secure-objects, cmsf, catalog-format, privacy-pass. PR #1607 quiet since Apr 20.
  • Implementation repos:
    • cloudflare/moq-rs: suhas-nandakumar pushed five more commits to PR #157 on Apr 21 06:39–08:46 UTC, follow-up to the 03:13–05:30 UTC debug run in yesterday’s log. Fixes on the forwarding path (track_extensions propagation, stream header type mismatch, datagram broadcast-channel queueing, datagram rate restored 1/sec → 50/sec, SUBSCRIBE-flow object encoding).
    • google/quiche (moqt): Two Apr 22 commits by martin-dukec8ff6dc4 (03:59 UTC) moves non-message data structures out of moqt_messages.h; 10045277 (04:16 UTC) lets MoqtClient/MoqtServer control session parameters (groundwork for partial-object delivery).
    • moqtail/moqtail: PR #175 merged Apr 21 06:17 UTC by [zafergurel] — subscription inactivity timeout raised 1s → 5s for congested links (+47/−42). New Issue #176 opened Apr 21 17:42 UTC — “Implement the scheduling algorithm (Draft 16 Section 7.2)” — relay currently does not honor message priorities.
    • video-dev/moq-js: PR #70 still open, no new activity since Apr 20 18:55 UTC.
    • moq-dev/moq: Quiet Apr 21 (PRs #1322, #1330, #1335, #1338 unchanged; #1330 and #1335 were in fact merged earlier on Apr 20 — status carried forward correctly in tree).
    • birneee/quiche_moq: Quiet.
  • Mailing list: No new messages since Apr 19 weekly digest.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9).
  • Interop runner: Apr 22 00:30 UTC run at 22 / 69 / 14second consecutive +2 pass (Apr 20 18/73/14 → Apr 21 20/71/14 → Apr 22 22/69/14). Now just 1 short of the Apr 16 baseline.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: No open issues, none updated since Apr 21.

Pages updated: discussions/discussions-2026-04.md, drafts/moq-msf.md, implementations/moq-rs.md, implementations/moqtail.md, implementations/quiche-moq.md, interop/interop-runner.md, index.md

Key findings:

cloudflare/moq-rs PR #157 — forwarding-path repair (Apr 21 morning UTC) — After the lifecycle fixes in the 03:13–05:30 UTC session, Suhas ran a second batch between 06:39 and 08:46 UTC focused on the relay’s forwarding path:

  • 7f95515 — Forward track_extensions through PUBLISH messages so extensions survive relay hops.
  • 4e33675 — Fix stream header type mismatch when forwarding objects that have no extensions.
  • 0112f91 — Move datagram forwarding onto a broadcast channel so per-subscriber queues drain correctly.
  • 1148fa1Fix datagram forwarding rate from 1/sec back to 50/sec (a regression in the earlier refactor that had serialized datagram delivery).
  • 5c0606d — Fix object encoding in the SUBSCRIBE flow to match the header type.

The 50/sec vs 1/sec restoration is the most visible change — it directly affects interop pairs that exercise datagram-mode delivery.

Luke on msf#153 initTrack — push toward static-only init or annexb (Apr 21) — Two comments. The first (16:21 UTC) accepts Vasiliev’s race framing but proposes a generic in-band fix using MP4 track_id switching: a moof referencing an unknown track_id blocks the player until the matching moov arrives, and the new init can carry both old and new track_id entries briefly for new subscribers. The second (16:26 UTC) is the stronger opinion — he’d rather use annexb and drop dynamic init segments entirely, and is fine reverting initTrack if init data (and codec mime) are made static with inline fallback. This reopens the static-init simplification path alongside Will Law’s inits[] proposal and Vasiliev’s original remove-initTrack stance.

google/quiche session parameters (Apr 22) — Martin Duke’s 10045277 commit adds an API letting applications control MoQT session parameters on both client and server. Commit message specifically cites partial-object delivery on the relay as the motivating use case, which ties directly into the partial-cache debate Luke opened on moq-transport PR #1607 on Apr 19.

moqtail subscription timeout fix (Apr 21) — Zafer Gürel’s PR #175 raises the no-event subscription termination window from 1 second to 5 seconds because congested links were producing spurious terminations. Combined with the new Issue #176 acknowledging the relay doesn’t yet implement draft-16 §7.2 scheduling (subscribe/publish priorities), this is part of the broader robustness push in moqtail’s draft-16 migration.

Interop runner continues to climb — Three daily runs now: 18/73/14 (Apr 20) → 20/71/14 (Apr 21) → 22/69/14 (Apr 22). Two consecutive +2-pass recoveries after four days stuck at the Apr 17 regression floor. Likely drivers: moqtail PR #175’s timeout fix (less spurious termination on congested pair tests) and Suhas’s datagram-rate restoration on moq-rs.


2026-04-21 - Suhas iterates on moq-rs Pub/Sub Namespace PR, moq-js lifecycle fix, interop partial recovery

Operation: Update Sources:

  • Slack: No MCP access this session — skipped
  • GitHub moq-wg repos: Only activity — Victor Vasiliev’s PR #1607 (Largest Available Group filter) got two typo review comments from Aman Sharma (@sharmafb) on Apr 20 23:14–23:33 UTC (draft text available/Available casing). No new issues/PRs on moq-transport, msf, loc, secure-objects, cmsf, catalog-format.
  • Implementation repos:
    • cloudflare/moq-rs: suhas-nandakumar pushed 9 commits to PR #157 between 03:13 and 05:30 UTC on Apr 21 — lifecycle/cleanup fixes for SUBSCRIBE_NAMESPACE and PUBLISH_NAMESPACE flows (self-exclusion, wait for PUBLISH_OK, stale namespace on reconnect, handle lifetime). PR now at +6270/−2083 across 82 files.
    • video-dev/moq-js: New PR #70 by Manish (@itzmanish, Apr 20 18:55 UTC) — “fix: moq-js player lifecycle and browser audio playback” (+9542/−6440). Substantive playback rework; bulk of diff is deletion of legacy web/ blog site.
    • moq-dev/moq, google/quiche (moqt), moqtail/moqtail, birneee/quiche_moq: quiet since Apr 20 covered in previous log entry.
  • Mailing list: No new messages since Apr 19 weekly digest.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9).
  • Interop runner: Apr 21 00:33 UTC run at 20 / 71 / 14first partial recovery (+2 pass, −2 fail) after four consecutive days flat at the 18/73/14 regression floor since Apr 17. Still 3 short of Apr 16 baseline.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: All 3 closed, no new issues.

Pages updated: discussions/discussions-2026-04.md, implementations/moq-rs.md, implementations/moq-js.md, interop/interop-runner.md, index.md

Key findings:

cloudflare/moq-rs PR #157 late-night iteration (Apr 21 03:13–05:30 UTC) — Suhas ran a focused debugging session on the SUBSCRIBE_NAMESPACE / PUBLISH_NAMESPACE relay flow that sits on top of Manish’s draft-16 migration branch. Nine commits in ~2 hours:

  • c8cb923 REQUEST_UPDATE with forward=1 when a subscriber arrives for a paused track.
  • 12ac6bf PublishNamespace handle lifetime + stale-track cleanup.
  • 54a3557 Remove stale namespace entry on publisher reconnect.
  • cd0bdcd Keep PublishNamespace handles alive in serve_subscribe_namespace.
  • a29815e Send NAMESPACE (not PUBLISH) on SUBSCRIBE_NAMESPACE.
  • 43b5665 Wait for PUBLISH_OK before streaming.
  • 4dcaa7a Self-exclusion on SUBSCRIBE_NAMESPACE (mirrors PR #1596 in the spec).
  • fbefe1d Send PUBLISH for existing tracks on SUBSCRIBE_NAMESPACE.
  • eddc7bc Only PUBLISH for tracks, not PUBLISH_NAMESPACE.

The PR as a whole bundles: draft-16 migration (subsumes PR #131), a new relay subscriber_registry, preserved subgroup-header forwarding (EndOfGroup fix), a fix for a 1-second freeze on group transitions, and web-transport crate v0.10 with subprotocol negotiation.

video-dev/moq-js PR #70 (Apr 20 18:55 UTC) — First substantive moq-js PR since Ali Begen’s mid-April UI work. The real code changes are concentrated in lib/playback/worker/audio.ts (+137/−9), lib/video-moq/index.ts, lib/playback/worker/{index,timeline,video}.ts, and lib/transport/subscriber.ts. Most of the +9542/−6440 volume is deleting the legacy web/ blog pages (quic-powers, replacing-hls-dash, never-use-datagrams, etc.) and bundling a fresh demo/lib/publish.iife.js (+9066).

Interop runner partial recovery — 20/71/14 is the first movement after four days stuck at 18/73/14. Coincides with continued draft-16 fixes in moqtail and moq-dev plus active iteration on the moq-rs SUBSCRIBE_NAMESPACE flow. Pair-level diff still needed to identify which two tests flipped back to pass.

PR #1607 — typo-only activity: Aman Sharma’s two inline comments are the only moq-wg repo activity in this 24-hour window. No substantive movement on the partial-cache debate Luke opened on Apr 19.


2026-04-20 - moq-dev burst (hop-clustering, MSF catalog), PR #1607 review, quiche cleanup

Operation: Update Sources:

  • Slack: No MCP access this session — skipped
  • GitHub moq-wg repos: PR #1607 saw its first substantive review on Apr 19 (Luke Curley). No new issues/PRs on moq-transport, msf, loc, secure-objects, cmsf, catalog-format.
  • Implementation repos:
    • moq-dev/moq very active: PR #1322 (hop-based clustering refactor, open), #1330 (MSF catalog auto-negotiation, open), #1335 (WebSocket fallback tuning, open); merged #1332 (DNS bind), #1331 (fly.toml), #1333 (flake.lock), #1284 (crate READMEs), 1337 (Nix crane downgrade, Apr 20), 1334 (release bumps).
    • google/quiche: Apr 20 commit 9843feb by martin-duke removing moqt::SubscribeWindow.
    • cloudflare/moq-rs, video-dev/moq-js, moqtail/moqtail, birneee/quiche_moq: quiet.
  • Mailing list: Apr 19 automated “Weekly github digest” from Repository Activity Summary Bot; Apr 20 quiet.
  • IETF Datatracker: No new WG or individual draft versions since moq-lite-04 (Apr 9).
  • Interop runner: Apr 20 run still at 18 / 73 / 14 across 105 tests — unchanged since the Apr 17 regression (now three consecutive daily runs at the same numbers).

Pages updated: discussions/discussions-2026-04.md, drafts/moq-transport.md, implementations/moq-dev.md, implementations/quiche-moq.md, interop/interop-runner.md, index.md

Key findings:

moq-dev/moq burst of activity (Apr 19–20) — Luke opened three substantive PRs in rapid succession:

  • #1322 (hop-based clustering): Replaces the three-tier primary/secondary/combined origin model and the cluster: bool token flag with a single OriginProducer per relay tagged by a stable OriginId. Broadcasts now carry hops: Vec<OriginId> for loop detection and shortest-path routing. MAX_HOPS tightened 256 → 32. CLI collapses into --cluster-connect for full-mesh config. Claims::cluster is now #[deprecated]. Flagged by cargo-semver-checks as a breaking change on moq-lite and moq-relay (+857/-900).
  • #1330 (MSF catalog): Adds a @moq/msf package and race-based Hang/MSF auto-negotiation in <moq-watch> — Hang gets a 100ms head start, then Promise.any() picks the first successful fetch. Concrete step toward MSF being a first-class catalog format in Luke’s stack.
  • #1335: WebSocket fallback head start 200 → 500 ms, with a synchronous bail-out when WebTransport has already won.
  • Plus merged infra work: DNS-in-bind (#1332), Fly.io docker image (#1331), Nix toolchain alignment (#1336/#1337), crate READMEs (#1284).

PR #1607 has live sub-debate on “partial cache / partial group”:

  • luke-curley reviewed Vasiliev’s “Largest Available Group” filter PR on Apr 19 and pushed back: “The MUST is too strong and requiring a full cache is too narrow.” Counter-proposal: MAY attempt to reconstruct subscription from a partial cache; MUST NOT serve an object until all prior objects in that sub-group have been served.
  • Convergence on the overall filter shape continues, but partial-cache handling is still being negotiated.

google/quiche: Martin Duke removed moqt::SubscribeWindow (Apr 20) — continues the cleanup of legacy SUBSCRIBE window tracking as draft-17’s PUBLISH/SUBSCRIBE model settles.

Interop runner: Three consecutive daily runs (Apr 18, 19, 20) all at 18/73/14. Pair-level investigation of the Apr 17 regression still pending.


2026-04-19 - Gwendal Simon dissents on REWIND consensus, interop still at 18/73/14

Operation: Update Sources:

  • Slack: No MCP access this session — skipped
  • GitHub moq-wg repos (moq-transport, msf, loc, secure-objects, cmsf, catalog-format): no new issues or PRs since the Apr 18 update. PR #1607 (Largest Available Group filter) remains the most recent activity.
  • Implementation repos: moq-dev/moq had only a release bot PR #1321 (Apr 18); no new commits since Apr 17. cloudflare/moq-rs, video-dev/moq-js, moqtail, google/quiche MoQT, birneee/quiche_moq all quiet in this window.
  • Mailing list: One new message — Gwendal Simon’s reply to the REWIND consensus thread (msg, Apr 18) — not covered in the Apr 18 update.
  • IETF Datatracker: No new WG or individual draft versions since Apr 9 (moq-lite-04).
  • Interop runner: Apr 19 00:32 UTC run still at 18 / 73 / 14 — unchanged since the Apr 17 regression.
  • MoQ Monthly: Still only issue #0 (Mar 4).
  • tobbee/moq-llm-wiki issues: All 3 closed, no new issues.

Pages updated: concepts/joining-fetch-dissent.md, concepts/switch-abr.md, discussions/discussions-2026-04.md, interop/interop-runner.md, index.md

Key findings:

Gwendal Simon’s dissent on REWIND consensus (Apr 18, mailing list):

  • Pushes back on the Alan/Luke/Victor convergence around a narrow LargestGroup/CurrentGroup/CurrentGroupFill filter (documented in the Apr 18 log entry).
  • Charter argument: ABR track switching is an explicit MoQ charter deliverable; dismissing it as “innovation for extensions or V2” contradicts the charter.
  • Not an edge case: A subscriber is “almost always behind the live edge” during a switch because congestion and intentional buffering both create lag.
  • CurrentGroup is insufficient: It covers joining in one group, but ABR switching requires “an arbitrary range of past groups.”
  • Real blocker is semantic, not HOL: The V1 constraint he wants the WG to reconsider is that past objects are not allowed in a PUBLISH stream.
  • Proposed path: “Joining PUBLISH with live semantics” — already prototyped in PR #1378 (SWITCH).
  • This is currently the only documented dissent on the LargestGroup convergence. Consensus call closes May 1, 2026.

Everything else is quiet: this is a settle-down day after the heavy Apr 16–18 activity. moq-wg repos had zero new issues/PRs, implementation repos had only release bots, and no new drafts appeared. Interop runner is still at the Apr 17 regression baseline (18/73/14) with no recovery yet.


2026-04-18 - LargestGroup/CurrentGroup filter convergence (PR #1607)

Operation: Update Sources:

  • Slack moq / moq-rs / moq-js / libquicr: nothing new since 2026-04-17 evening update
  • GitHub moq-wg repos: PR #1607 (vasilvv, Apr 18) — new Draft/RFC “Largest Available Group filter”; nothing else new
  • Mailing list: four new replies in “Consensus call on way forward on REWIND” thread (luke-curley Apr 17 and Apr 18, Victor Vasiliev Apr 18, alan-frindell Apr 18) all coalescing around a LargestGroup / CurrentGroup filter
  • Implementation repos: moq-dev/moq merged PR #1327 (Luke, Apr 17 23:48 UTC) — fix TrackConsumer::read_frame respect start_at — and PR #1318 (Lullabee, Apr 17 23:39 UTC) — add JSON data to py_lib
  • IETF Datatracker: no new WG or individual draft versions

Pages updated: concepts/joining-fetch-dissent.md, discussions/discussions-2026-04.md, drafts/moq-transport.md, index.md

Key findings:

REWIND consensus thread converging on LargestGroup / CurrentGroup filter (Apr 17–18):

  • Luke Curley, Apr 17: argues FETCH is inherently HOL-prone; proposes LargestGroup filter for SUBSCRIBE to cover 99% of the join-live case.
  • Luke Curley, Apr 18: “Yeah, I just want to adopt CurrentGroup so we can make some progress.”
  • Victor Vasiliev, Apr 18: “Not against the LargestGroup idea.” Turns it into concrete PR #1607 — current group only, always complete group, no relay backfill, “probably really easy to implement.”
  • Alan Frindell, Apr 18: does not object; has drafted a parallel “CurrentGroupFill” PR in his own fork.
  • Practical direction: drop REWIND for v1; land a narrow SUBSCRIBE filter instead.

moq-transport PR #1607 — Largest Available Group filter (new, vasilvv, Apr 18): Draft/RFC. Sits alongside afrind/moq-transport#15 CurrentGroupFill and Luke’s LargestGroup as three shapes of the same minimal filter direction.

moq-dev/moq late Apr 17: Luke merged PR #1327 fixing TrackConsumer::read_frame to respect start_at. Lullabee merged PR #1318 adding JSON data support to py_lib.


2026-04-17 (evening) - Supplemental: moqlivemock mlmtest, moqxr v0.2.1, Alan’s REWIND reply

Operation: Update Sources:

  • Slack moq (via MCP): new messages since morning update (Torbjörn on mlmtest PR #63, Paul Gregoire on moqxr v0.2.1, yuyou on moq-dev-rs v17 build, Torbjörn’s Apr 12 moqlivemock dual-draft update)
  • GitHub moq-wg repos: minor churn only — PR #1378 SWITCH got new gwendalsimon review comments Apr 17
  • Implementation repos: cloudflare/moq-rs (release v0.7.17 on Apr 13), moq-dev/moq (heavy Apr 16-17 activity), video-dev/moq-js (Ali Begen UI work Apr 13-17), Quicr/libquicr (PUBLISH_OK filter), google/quiche (Apr 14-16 fixes), mondain/moqxr (v0.2.0 Apr 15, v0.2.1 Apr 17)
  • Mailing list: Alan Frindell’s Apr 17 reply on REWIND consensus call (backs Option 1)

Pages updated: discussions/discussions-2026-04.md, drafts/moq-transport.md, concepts/joining-fetch-dissent.md, implementations/openmoq.md, interop/interop-runner.md

Key findings:

Alan Frindell on REWIND consensus (Apr 17): Backs Option 1 — no action. Argues FILL_TIMEOUT=0 (PR #1490, merged Apr 14) already removes the HOL-blocking scenarios REWIND was designed to fix. Recommends “stabilise around the core.”

moqlivemock / Eyevinn stack update (Apr 12 + Apr 17): Torbjörn posted a substantial update — dual draft-14/16 auto-negotiation; new namespaces cmsf/clear, cmsf/drm-cbcs, cmsf/ecpp-cbcs; iOS Safari 26.4 via managed source buffers + EME. Interop-runner PR #63 opened Apr 12, updated Apr 17, adds mlmtest component as a runner client.

moqxr v0.2.0 + v0.2.1 releases (Apr 15 + Apr 17, Paul Gregoire / rwl4): Brings moqxr to working draft-16 base. v0.2.0 fixed SUBSCRIBE KVP parser, dropped WebTransport subprotocol for draft-14, unblocked unknown-control-message handling. v0.2.1 is additional draft-16 interop fixes.


2026-04-17 (late) - Supplemental: Luke Curley MoQ Boy demo

Operation: Update Sources:

  • Mailing list: “[Moq] MoQ Boy” by Luke Curley (2026-04-17)
  • Blog: moq.dev/blog/moq-boy/

Key findings: Game Boy emulator demo streaming via MOQT. Showcases SUBSCRIBE_NAMESPACE as a flow-control + discovery primitive: encoding/emulation pauses when no active SUBSCRIBE for a track; player auto-unsubscribes invisible/muted tracks; bidirectional emulator↔player namespace publishing with per-viewer authorization. Timely given PR #1542 (SUBSCRIBE_NAMESPACE split) and PR #1562 (.session reserved namespace, merged Apr 16).

Pages updated: discussions/discussions-2026-04.md, people/luke-curley.md


2026-04-17 - Wiki update: REWIND consensus call, Session-Level Tracks merged, interop regression

Operation: Update Sources:

  • Slack moq: No new messages (Endel joined moq, moq-rs, moq-js on Apr 16 — no substantive posts)
  • GitHub: moq-transport — PR #1562 (Session-Level Tracks) + PR #1596 (own-track filter) MERGED Apr 16; new PR #1606 (stream reset codes); PR #1542 (SUBSCRIBE_NAMESPACE split) reworked; PR #1378 SWITCH polish; PR #1604 new Gwendal Simon comment
  • GitHub: moq-wg/loc — Issue #10 new Alan Frindell comment (loc-02 also has collisions)
  • GitHub: moq-dev/moq — 10+ PRs merged Apr 16–17 (broadcast backup queue, auth refactor, —cert/—key split, moq-boy games, landing page)
  • GitHub: moqtail — 2 draft-16 cleanup PRs merged (REQUEST_ERROR unification, publish hack removal); PR #169 open
  • GitHub: cloudflare/moq-rs, video-dev/moq-js, birneee/quiche_moq — no new activity
  • GitHub: google/quiche — 1 MoQT commit (cancel subgroups on STOP_SENDING)
  • Mailing list: 2 new threads (REWIND consensus call + interim-13 minutes) from Magnus Westerlund
  • IETF Datatracker: No new WG draft versions; no new individual drafts
  • Interop runner: Regression to 18/73/14 (from 23/68/14) in Apr 17 00:32 UTC run
  • MoQ Monthly: Still only #0 (March 4). No #1 yet.
  • tobbee/moq-llm-wiki: No new issues (all 3 existing closed)

Pages updated: discussions-2026-04.md, moq-transport.md, joining-fetch.md, moq-dev.md, moqtail.md, interop-runner.md, index.md

Key findings:

Spec activity

  • PR #1562 MERGED (Apr 16): Session-Level Tracks — reserves .session namespace tuple[0] for transport-internal tracks. Relays MUST NOT forward; unrecognized tracks MUST be rejected with NOT_SUPPORTED. IANA registry established under Specification Required policy. Useful for extending transport via existing sub/obj machinery (referenced by #1507).
  • PR #1596 MERGED (Apr 16): Exclude your own tracks from SUBSCRIBE_NAMESPACE (4-line fix for #1585).
  • PR #1606 NEW (Apr 16): Alan Frindell generalizes stream reset codes to all request streams. Adds GOING_AWAY (0x4), EXPIRED_AUTH_TOKEN (0x7), SESSION_CLOSED. Renumbers UNKNOWN_OBJECT_STATUS 0x4→0x6. Aligns TOO_FAR_BEHIND at 0x5 and EXPIRED at 0x6 in PUBLISH_DONE. Fixes #1581.
  • PR #1542 reworked (Apr 16): Split into SUBSCRIBE_NAMESPACE (0x50, namespace discovery) + SUBSCRIBE_TRACKS (0x51, track subscriptions). Removes SUBSCRIBE_NAMESPACE_OPTIONS and BOTH mode entirely — behavior now determined by message type. Adds TRACK_NAMESPACE_PREFIX (0x34) for REQUEST_UPDATE prefix changes. Fixes #1458.
  • PR #1604 (Apr 16): Gwendal Simon explicitly connects #1604 and SWITCH #1378 — same catch-up-on-PUBLISH-bidi pattern; difference is subscriber- vs relay-initiated.
  • PR #1378 (Apr 16): Continued prose polish — consistent terminology, trimmed redundant sections, clearer failure flow.

Mailing list

  • REWIND consensus call (Apr 16): Magnus Westerlund opened formal three-way vote. Options: (1) no action until MOQT published, (2) adopt as extension, (3) basis for PR to merge. Deadline May 1, 2026. Follows interim-13 decision to keep REWIND as separate experimental extension.
  • Interim-13 minutes (Apr 16): Luke Curley + Victor Vasiliev worried REWIND’s cache-dependent unreliability undermines utility; Alan Frindell flagged the “relay cheats by fetching upstream” idea creates substantial implementer complexity. Cullen Jennings vs Will Law on where joining complexity belongs (client library vs relay). Editors will develop FETCH timeout and subgroup filter PRs for immediate HOL relief.

Implementation activity

  • moq-dev/moq: Major day — broadcast backup queue (PR #1319, FIFO, avoids reannounces), major moq-relay auth refactor with ~15 new tests using wiremock + axum-server TLS integration test (PR #1311), —identity replaced with —cert/—key (PR #1308), moq-boy game server maintenance (capybara→songbird, fofk→runiestory), Python raw-track support (PR #1318 open). Releases: moq-lite 0.15.14, moq-cli 0.7.18, moq-clock 0.10.16, moq-ffi 0.2.6.
  • moqtail: REQUEST_ERROR unification (PR #164), removed draft-14-era fake-SUBSCRIBE hack for PUBLISH (PR #165), message parameters PR #169 open.
  • google/quiche: Commit cancels subgroups permanently on STOP_SENDING.
  • cloudflare/moq-rs: No new activity since Apr 14.
  • video-dev/moq-js: Still quiet since mid-March.

LOC Properties collision

  • Alan Frindell comments on loc issue #10: loc-02 still collides with moqt-17 on Properties Type 0x02/0x04. Recommends moving to highest one-byte code points in next LOC revision.

Interop regression

  • 18/73/14 (Apr 17) vs 23/68/14 (Apr 16) — 5 tests flipped from pass to fail. Regression coincides with moqtail draft-16 merges and moq-dev broadcast/auth changes. Pair-level investigation needed.

Status watch

  • draft-cenzano-moq-media-interop-03 expires in 6 days (April 23) — no renewal
  • REWIND consensus call closes May 1, 2026 (14 days)

2026-04-16 - Wiki update: NAB Show MoQ showcase, SWITCH redesign, implementation activity

Operation: Update Sources:

  • Slack moq: No new messages (channel quiet since Feb 5). moq-rs and moq-js: only new member joins (Endel).
  • GitHub: moq-transport — PR #1378 (SWITCH) major redesign Apr 15-16; PR #1604 new review comments; PR #1562 4th approval
  • GitHub: moq-dev/moq — 4 PRs merged + 4 opened Apr 15-16 (browser compat, moq-lite negotiation, TLS config)
  • GitHub: moqtail — 5 draft-16 PRs merged Apr 14-15 (unified message registry, SubgroupHeader, REQUEST_OK)
  • GitHub: cloudflare/moq-rs — PR #163 qlog alignment work; v0.7.17 released
  • GitHub: google/quiche — Joining FETCH fix (largest_object at SUBSCRIBE time) by Martin Duke
  • GitHub: msf, loc, secure-objects, cmsf, catalog-format — no activity since Apr 15
  • Mailing list: No new threads since April 13
  • IETF Datatracker: No new draft versions
  • Interop runner: Unchanged at 23/68/14 (105 tests, Apr 16)
  • MoQ Monthly: Only #0 published (March 4). No #1 yet.
  • tobbee/moq-llm-wiki: No new issues (all 3 existing issues closed)
  • Web search: NAB Show 2026 MoQ demos from Wowza, Oracle, Bitmovin, Broadpeak, Synamedia

Pages updated: discussions-2026-04.md, moq-transport.md, switch-abr.md, moq-dev.md, moq-rs.md, moqtail.md, quiche-moq.md, interop-runner.md, index.md

Key findings:

NAB Show 2026 (April 18-22)

Largest public display of MoQ technology to date with multiple live demonstrations:

  • Wowza + Cloudflare: CMAF-to-MoQ relay demo (Java/Kwik stack → moq-rs relay) at Cloudflare booth W2300
  • Oracle Video @ Edge (OVE): MoQT relay network with partner demos — Ateme (ingest), Broadpeak (packaging), Bitmovin Player Web X (playback)
  • Bitmovin Player Web X: Commercial MoQ player using WebTransport + WebCodecs, sub-second latency against Cloudflare’s 330+ city relay network
  • Broadpeak: “Half MoQ relay” for HAS/MoQ coexistence at booth W3034
  • Synamedia: Quortex PowerVu & MEG with MoQ track-based affiliate distribution

Spec activity

  • SWITCH PR #1378 redesigned: Gwendal Simon replaced FETCH+SUBSCRIBE delivery with relay-initiated PUBLISH + inline catch-up (7 commits Apr 15-16)
  • Session-Level Tracks PR #1562: 4th approval (Suhas Nandakumar), close to merge
  • Joining FETCH PR #1604: Detailed feedback from Gwendal Simon on priority/parameter edge cases

Implementation activity

  • moq-dev/moq: Safari/Firefox compatibility fixes (avc3→avc1, AudioDecoder, WebTransport BiDi workaround), moq-lite ALPN fallback, releases moq-cli v0.7.18 + moq-relay v0.10.21
  • moqtail: Major draft-16 push — unified message registry (+937/−1398), SubgroupHeader, REQUEST_OK/UPDATE refactoring, datagram compat. v0.9.1 pending.
  • cloudflare/moq-rs: qlog alignment with draft-pardue-moq-qlog-moq-events-03 (+346/−242); v0.7.17 released
  • quiche-moq: Joining FETCH limited to largest_object at SUBSCRIBE time (prepares for REWIND)
  • video-dev/moq-js: No activity since mid-March

Status watch

  • draft-cenzano-moq-media-interop-03 expires in 7 days (April 23) — still no renewal
  • Interop runner stable at 23/68/14 with 11 implementations

2026-04-15 - Add people pages, fix editor/author roles

Operation: Expansion + Correction

Pages created: ian-swett.md, victor-vasiliev.md, mike-english.md Pages updated: alan-frindell.md, suhas-nandakumar.md, moq-transport.md, index.md, discussions-2026-04.md, discussions-2026-03.md, discussions-2026-02.md, discussions-2026-01.md, open-issues-analysis.md, joining-fetch.md, joining-fetch-dissent.md, quiche-moq.md, moq-rs.md, moq-js.md, interop-runner.md

Key changes:

  • Three new people pages: Ian Swett (Google, co-editor of moq-transport), Victor Vasiliev (Google, author of moq-transport, quiche-moq co-developer), Mike English (Cloudflare, maintainer of moq-rs/moq-js, interop runner operator, MoQ Monthly publisher).
  • Role corrections: Alan Frindell and Ian Swett are the editors of draft-ietf-moq-transport. Suhas Nandakumar and Victor Vasiliev are authors. Previously the wiki listed Suhas as co-editor. Alan’s page updated to “Co-editor”, Suhas’s page corrected from “Editor” to “Author”.
  • moq-transport.md authors section now lists all four authors with wikilinks.
  • Wikilinks added across 11 wiki pages: all plain-text mentions of Ian Swett, Victor Vasiliev, and Mike English converted to [[wikilink]] format.
  • People section in index.md expanded from 6 to 9 entries.

2026-04-15 - CMSF ContentProtection merged, Shaka Player DRM support

Operation: Update Sources:

  • GitHub: moq-wg/cmsf PR #18 (merged Apr 14 by Will Law)
  • GitHub: shaka-project/shaka-player PR #9972 (merged Apr 14 by Álvaro Velad Galván)
  • User (maintainer) confirmed both merges

Pages updated: moq-cmsf.md, shaka-player.md, moqlivemock.md, discussions-2026-04.md

Key changes:

  • CMSF ContentProtection signaling (PR #18): DRM signaling proposal by Torbjörn Einarsson (Eyevinn) merged into the CMSF spec. Defines contentProtections with refIDs and per-track contentProtectionRefIDs. Supports Widevine, PlayReady, FairPlay, and ECCP (ClearKey). Based on DASH/DASH-IF attributes. Key rotation not yet covered.
  • moqlivemock/warp-player DRM: DRM support implemented by Hugo Björs (Eyevinn). Supports Widevine, PlayReady, FairPlay, and ClearKey/ECCP.
  • Shaka Player DRM support (PR #9972): Álvaro Velad Galván (Atème) added CMSF contentProtection support to Shaka Player. This makes Shaka Player the second implementation of CMSF ContentProtection, after moqlivemock/warp-player. Two independent implementations is a significant milestone for the feature.

2026-04-15 - Wiki update: issue #3 corrections, DELIVERY_TIMEOUT PR, interop improvement

Operation: Update + Corrections Sources:

  • Slack moq: No new messages (channel quiet since Feb 11)
  • GitHub: moq-transport — new PR #1605 (Split DELIVERY_TIMEOUT, Victor Vasiliev, Apr 14)
  • GitHub: msf — no new activity since Apr 14; loc — no new activity
  • Mailing list: No new threads since Apr 13
  • IETF Datatracker: No new draft versions
  • Interop runner: Improved to 23 pass / 68 fail / 14 skip (from 21/70/14 on Apr 14)
  • tobbee/moq-llm-wiki: Issue #3 filed by Mike English (englishm) — detailed fact-check with corrections

Pages updated: moq-rs.md, moq-js.md, quiche-moq.md (rewritten), moq-transport.md, interop-runner.md, interop-status.md, interop-endpoints.md, discussions-2026-04.md, publish-subscribe.md (via moq-transport.md), martin-duke.md, index.md

Key changes:

Issue #3 corrections (Mike English):

  • moq-rs history rewritten: Corrected Mike English’s role — he did not help with the Go→Rust translation (that was Luke Curley). Mike joined mid-2023 as a close collaborator, contributing relay deployments, moq-pub, C FFI exploration, and draft-04 support. Added detailed timeline and key contributors (Manish, Jacob, Scott Godin, Zafer Gurel).
  • quiche-moq disambiguation: The wiki incorrectly described quiche-moq as a Rust implementation (birneee/quiche_moq). The interop runner’s “quiche-moq” is actually Google’s QUICHE MoQT — a C++ implementation inside Google’s QUICHE library (part of Chromium), primarily developed by Martin Duke and Victor Vasiliev with ~74+ source files. Rewrote the page entirely. birneee/quiche_moq is a separate Rust project on Cloudflare’s quiche crate, not in the interop runner.
  • moq-js Montevideo Tech context: Added history about video-dev/moq-js development coming from the Montevideo Tech Summer Camp 2025, with Mike as technical sponsor and Qualabs community contributors. The 2026 Summer Camp features both Mike and Luke as co-sponsors.
  • moqpack label: Changed status from “Active” to “Individual” in index to clarify it’s not a WG document.
  • publish-subscribe fix: Corrected “REQUEST” to “REQUEST_OK/REQUEST_ERROR” in the moq-transport Key Concepts list (there is no bare “REQUEST” message in the spec).
  • Community resources: Added section to index with MoQ Monthly newsletter (Mike English), Demuxed MoQ Talks playlist, Montevideo Tech Summer Camp, moq.dev Discord, and link to IETF Datatracker for all 24+ individual drafts.
  • Individual drafts listing: Added note about notable uncovered individual drafts (rewind, qlog, hang, cdn-provisioning, relay-dos).

New findings:

  • Transport PR #1605 (Apr 14): Victor Vasiliev proposes splitting DELIVERY_TIMEOUT into two separate types of timeout.
  • Interop runner improvement: 23/68/14 — best result since test count expanded to 105. Two additional tests passing compared to Apr 14.
  • draft-cenzano-moq-media-interop-03 expires in 8 days (Apr 23) — still no renewal.

2026-04-14 - Wiki update: GraphQL mailing list thread, MSF authz merge, CARP origin, interop recovery

Operation: Update Sources:

  • Slack moq: New messages Apr 13-14 (visa question for London interim, Hugo Björs joined)
  • GitHub: msf — PR #118 (authorization flows) merged Apr 13, issue #119 closed
  • GitHub: moq-transport — no new issues/PRs since Apr 13; loc — no new activity
  • Mailing list: New thread “Using MOQT for graphql subscriptions with draft-17 requires extensions” by Alan Frindell (Apr 13)
  • IETF Datatracker: No new WG draft versions; noted draft-law-moq-carp-00 (Nov 2025) as CMSF origin
  • Interop runner: Recovery to 21 pass / 70 fail / 14 skip (from 20/71/14 on Apr 13)
  • tobbee/moq-llm-wiki: No open issues

Pages updated: discussions-2026-04.md, interop-runner.md, interop-status.md, moq-msf.md, moq-cmsf.md, will-law.md, alan-frindell.md, index.md

Key findings:

  • GraphQL subscriptions on MOQT (mailing list, Apr 13): Alan Frindell argues draft-17’s inflexible message parameters are a mistake. Key issues: 4KB track name limit forces query body into namespace/name; custom parameters require negotiation at every hop; 64KB control message size limit may be too small; no HTTP-like header forwarding for auth. Broader question about MOQT suitability for non-media use cases.
  • MSF PR #118 merged (Apr 13): Authorization flows documentation added to MSF spec by Suhas Nandakumar.
  • CARP → CMSF lineage: draft-law-moq-carp-00 (“CARP - a CMAF compliant implementation of WARP”, Nov 2025) was adopted by the WG and became draft-ietf-moq-cmsf-00 (Dec 2025). Added history to CMSF page.
  • Interop runner: Recovered from 20/71 (Apr 13) back to 21/70 (Apr 14). One test flipped back to pass.
  • draft-cenzano-moq-media-interop-03 expires in 9 days (Apr 23) — still no renewal.
  • Slack activity minimal: Aman Sharma asked about visa invitation for London interim; Hugo Björs joined moq.

2026-04-13 - Wiki update: add moq-lite and NMSF drafts, interop regression, #1405 resolution

Operation: Update Sources:

  • GitHub: moq-transport issues/PRs checked — #1405 updated Apr 12 (Ian Swett inclined to close)
  • GitHub: msf — no new activity since Apr 10; loc — no new activity since Mar 23
  • Mailing list: Only weekly GitHub digest on Apr 12, no new substantive threads
  • IETF Datatracker: No new WG draft versions; two individual drafts added to wiki
  • Interop runner: Slight regression (21→20 pass, 70→71 fail)
  • tobbee/moq-llm-wiki: No open issues

Pages created: wiki/drafts/moq-lite.md, wiki/drafts/moq-nmsf.md Pages updated: index.md, discussions-2026-04.md, interop-runner.md, interop-status.md, moq-transport.md, luke-curley.md, moq-dev.md

Key findings:

  • draft-lcurley-moq-lite-04 (Apr 9): Luke Curley’s simplified transport protocol, now at version 04. Removes subgroups, object properties, datagrams, and 30+ message types from moq-transport. Pull-only, stream-based design. Individual submission, not WG-adopted. This is the spec behind moq-dev/moq.
  • draft-herz-moq-nmsf-01 (Apr 7): Erik Herz (Vivoh) proposes extending MSF with Neural Video Codec packaging. Dual-track model (hyperprior + latent) for priority-aware delivery. Supports DCVC-RT, SSF, FVC, and other learned codecs. 18 pages, individual submission.
  • Issue #1405 (Single Object Subgroup ID): Ian Swett commented Apr 12 that he’s inclined to close with no action after PR #1593 saw no WG interest. Will put before WG to confirm.
  • Interop runner: Slight regression from 21 pass / 70 fail to 20 pass / 71 fail (105 tests, 14 skip unchanged). One test flipped from pass to fail.
  • Virtual interim 13 happening today (Apr 13) with REWIND slides on agenda.
  • draft-cenzano-moq-media-interop-03 expires in 10 days (Apr 23) — still monitoring for renewal.
  • Slack moq: No new messages (channel quiet since Feb 11).

2026-04-12 - Add London interim details

Operation: Update Sources: IETF Datatracker (interim-2026-moq-08 through moq-11 session pages)

Pages updated: interim-meetings.md, discussions-2026-04.md

Key changes:

  • Added London interim details: County Hall / The Riverside Building, Belvedere Road, London SE1 7PB
  • June 11 (moq-08): 2 sessions (hackathon/interop day)
  • June 12 (moq-09, moq-10 at 08:30 UTC, moq-11 at 12:30 UTC): 3 working sessions
  • Remote participation via Meetecho (details TBD)
  • Explained numbering: moq-08 through moq-11 registered on datatracker before the virtual interims

2026-04-12 - Rename Eyevinn MOQ Stack to moqlivemock, major update

Operation: Update + Rename Sources: User (maintainer) provided updated feature list; GitHub repos checked for versions.

File renamed: wiki/implementations/eyevinn-moq.md wiki/implementations/moqlivemock.md Pages updated: moqlivemock.md (full rewrite), index.md (renamed + updated draft versions), interop-status.md (renamed + added draft-16), shaka-player.md (updated wikilinks), discussions-2026-01.md (updated wikilink)

Key changes:

  • Renamed from “Eyevinn MOQ Stack” to “moqlivemock” (the central component)
  • Draft support upgraded from draft-14 only to draft-14 and draft-16 with ALPN negotiation
  • Catalog now supports both FETCH and SUBSCRIBE
  • Content protection documented with three namespace modes: clear (cmsf/clear), commercial DRM (cmsf/drm-{scheme}), and ClearKey/ECCP (cmsf/eccp-{scheme})
  • All repos at v0.7.0+ (moqtransport v0.7.0, moqlivemock v0.7.0, warp-player v0.7.1)
  • All [[eyevinn-moq]] wikilinks updated to [[moqlivemock]]

2026-04-12 - Add draft-cenzano-moq-media-interop-03

Operation: Ingest Sources:

Pages created: wiki/drafts/moq-media-interop.md Pages updated: index.md (added to drafts table), alan-frindell.md (added as co-author), media-packaging.md (added Media Interop section), interop-status.md (added media wire format interop section)

Key findings:

  • Individual submission by Jorge Cenzano-Ferret and Alan Frindell (both Meta), currently at version 03
  • Defines concrete media wire format over LOC for H.264 video, Opus audio, AAC-LC audio, and UTF-8 text
  • Uses MOQT extension headers (0x0A, 0x15, 0x0D, 0x0F, 0x11, 0x13) for media metadata
  • Supports mid-stream encoding parameter changes
  • Expires 2026-04-23 — needs monitoring for renewal. If not renewed, the draft lapses.
  • Not adopted by the MOQ working group (individual submission)
  • Documents the wire format used by moxygen and LOC-based media interop

2026-04-12 - Fix moq-rs production draft version, add doc.moq.dev

Operation: Correction + Enhancement Sources:

  • Slack moq thread (2026-04-11): Mike English noted moq-rs wiki page incorrectly listed draft-07 as Cloudflare’s current production deployment — it’s actually draft-14
  • Slack moq thread (2026-04-11): Luke Curley pointed to doc.moq.dev as documentation for moq-dev/moq

Pages updated:

  • moq-rs.md — Fixed draft support: production deployment is draft-14, not draft-07
  • moq-dev.md — Added doc.moq.dev as documentation link

2026-04-12 - Wiki update: interop runner expansion, required-request-id debate, rewind-02

Operation: Update Sources:

  • Slack moq: No new messages (channel quiet since Feb 11)
  • GitHub: moq-transport issues/PRs checked — #1603 has new comments from Ian Swett (Apr 11)
  • GitHub: msf, loc — no new activity since Apr 10
  • Mailing list: No new threads since last update
  • IETF Datatracker: No new WG draft versions; draft-duke-moq-subscribe-rewind-02 published Apr 2
  • Interop runner: Test count expanded from 93 to 105; moqx (OpenMOQ relay) added as 11th implementation
  • tobbee/moq-llm-wiki: No open issues

Pages updated: interop-status.md, interop-runner.md, discussions-2026-04.md, joining-fetch-dissent.md, martin-duke.md, openmoq.md

Key findings:

  • Interop runner expanded to 105 tests (was 93) with 21 pass / 70 fail / 14 skip. The growth is from moqx (OpenMOQ’s moxygen fork) joining the matrix as an 11th relay. moqx shows strong results: 6/6 with moq-dev-js, 5-6/6 with moq-rs-draft-16.
  • Ian Swett commented on #1603 (Apr 11): required-request-id was added for “feature parity” with single control stream model but “it was never clear exactly what functionality this provided.” Stream IDs in WebTransport aren’t exposed to applications. He also expressed that Joining FETCH’s dependency on another Request is a design concern.
  • draft-duke-moq-subscribe-rewind-02 published Apr 2 — refines the “Rewind” subscription filter for best-effort past group retrieval. Key topic for interim-13 meeting (Apr 13).
  • Virtual interim 13 is tomorrow (Apr 13) with REWIND slides on the agenda.

2026-04-11 - Split moq-rs/moq-js into separate implementation pages

Operation: Restructure Sources:

  • Slack moq: Mike English’s clarification (2026-04-11) about the relationship between cloudflare/moq-rs, moq-dev/moq, and video-dev/moq-js
  • GitHub API: Repo metadata for all four projects

Context: Mike English explained that cloudflare/moq-rs (was englishm/moq-rs) and moq-dev/moq (was kixelated/moq-rs) are “sibling” implementations that both started from Luke Curley’s original codebase but are now independent. Similarly, video-dev/moq-js and the JS in moq-dev/moq are separate codebases. The forks were born when Luke was not going to support the IETF WG specs directly. Luke’s Hang player is a total rewrite, not derived from the old moq-js.

Pages created: wiki/implementations/moq-dev.md (moq-dev/moq — Luke Curley’s Rust+TS monorepo with moq-lite + Hang) Pages updated:

  • moq-rs.md — Clarified as Cloudflare’s IETF-aligned fork; added history section; updated maintainer to Mike English
  • moq-js.md — Clarified as video-dev’s IETF-aligned JS; added history section
  • index.md — Added moq-dev/moq to implementations list and draft support table
  • luke-curley.md — Updated references from moq-rs to moq-dev
  • interop-endpoints.md — Fixed Luke Curley entry to reference moq-dev
  • interop-status.md — Fixed v17 interop to reference moq-dev instead of moq-rs
  • interop-runner.md — Updated wikilinks for moq-dev-rs and moq-dev-js entries
  • imquic.md — Fixed v17 interop reference to moq-dev

Timeline:

  • 2022-06-29: kixelated/moq-rs created (Luke Curley’s original)
  • 2023-05-24: kixelated/moq-js created (companion JS library)
  • 2024-10-15: englishm/moq-rs and video-dev/moq-js created (IETF-aligned forks)
  • 2025-06-20: kixelated/moq-js archived (“Moved to kixelated/moq”)
  • Now: kixelated/moq-rs → moq-dev/moq (monorepo), englishm/moq-rs → cloudflare/moq-rs

2026-04-11 - Fix broken interop-runner links (issue #2)

Operation: Maintenance Changes:

  • Removed duplicate wiki/implementations/interop-runner.md (content already covered by wiki/interop/interop-runner.md)
  • Moved [[interop-runner]] listing from Implementations to Interop section in wiki/index.md
  • All [[interop-runner]] wikilinks now resolve unambiguously

2026-04-11 - Wiki update: new transport issue/PR, MSF initTrack debate

Operation: Update Sources:

  • Slack moq: No new messages since Feb 11 (channel quiet)
  • Slack moq-rs, moq-js, libquicr: No substantive new activity
  • GitHub: moq-transport, msf, loc — checked for new issues/PRs since Apr 10
  • Mailing list: No new threads since last update
  • IETF Datatracker: No new draft versions (still at transport-17, msf-00, loc-02, etc.)
  • Interop runner: Unchanged — 93 tests, 19 pass / 62 fail / 12 skip (draft-16 target)
  • tobbee/moq-llm-wiki: No open issues

Pages updated: discussions-2026-04.md, moq-transport.md, joining-fetch-dissent.md, moq-msf.md

Key findings:

  • New transport issue #1603 by Martin Duke: questions whether required-request-id is needed for all request types (suggests limiting to REQUEST_UPDATE and FETCH only)
  • New transport PR #1604 by Martin Duke: implements #1602 proposal to move Joining FETCH onto SUBSCRIBE/PUBLISH stream; Alan Frindell reviewed noting shared parameter state constraints
  • Transport PR #1540 (coalescing REQUEST_UPDATE processing, merged Apr 9) was missed in previous update, now captured
  • Transport PR #1562 (Session-Level Tracks reserved namespace) updated Apr 10, now listed as open PR
  • MSF PR #118 (authorization flows) updated Apr 10, now listed in MSF page
  • MSF issue #153 (initTrack synchronization problem) expanded with Victor Vasiliev’s analysis favoring removal of initTrack feature

2026-04-11 - Add draft-frindell-moq-moqpack-00

Operation: Ingest Sources:

Pages created: wiki/drafts/moq-moqpack.md Pages updated: index.md (added to drafts table), alan-frindell.md (added as author)

Key findings:

  • New individual submission by Alan Frindell (Meta), published 2026-03-02
  • Proposes QPACK-based compression for MOQT control messages to reduce overhead from repeated values (auth tokens, track names)
  • Uses flag bit 0x40 on message types to signal compressed format
  • Designed for compatibility with existing QPACK libraries
  • Not yet adopted by the MOQ working group

2026-04-10 - Wiki update: OpenMOQ repos, MSF PR coverage

Operation: Update Sources:

  • Slack moq: Messages through 2026-04-10 (no new activity since last update)
  • GitHub: moq-transport, msf, loc — checked for new issues/PRs
  • GitHub: tobbee/moq-llm-wiki issue #1 (“Add OpenMOQ”)
  • Mailing list: No new threads since last update
  • IETF Datatracker: No new draft versions
  • Interop runner: Unchanged — 93 tests, 19 pass / 62 fail / 12 skip (draft-16 target)

Pages updated: openmoq.md (added moqx relay context, playa player, moqxr description), moq-msf.md (added merged PR #124)

Key findings:

  • Wiki issue #1 requested adding OpenMOQ repos: moqx (server/relay) not yet public — openmoq/moxygen fork serves as buffer repo; red5pro/moq-playa (player) not yet public; mondain/moqxr already listed but description enriched
  • MSF had PR #124 (clarify first object in event/media timeline track) merged Apr 9, not previously captured
  • No new IETF drafts, mailing list threads, or interop runner changes since last update

2026-04-10 - Wiki update: mailing list, interop runner, discussion enrichment

Operation: Update Sources:

  • Slack moq: Messages through 2026-04-10
  • GitHub: moq-transport (issues/PRs), msf (issues/PRs), loc (issues/PRs)
  • Mailing list: https://mailarchive.ietf.org/arch/browse/moq/ (threads through Apr 10)
  • IETF Datatracker: No new draft versions (still at transport-17, msf-00, loc-02, secure-objects-00, privacy-pass-02, cmsf-00)
  • Interop runner: 93 tests, 19-22 pass / 59-62 fail / 12 skip (draft-16 target)

Pages created: interop-runner.md Pages updated: discussions-2026-04.md, discussions-2026-03.md, interim-meetings.md, moq-transport.md

Key findings:

  • Mailing list had active threads not previously captured: consensus call on draft-17 (Mar 24 → Apr 10), 7-byte varint debate (Mar 19 → Apr 7), MoQ charter and QMUX scope, Presence/Notifications proposal
  • 7-byte varint debate resolved with PR #1595 (merged Apr 9)
  • Virtual interim 12 (Mar 30) minutes posted, interim 13 (Apr 13) agenda posted with REWIND discussion
  • PUBLISH_DONE / subgroup FIN handling question raised by Alan Frindell (Mar 31)
  • New varint encoding example bug found and acknowledged (Mar 3)
  • Luke Curley published security camera blog post (Mar 10)
  • No new draft versions published since last update

2026-04-10 - GitHub issues/PRs analysis, SWITCH status, interim schedule

Operation: Analysis + Ingest Sources:

  • GitHub: All open issues across moq-transport (48), msf (49), loc (9), secure-objects (8), privacy-pass (2), cmsf (4)
  • GitHub: All open PRs across moq-transport (17), msf (3)
  • IETF datatracker API: Interim meeting schedule through June 2026
  • AI minutes index: ietfminutes.org

Pages created: switch-abr.md, joining-fetch-dissent.md, open-issues-analysis.md, interim-meetings.md Pages updated: index.md

Key findings:

  • 48 open transport issues, 17 open PRs - Joining Fetch and SWITCH are biggest debates
  • SWITCH (#1354) has 39 comments, most discussed open issue
  • Next interim is April 13 with REWIND slides
  • Properties Type collision (#1550) is a cross-draft bug needing coordinated fix
  • Request ID validation (#1459) is an implementation blocker labeled BLOCKED

2026-04-10 - Ingest full Slack history (Jan 12 - Apr 10) and interop matrix

Operation: Ingest Sources:

Pages created: discussions-2026-01.md, discussions-2026-02.md Pages updated: index.md, interop-status.md (added matrix details), interop-endpoints.md (added quiche-moq, moqtail, akamai, imquic), eyevinn-moq.md (media support details)

Key findings:

  • 10 implementations in the interop runner matrix
  • Draft-16 published Jan 14, draft-17 published Mar 3
  • Boulder interim hackathon (Feb 9-12) drove major interop progress
  • Eyevinn moqlivemock announced with HEVC, Opus, AC-3, subtitles (Jan 27)
  • Shaka Player v5.0.5 updated to draft-14 support

2026-04-10 - Add draft-14 and Eyevinn implementations

Operation: Ingest Sources:

  • Downloaded draft-ietf-moq-transport-14.txt (Sept 2025)
  • Eyevinn GitHub repos: moqtransport, moqlivemock, warp-player

Pages created: wiki/implementations/eyevinn-moq.md Pages updated: index.md, interop-status.md


2026-04-10 - Initial Wiki Creation

Operation: Full initial setup Sources ingested:

  • IETF drafts: moq-transport-17, moq-msf-00, moq-loc-02, moq-secure-objects-00, moq-privacy-pass-auth-02, moq-cmsf-00
  • GitHub activity: moq-wg/moq-transport (issues up to #1602, PRs up to #1599), moq-wg/msf, moq-wg/loc
  • Slack moq channel: messages from 2026-03-12 through 2026-04-10
  • IETF Datatracker: MOQ WG document listing

Pages created: 30+ pages covering drafts, concepts, people, implementations, discussions, and interop Cross-references: Established between all pages using Obsidian wikilinks