From dbd123244e38435090a0cb63fc3e3da0748ad3cd Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Wed, 28 Oct 2026 08:36:19 -0700 Subject: [PATCH 1/3] chore(quest): claim quest/m1/interop-coverage/js-imquic-objects.md Quest-Claim: 151ae109821b512f From 037e287b6211aa594b759841c837bb7c7a5e4103 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Wed, 28 Oct 2026 08:40:55 -0700 Subject: [PATCH 2/3] quest: wait on the runner's @moq/net 0.4.7 bump for imquic @moq/net 0.4.7 shipped from release with moq-dev/moq#6769, and englishm/moq-interop-runner#179 moves the runner's moq-dev-js client to it. Rewrite the quest to wait for that PR to merge and the client image to be rebuilt. Co-Authored-By: Claude Opus 5.5 --- quest/m1/interop-coverage/README.md | 2 +- .../m1/interop-coverage/js-imquic-objects.md | 58 +++++++++---------- quest/m2/audit-interop.md | 3 +- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/quest/m1/interop-coverage/README.md b/quest/m1/interop-coverage/README.md index 9e3e2800e48..7c131f11ba2 100644 --- a/quest/m1/interop-coverage/README.md +++ b/quest/m1/interop-coverage/README.md @@ -45,7 +45,7 @@ coverage on `main` at `3ab6cbf81d`. ## Required - [JS namespace lifecycle](/quest/m1/interop-coverage/js-namespace-done.md) - the runner's moq-dev-js client moves to an `@moq/net` that withdraws namespaces by reset, so subscribe-namespace-lifecycle passes on Cloudflare draft-18 and aiomoqt -- [JS subgroup data through imquic](/quest/m1/interop-coverage/js-imquic-objects.md) - the runner's moq-dev-js client moves to an `@moq/net` patch that writes data stream headers in one write, so data-subgroup-basic passes against imquic +- [JS subgroup data through imquic](/quest/m1/interop-coverage/js-imquic-objects.md) - waits for englishm/moq-interop-runner#179 (moq-dev-js to `@moq/net` 0.4.7, one-write data stream headers) and an image rebuild, so data-subgroup-basic passes against imquic - [Late join and FETCH](/quest/m1/interop-coverage/late-join.md) - a late subscriber gets the current group from object 0, and a standalone FETCH returns a past group exactly ## Related diff --git a/quest/m1/interop-coverage/js-imquic-objects.md b/quest/m1/interop-coverage/js-imquic-objects.md index 98ad864939d..83612aaeba8 100644 --- a/quest/m1/interop-coverage/js-imquic-objects.md +++ b/quest/m1/interop-coverage/js-imquic-objects.md @@ -2,39 +2,39 @@ ## Goal -Condition: the next `@moq/net` patch release, 0.4.7 or later, ships from -`release` carrying [moq-dev/moq#6769](https://github.com/moq-dev/moq/pull/6769), -the JS-only `release` backport of -[moq-dev/moq#6504](https://github.com/moq-dev/moq/pull/6504). Check that -`npm view @moq/net version` is above 0.4.6 and that -`git log origin/release -- js/net/package.json` shows a bump after the -backport merged. Releases are cut separately; this quest bumps nothing. +Condition: [englishm/moq-interop-runner#179](https://github.com/englishm/moq-interop-runner/pull/179) +merges and the runner republishes the moq-dev-js client image. That PR +bumps the moq-dev-js client's `@moq/net` from 0.4.6 to 0.4.7, which +carries [moq-dev/moq#6769](https://github.com/moq-dev/moq/pull/6769) and +writes each data stream header in one write, so `data-subgroup-basic` +passes against imquic (draft-22, WebTransport). Check it with +`gh pr view 179 -R englishm/moq-interop-runner --json state`, then +confirm that the `ghcr.io/englishm/moq-interop-runner-moq-dev-js-client:latest` +image is newer than 2026-10-22 and that the next runner nightly shows the +cell green. Delete this quest once #179 merges. -Then bump `@moq/net` in the moq-dev-js client of -[englishm/moq-interop-runner](https://github.com/englishm/moq-interop-runner) -to it, so `data-subgroup-basic` passes against imquic (draft-22, -WebTransport), and delete this quest once that PR merges. If imquic fixes -[meetecho/imquic#43](https://github.com/meetecho/imquic/issues/43) first and -the runner rebuilds its image, the cell turns green without the bump; delete -the quest then. +If imquic fixes [meetecho/imquic#43](https://github.com/meetecho/imquic/issues/43) +first and the runner rebuilds its imquic image, the cell turns green even +without the bump. Delete the quest then too. ## Plan imquic drops a SUBGROUP_HEADER or FETCH_HEADER that arrives across more -than one stream read, so the relay discards every object and logs -`No track found for that subscription` with alias 0 at the stream's FIN. -`@moq/net` 0.4.6 and earlier write the header one field per write, which -the polyfill sends as separate frames. `main` writes it in one write since -#6504, and the backport does the same on `release`. Against the runner's -imquic relay image, the runner's client fails every run on 0.4.4 and passes -3/3 on the backport branch. +than one stream read. `@moq/net` 0.4.6 and earlier write the header one +field per write, which the polyfill sends as separate frames. On +2026-10-28, against the runner's imquic relay image, a client built from +#179 passed `data-subgroup-basic` in 3 of 3 runs. The same client on 0.4.6 +failed all 3. -The runner's client must stay on the 0.4 line for this: `main`'s announced -request watches the tuple's exact path, which moq-transport relays answer -only with namespaces beneath it, so it never discovers the shorter routing -prefix the publisher claimed. That is recorded on -[Runner client bump](/quest/m2/release/runner-client-bump.md), which moves -the client to `main`'s cut. +Don't open a competing runner PR. If #179 stalls, nudge it there. The +image rebuild was requested on +[englishm/moq-interop-runner#177](https://github.com/englishm/moq-interop-runner/pull/177). +`announce-subscribe` against imquic times out on both versions and belongs +to the [Interop audit](/quest/m2/audit-interop.md). -The interop audit's standing approval covers PRs touching the `moq-dev-*` -builds. +The runner's client has to stay on the 0.4 line. `main`'s announced +request watches the tuple's exact path, and moq-transport relays answer +that only with namespaces beneath it, so the client never discovers the +shorter routing prefix the publisher claimed. +[Runner client bump](/quest/m2/release/runner-client-bump.md) records this +and moves the client to `main`'s cut. diff --git a/quest/m2/audit-interop.md b/quest/m2/audit-interop.md index 76584de55fa..682c4acf9fc 100644 --- a/quest/m2/audit-interop.md +++ b/quest/m2/audit-interop.md @@ -145,7 +145,8 @@ and moqtopus and xquic-draft-18 over WebTransport (raw QUIC only). From the 2026-10-25 run: the runner's moq-dev-js `announce-subscribe` case times out against imquic on both 0.4.4 and the [moq-dev/moq#6769](https://github.com/moq-dev/moq/pull/6769) -backport, so it predates that fix. Classify it. +backport, so it predates that fix. It still times out on 0.4.6 and 0.4.7 +(2026-10-28, 3 runs each). Classify it. ## Related From ef20a7a206d8638951b3557ee7f369b72d3ea124 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Fri, 30 Oct 2026 21:32:15 -0700 Subject: [PATCH 3/3] quest: delete js-imquic-objects now that the runner ships @moq/net 0.4.7 englishm/moq-interop-runner#179 merged and the client image was rebuilt; data-subgroup-basic passes against imquic in all three cells of the 2026-10-31 nightly. Co-Authored-By: Claude Opus 5.5 --- quest/m1/interop-coverage/README.md | 1 - .../m1/interop-coverage/js-imquic-objects.md | 40 ------------------- quest/m2/audit-interop.md | 11 +++-- 3 files changed, 8 insertions(+), 44 deletions(-) delete mode 100644 quest/m1/interop-coverage/js-imquic-objects.md diff --git a/quest/m1/interop-coverage/README.md b/quest/m1/interop-coverage/README.md index e38ea8f968b..251c517f67c 100644 --- a/quest/m1/interop-coverage/README.md +++ b/quest/m1/interop-coverage/README.md @@ -45,7 +45,6 @@ coverage on `main` at `3ab6cbf81d`. ## Required - [JS namespace lifecycle](/quest/m1/interop-coverage/js-namespace-done.md) - the runner's moq-dev-js client moves to an `@moq/net` that withdraws namespaces by reset, so subscribe-namespace-lifecycle passes on Cloudflare draft-18 and aiomoqt -- [JS subgroup data through imquic](/quest/m1/interop-coverage/js-imquic-objects.md) - waits for englishm/moq-interop-runner#179 (moq-dev-js to `@moq/net` 0.4.7, one-write data stream headers) and an image rebuild, so data-subgroup-basic passes against imquic - [JS subscribers FETCH](/quest/m1/interop-coverage/js-ietf-fetch.md) - `@moq/net` fetches past groups over moq-transport, and joins the CLI FETCH round ## Related diff --git a/quest/m1/interop-coverage/js-imquic-objects.md b/quest/m1/interop-coverage/js-imquic-objects.md deleted file mode 100644 index 83612aaeba8..00000000000 --- a/quest/m1/interop-coverage/js-imquic-objects.md +++ /dev/null @@ -1,40 +0,0 @@ -# [XS] The runner's JS client writes data stream headers in one write - -## Goal - -Condition: [englishm/moq-interop-runner#179](https://github.com/englishm/moq-interop-runner/pull/179) -merges and the runner republishes the moq-dev-js client image. That PR -bumps the moq-dev-js client's `@moq/net` from 0.4.6 to 0.4.7, which -carries [moq-dev/moq#6769](https://github.com/moq-dev/moq/pull/6769) and -writes each data stream header in one write, so `data-subgroup-basic` -passes against imquic (draft-22, WebTransport). Check it with -`gh pr view 179 -R englishm/moq-interop-runner --json state`, then -confirm that the `ghcr.io/englishm/moq-interop-runner-moq-dev-js-client:latest` -image is newer than 2026-10-22 and that the next runner nightly shows the -cell green. Delete this quest once #179 merges. - -If imquic fixes [meetecho/imquic#43](https://github.com/meetecho/imquic/issues/43) -first and the runner rebuilds its imquic image, the cell turns green even -without the bump. Delete the quest then too. - -## Plan - -imquic drops a SUBGROUP_HEADER or FETCH_HEADER that arrives across more -than one stream read. `@moq/net` 0.4.6 and earlier write the header one -field per write, which the polyfill sends as separate frames. On -2026-10-28, against the runner's imquic relay image, a client built from -#179 passed `data-subgroup-basic` in 3 of 3 runs. The same client on 0.4.6 -failed all 3. - -Don't open a competing runner PR. If #179 stalls, nudge it there. The -image rebuild was requested on -[englishm/moq-interop-runner#177](https://github.com/englishm/moq-interop-runner/pull/177). -`announce-subscribe` against imquic times out on both versions and belongs -to the [Interop audit](/quest/m2/audit-interop.md). - -The runner's client has to stay on the 0.4 line. `main`'s announced -request watches the tuple's exact path, and moq-transport relays answer -that only with namespaces beneath it, so the client never discovers the -shorter routing prefix the publisher claimed. -[Runner client bump](/quest/m2/release/runner-client-bump.md) records this -and moves the client to `main`'s cut. diff --git a/quest/m2/audit-interop.md b/quest/m2/audit-interop.md index 21dd32417f0..23aa37f3171 100644 --- a/quest/m2/audit-interop.md +++ b/quest/m2/audit-interop.md @@ -118,8 +118,12 @@ Theirs, reported or waiting on others: fixed upstream; imquic's cells against `cdn.moq.dev` wait for the runner to rebuild its image. [meetecho/imquic#43](https://github.com/meetecho/imquic/issues/43) - (drops a data stream whose header spans reads) is owned by - [JS subgroup data through imquic](/quest/m1/interop-coverage/js-imquic-objects.md). + (drops a data stream whose header spans reads) is closed, and the + runner's moq-dev-js client writes the header in one write since + `@moq/net` 0.4.7 + ([englishm/moq-interop-runner#179](https://github.com/englishm/moq-interop-runner/pull/179)): + `data-subgroup-basic` against imquic passes in all three cells of the + 2026-10-31 nightly. [Eyevinn/moqlivemock#157](https://github.com/Eyevinn/moqlivemock/issues/157) is fixed and green. - Drafted in this run, posted only if the maintainer approved: MOQtail draft-18 never forwards @@ -153,7 +157,8 @@ and moqtopus and xquic-draft-18 over WebTransport (raw QUIC only). From the 2026-10-25 run: the runner's moq-dev-js `announce-subscribe` case times out against imquic on both 0.4.4 and the [moq-dev/moq#6769](https://github.com/moq-dev/moq/pull/6769) backport, so it predates that fix. It still times out on 0.4.6 and 0.4.7 -(2026-10-28, 3 runs each). Classify it. +(2026-10-28, 3 runs each), and fails in all three moq-dev-js → imquic +cells of the 2026-10-31 nightly. Classify it. ## Related