Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions quest/m1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
28 changes: 28 additions & 0 deletions quest/m1/js-insert-track.md
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions quest/m1/uring-tests-under-load.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
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.

## Plan

Expand Down
2 changes: 2 additions & 0 deletions quest/m2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
23 changes: 23 additions & 0 deletions quest/m2/drafts-changelog-audit.md
Original file line number Diff line number Diff line change
@@ -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
23 changes: 23 additions & 0 deletions quest/m2/drafts-next-section.md
Original file line number Diff line number Diff line change
@@ -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.
Loading