From 37c6082db3babfb219dbb06a24cb899080266e7d Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Thu, 8 Oct 2026 16:53:11 -0700 Subject: [PATCH 1/2] quest: plan follow-ups from the 2026-10-08 spawn Draft changelog publishing and audit (m2), dropping @moq/net insertTrack (m1), and the moq-uring MEMLOCK recurrence noted on its existing quest. Co-Authored-By: Claude Opus 5.5 --- quest/m1/README.md | 1 + quest/m1/js-insert-track.md | 28 ++++++++++++++++++++++++++++ quest/m1/uring-tests-under-load.md | 4 +++- quest/m2/README.md | 2 ++ quest/m2/drafts-changelog-audit.md | 23 +++++++++++++++++++++++ quest/m2/drafts-next-section.md | 23 +++++++++++++++++++++++ 6 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 quest/m1/js-insert-track.md create mode 100644 quest/m2/drafts-changelog-audit.md create mode 100644 quest/m2/drafts-next-section.md diff --git a/quest/m1/README.md b/quest/m1/README.md index c5939aeb53..a8b881bcf6 100644 --- a/quest/m1/README.md +++ b/quest/m1/README.md @@ -133,6 +133,7 @@ were done or not worth their cost. - [iroh keep-alive](/quest/m1/iroh-keep-alive.md) - the iroh backend honors `quic.keep_alive` - [Rust papercuts](/quest/m1/papercuts-rs.md) - HTTP refusals are counted, and a `u64::MAX` resume is unbounded - [JS papercuts](/quest/m1/papercuts-js.md) - IETF status 0 keeps the subgroup open, a muted rendition change settles, and bad element attributes warn +- [Drop insertTrack](/quest/m1/js-insert-track.md) - `createTrack` is `@moq/net`'s only way to add a track by hand, as in Rust - [Front parking](/quest/m1/origin-front-parks.md) - an unroutable request waits on a front instead of re-asking on every route-table move - [Route wakes](/quest/m1/route-wakes.md) - a route change wakes only the fronts it can move, so pool churn stops scaling with served paths - [Publish channel count](/quest/m1/publish-audio-channel-count.md) - forcing a channel count on an Audio.Capture stops costing the subscriber gaps of silence diff --git a/quest/m1/js-insert-track.md b/quest/m1/js-insert-track.md new file mode 100644 index 0000000000..23435af2ae --- /dev/null +++ b/quest/m1/js-insert-track.md @@ -0,0 +1,28 @@ +# [XS] @moq/net drops insertTrack + +## Goal + +`BroadcastProducer.insertTrack` is gone from `@moq/net`; `createTrack` is the +only way to add a track by hand, mirroring Rust's `create_track` (Rust has +`create_track` and `reserve_track`, no insert). It has no production caller. + +## Plan + +Decided 2026-10-08, from js-track-takeover's +[#5068](https://github.com/moq-dev/moq/pull/5068) report: `insertTrack` takes +a caller-built producer, so it can't take over a queued request (the waiting +subscribers belong to the request's own producer) and keeps throwing +`duplicate track` where `createTrack` answers. Delete it rather than keep a +second, weaker path. Rejected: making it internal, and keeping it public with +docs. + +Inline the method into `createTrack`, move the tests that call it onto +`createTrack`, and fix the stale comment in `js/net/examples/publish.ts` +("Mirrors the Rust createTrack/insertTrack") and the `insertTrack` mention in +`doc/lib/js/net.md`. + +Public API: breaking (`insertTrack` removed). Wire: none. + +## Required + +- [JS createTrack takes over a queued request](/quest/m0/js-track-takeover.md) - edits the same `broadcast.ts` methods diff --git a/quest/m1/uring-tests-under-load.md b/quest/m1/uring-tests-under-load.md index 3672bd3645..ecbbfd3616 100644 --- a/quest/m1/uring-tests-under-load.md +++ b/quest/m1/uring-tests-under-load.md @@ -5,7 +5,9 @@ `just check` passes while several checks run on one machine. During the 2026-10-06 parallel quest run, moq-uring tests failed while concurrent runs shared an 8 MiB `RLIMIT_MEMLOCK`, and `deadline_fires_at_park` and -`dropped_worker_rejects_operations` failed under heavy load and passed alone. +`dropped_worker_rejects_operations` failed under heavy load and passed alone. It recurred on 2026-10-08: four `moq-uring` worker tests +failed on ENOMEM during a 19-agent quest run, in a PR that never touched the +crate. ## Plan diff --git a/quest/m2/README.md b/quest/m2/README.md index 27c690f218..f34913e593 100644 --- a/quest/m2/README.md +++ b/quest/m2/README.md @@ -111,3 +111,5 @@ consumer yet, waits in [m3](/quest/m3/README.md). - [JS audio ranking](/quest/m2/js-audio-ranked.md) - @moq/hang ranks audio and video renditions like Rust, enabled first, and HLS lists audio by that rank - [ts::Export catalog stream](/quest/m2/ts-export-catalog.md) - TS export takes (source, catalog) like the other exporters - [Load-balancer refusals](/quest/m2/listener-lb-refusals.md) - refuse ignored or conflicting QUIC load-balancer settings +- [Publishing opens the next section](/quest/m2/drafts-next-section.md) - `just drafts publish` adds the next version's empty changelog section +- [Draft changelog audit](/quest/m2/drafts-changelog-audit.md) - every published draft's changelog lists only what that version published diff --git a/quest/m2/drafts-changelog-audit.md b/quest/m2/drafts-changelog-audit.md new file mode 100644 index 0000000000..aa8fec10d1 --- /dev/null +++ b/quest/m2/drafts-changelog-audit.md @@ -0,0 +1,23 @@ +# [XS] Every draft's changelog matches what it published + +## Goal + +For each draft in `drafts/` with a published version, the changelog section +for its newest published version lists only what that published text +contains. Entries that landed after publication move to the next version's +section. This corrects attribution, not any format. + +## Plan + +Decided 2026-10-08, after [#5067](https://github.com/moq-dev/moq/pull/5067) +found eight late entries under moq-hang-03: + +- Scope is every published draft, not only moq-lite. Find each one's newest + version on the datatracker and compare every entry in that section against + the published body and changelog, as #5067 did for hang; do not rely on an + illustrative list. +- Skip drafts that have never been published. Run `just drafts check`. + +## Related + +- [Publishing opens the next section](/quest/m2/drafts-next-section.md) - stops the backlog from coming back diff --git a/quest/m2/drafts-next-section.md b/quest/m2/drafts-next-section.md new file mode 100644 index 0000000000..b492c277ae --- /dev/null +++ b/quest/m2/drafts-next-section.md @@ -0,0 +1,23 @@ +# [XS] Publishing a draft opens its next changelog section + +## Goal + +After `just drafts publish NAME VERSION EMAIL` submits successfully, the +draft's changelog has an empty section for the next version above the one just +published, so entries written later land there instead of under a version the +datatracker already holds. Found by +[#5067](https://github.com/moq-dev/moq/pull/5067), which moved eight entries +that landed after moq-hang-03 was published out of its -03 section. + +## Plan + +Decided 2026-10-08: + +- `sh/drafts/publish.sh` inserts the section itself on a 200 or 201 from the + datatracker, in the draft's existing changelog heading style. The commit + that records the publish carries it. Rejected: refusing to submit without a + matching section (it checks the current version, not the next), and a + written rule in `drafts/AGENTS.md` that nothing enforces. +- A failed submission leaves the file untouched. +- Ranked ahead of [Draft changelog audit](/quest/m2/drafts-changelog-audit.md), + so the audit fixes the backlog once rather than repeatedly. From 18808ae9e1fdf68ecfe22500ff4ef5f0369bfa9e Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Thu, 8 Oct 2026 16:54:12 -0700 Subject: [PATCH 2/2] quest: rewrap the uring recurrence note Co-Authored-By: Claude Opus 5.5 --- quest/m1/uring-tests-under-load.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quest/m1/uring-tests-under-load.md b/quest/m1/uring-tests-under-load.md index ecbbfd3616..21e7423dac 100644 --- a/quest/m1/uring-tests-under-load.md +++ b/quest/m1/uring-tests-under-load.md @@ -5,9 +5,9 @@ `just check` passes while several checks run on one machine. During the 2026-10-06 parallel quest run, moq-uring tests failed while concurrent runs shared an 8 MiB `RLIMIT_MEMLOCK`, and `deadline_fires_at_park` and -`dropped_worker_rejects_operations` failed under heavy load and passed alone. It recurred on 2026-10-08: four `moq-uring` worker tests -failed on ENOMEM during a 19-agent quest run, in a PR that never touched the -crate. +`dropped_worker_rejects_operations` failed under heavy load and passed alone. +It recurred on 2026-10-08: four `moq-uring` worker tests failed on ENOMEM +during a 19-agent quest run, in a PR that never touched the crate. ## Plan