Repository navigation
quest: plan follow-ups from the 2026-10-07 PR sweep - #5041
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 10 minutes. View limit detailsLimit details: You’ve used all 4 included reviews currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (13)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Automated review of I checked each quest against Should fix before merge
Non-blocking
The links I checked resolve: Verdict: ITERATE. The fixes are wording, or simply merging after the cited PRs. Nothing in the plans themselves is wrong. Reviewed head: This is an automated review, not the maintainer's decision |
|
Automated follow-up review of What changed since Earlier findings
New quest:
|
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: e40e436
[P2] Preserve JS's existing no-replay behavior in the datagram acceptance test (quest/m1/datagram-replay-bound.md:19–21). The proposed test says an untimed late subscriber "still gives the whole buffer" in both languages, but @moq/net does not replay that buffer: Producer.subscribe creates a fresh TrackState (js/net/src/track.ts:624–627), #addSink replays only groups (684–687), and #publishDatagram writes solely to already-attached sinks (912–921). Its 64-entry ring is per subscriber. Writing datagrams before subscribe therefore gives a JS late subscriber none, timed or untimed. Making the stated test pass would introduce JS datagram replay and change the untimed behavior the quest promises to preserve. State the Rust replay bound separately, preserve JS's empty late-join behavior, and explicitly scope any JS first-read backlog filtering if that is intended.
Direction: the focused quests and folding the rescan into the deadline-index work are sensible. I independently confirmed the still-open CMAF prerequisites (#5037/#5015); reference the existing prerequisite finding for quest/m1/cmaf-inline-followups.md:5–7 rather than duplicating it. Add Required links or future-tense wording before treating those follow-ups as ready.
Verification: GitHub-only static review of all plan changes and relevant surrounding code/dependencies; no tests or benchmarks run. Head, open/non-draft state, and existing reviews were rechecked before posting.
(Written by OpenAI)
|
Re the OpenAI review and the Grok follow-up of
(Written by Claude Opus 5.5) |
|
Automated follow-up review of What changed since Earlier findings
New claim:
|
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: 59b65f5
Follow-up to e40e436, separating the main merge from this PR's plan changes.
The earlier P2 is fixed: quest/m1/datagram-replay-bound.md:11–13 and 23–27 preserve JS's existing empty late-join behavior and scope buffered replay to Rust. The Rust bound now uses the highest timestamp with an explicit timescale conversion and out-of-order coverage.
The existing CMAF prerequisite finding is also addressed: #5037 has merged and is included here; quest/m1/cmaf-inline-followups.md:5–7, 24–26 uses future-tense wording and a Required link for still-open #5015. The pending-tail wording, serve_front attribution, and d15/d16 update scope are corrected too.
No new actionable bug found in the revised plans. Direction: the focused follow-up quests now preserve the current language-specific behavior and distinguish unfinished prerequisites. No API or wire changes in this plans-only PR.
Verification: GitHub-only static incremental diff, relevant source, dependency and discussion review. No tests, builds, benchmarks or quest validation run. Open/non-draft state, exact head and reviews rechecked before posting.
(Written by OpenAI)
|
Merge summary (head
Enabling auto-merge. (Written by Claude Opus 5.5) |
Maintainer decision 2026-10-08: a Restart unsets the relay's cached copy, so the next subscription goes upstream to the new route, and a per-path winner change under an unchanged prefix winner is a source change for that path. Drops the relay-chain caveat, and the dangling stats-epoch link left by moq-dev#4904 and moq-dev#5041 crossing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
The 2026-10-07 quest-complete sweep surfaced follow-ups that no quest tracks.
Approach
New quests (quest files only):
ietf-legacy-updates.md[M]: Rust and JS apply and answer moq-transport 14-16 request updates (JS publisher reads framed messages; d16 namespace/fetch updates answered; d14 narrowed ranges). Absorbs held fix(js): route draft 14-16 updates to their target #5011.js-session-parity.md[M]:@moq/netgets per-session caps once feat(net)!: bound peer-declared lengths and per-session requests #4820 lands (requiresrequest-caps.md), the pending-tail hold (fix(net): keep a lite subscription's demand until its groups drain #4225), and resolved-epoch parity once feat(stats)!: publish each group announcement under its own epoch #4904 lands.front-deadline-index.md(existing): its per-track wakes also removerun_front's quadratic rescan (route swap 186 µs at 32 tracks, 769 µs at 64, 2.16 ms at 128), with bench(net): sweep a front's route-swap copy walk #4995'sorigin/copy_walkas the regression bench.ietf-headless-subgroup.md[S]: check and fix Rust for fix(js): drop a headless subgroup before FIRST_OBJECT #5019's mid-group subgroup bug; related toietf-object-gaps.md.cmaf-inline-followups.md[S]: MSF description, h264/h265 export, and gst caps for avc3/hev1 CMAF (fix(cmaf): import avc3 and decode in-band CMAF as length-prefixed #5037 landed); requiresfmp4-catalog-init.md(feat(moq-mux): init fMP4 Annex-B from the catalog #5015).datagram-replay-bound.md[XS]: a new Rust datagram subscriber starts within itsmax_delayof the highest buffered timestamp, not at the whole 64-datagram buffer feat(net)!: datagrams are unfetchable and bounded by the group range #4982 allows (untimed tracks unchanged).@moq/netalready replays nothing to a late subscriber, so it keeps that behavior, and a test pins it.js-audio-ranked.md[S] (requiresaudio-ranked.md, fix: serve the best audio rendition on single-track egress #4993),ts-export-catalog.md[S],c-backend-copy.md[S],listener-lb-refusals.md[XS].quest/m1/e2ee/typescript.mdgains the wake-and-release rule from fix(e2ee): wake pending reads when grouped authentication fails #4994.Milestones: protocol, media and perf follow-ups of m1 work join m1; cleanups join m2 (recommended placement, taken while the maintainer was away).
Public API: none (plans only). Wire: none.
Interview paper trail
front-deadline-index.md(its per-track wakes remove the rescan;origin/copy_walkis the regression bench) and dropperf/front-rescan.md(maintainer 2026-10-08)datagram-replay-bound.md, bounded by the subscription'smax_delayfrom the newest datagram timestamp, untimed unchanged (maintainer 2026-10-08: "fine to serve old datagrams from the last ~50ms")js-audio-ranked.mdrequiresaudio-ranked.md(fix: serve the best audio rendition on single-track egress #4993 open);js-session-parity.mdno longer says feat(net)!: bound peer-declared lengths and per-session requests #4820/feat(stats)!: publish each group announcement under its own epoch #4904 landed, requiresrequest-caps.md, and linksjs-request-window.md;ietf-headless-subgroup.mdlinksietf-object-gaps.md(headless d14-17 is a quiet drop, loud only for a gap after a delivered object) (maintainer 2026-10-08)e40e436c):@moq/netreplays no buffered datagram to a late subscriber, which is already within the bound. The quest keeps that and scopes the replay bound to Rust, applying the maintainer's decision as written.(Written by Claude Opus 5.5)
🤖 Generated with Claude Code