Repository navigation
quest: resolve the 2026-10-06 audit - #4946
Conversation
Apply the maintainer's /quest-audit decisions to the quest tree on main: sync the auth line with its branch, delete children already finished on the ffi-shape, cpp, and qos line branches, delete route trust and the m3 processor line, record the settled decisions (catalog rendition IDs, ladder controller ownership, stats-split first, flv/mkv --delay, shared-clock anchors, unordered qmux scope, tls:// mTLS through qmux), split a stats producer benchmark quest, and fix stale facts and Required ordering. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✨ Finishing Touches✨ Simplify code
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: quest: resolve the 2026-10-06 auditReviewed head: I checked every Markdown link in all 450 files under Non-blocking
No other issues found. The deletions, moves, and recorded decisions read consistently with each other and with Verdict: MERGE. Nothing blocks. Fixing item 1 before landing would keep This is an automated review, not the maintainer's decision |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merging. This lands the maintainer's 2026-10-06 audit decisions (paper trail in the body). For Grok's review:
The epoch-related edits (deleting transcode-group-start and the wildcard README, the m0 README, hop-removal, selection's identity rule, the stats-split Related link) land in #4942. CI passed on the previous head, and this push only moves two links. (Written by Claude Opus 5.5) |
Automated follow-up review: quest: resolve the 2026-10-06 auditReviewed head: What changed: Earlier findings:
No new issues. CI (Check, Test) is still pending at the time of this review. Verdict: MERGE. This is an automated review, not the maintainer's decision |
Resolves cluster-routing/README.md against #4946 (main's audit edits win, the epoch wording stays). Also applies the audit decisions this PR owns: - Delete quest/m0/wildcard/README.md and transcode-group-start.md: claim workers mint their own epoch, so they are never spliced, and #4403 landed the rest of the line. Remove every link to either. - m0 README: Wildcard landed in #4403. - hop-removal: drop the NO_CAPACITY bullet (#4403 removed it), and `moq` mints the epoch when --epoch is omitted. - cluster-routing/selection: identity is path plus epoch. - stats-split: relate the QoS line (#4133 rebases onto its tracks). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
The 2026-10-06
/quest-auditfound 54 inconsistencies in the quest tree: finished children still listed onmain, quests blocked on work that already landed, two quests claiming the same change, and plans that contradict each other or the code. The maintainer settled the open ones; this PR records those decisions and applies the mechanical fixes soquest readyonmainstops offering finished or mis-ordered work.Approach
Every finding was re-checked against
origin/main(edd671fff) before editing.Line syncs with their branches (the same files the line branches delete, so those deletions merge cleanly)
quest/m1/authnow matchesquest/m1/auth/README(feat(net): in-band AUTH (questline) #4039). The seven children that already merged into the line are deleted (lite, moq-transport, interop, unauthorized, auth-ok-preflight, error-codes, narrowing).peer-grant.mdmoves to/quest/m3/p2p/peer-grant.md, and wip-version, not-supported, violations, and js-fetch-watch come over.not-supported.mddrops the message-ceiling half, since request caps (feat(net)!: bound peer-declared lengths and per-session requests #4820) owns the 65,535-byte cap (F5), and now lists/quest/m0/request-caps.mdunder Related.m2/flate.mdtakes the branch's text.codec.mdkeeps main's text; the F33 naming lives on refactor(ffi)!: the bindings mirror Rust's layers #4519's branch until it lands.publish-timestamp.mddrops the JSON Required and links FFI shape as Related, matching the F36 branch push.cpp/README.mdis now[S]and its remaining work is landing feat(cpp): the moq C++ package over moq-ffi, and the OBS plugin on it #4079.m2/cpp-vcpkg.mdnow requires the cpp README.Deletions
quest/m3/route-trust.md(F11): session scoping already covers the security goal, and promotion has no consumer.quest/m3/processor/(F16/F48): the maintainer did not want it. Shaped advertisements inannounce-shapes.mdare authorized against the publish claim, as Wildcard does today, and there is no advertise scope.quest/m1/archive/track-timeline.md(F8): its Rust work landed in quest(archive): Timeline-indexed MoQ archives #4034 and its Required list repeated the archive README's. Its decisions and the two feat(archive)!: per-track timelines #4280 triage items moved into the archive README.flush.mdnow requires js-timelines.quest/m1/quic/uring-close.md(F35): fix(uring): publish a local close only once its CONNECTION_CLOSE is staged #4431 fixed it, and the test passes under the stress setup.Decisions recorded (each with its reason, dated 2026-10-06)
trackis optional and defaults to the ID. The stats quests now key by ID.quest readykeeps the order.--delayreplaces--max-delay, as it did on TS.Input, never fromclock.now(). hop-aligned-import requires shared-clock.quic-qmux.md, and the P2P README's "for free" sentence is fixed.tls://.ietf-malformed-close.mdrecords that fix(net): validate IETF group order and allow unknown setup repeats #4927 owns GROUP_ORDER and repeated unknown/GREASE SETUP options.ffi-shape/codec.mdinstead of the m0 jitter line (F25). cli-packaging drops Capture by default (F28). tstd-controls and ts-eac3 requiretstd/delay.md(F50). A newquest/m2/stats-producer-bench.md[S]splits out of bench-coverage, ranks above stats-delta, and stats-delta requires it (F51). token-in-band and auth/bindings require FFI shape (F6).Stale facts and ordering
[M]. selection and dvr list Wildcard under Related instead of Required.Priority::cmptiebreak, and the ladder only consumes it.*_endedquestion.resume.rs.Clock::now.encode-presetsonmain.archive/flush.mdno longer cites the removed moq-netTimer, andcache-max-age.mdalready recorded the successor-clock decision (re-read likereach), so it is unchanged.quest/m0/wildcard/README.md: only lines 131-133 changed, to drop the deleted processor link. feat(net)!: carry publisher epochs on routes #4942's hunks there are elsewhere.Decisions (maintainer, 2026-10-06 /quest-audit then /quest-plan)
Carried over from the quest-merge run:
reach/ latch first arrivalRound 1:
video.Producer/audio.Producerbroadcast-bound,video.Encoder/audio.Encodercodec-only, both in codec.md) / Producers only in codec.md--delay/ exclude flv/mkv from feat!: name subscriber staleness max_delay; publisher retention keeps max_age #4917trackfield" -> key is an ID unique across video and audio, cross-kind duplicates refused, stats key by ID,trackoptional and defaults to the ID / ID plus requiredtrackSkipped findings
tstd/delay.md, fix(hang)!: CMAF decoders time samples from the frame timestamp #4826 and feat(net)!: carry untimed tracks faithfully #4822 for cmaf-frame-timestamp) or to GitHub actions, not to the tree onmain.broadcast-epoch/hop-removal.md, and the wildcard README size are left to feat(net)!: carry publisher epochs on routes #4942, which rewrites them.Impact
Quests only. Public API: none. Wire: none.
Merge notes:
quest/m1/cpp/README.mdand a one-line conflict inm2/cpp-vcpkg.md. Take feat(cpp): the moq C++ package over moq-ffi, and the OBS plugin on it #4079's side in both.ffi-shape/README.mdon the Codecs Required bullet (take refactor(ffi)!: the bindings mirror Rust's layers #4519's side). quest(qos): Broadcast health and congestion #4133 has one hunk inqos/lag-dashboard.mdand three inqos/publisher-timeliness.md, which it resolves during its stats-split rebase.publish-timestamp.mdshows as ready, but it should start only after refactor(ffi)!: the bindings mirror Rust's layers #4519 lands. Its Related entry says so, using the same text as the branch.Follow-ups
quest/m1/catalog-track-alias.mdkeeps its file name, becausequest/m0/broadcast-epoch/origin.md(rewritten by feat(net)!: carry publisher epochs on routes #4942) links it. Rename it tocatalog-track-id.mdonce feat(net)!: carry publisher epochs on routes #4942 lands.obs-moq-video/adapter.mdandaudio-publish.mdstill plan to add codec-only Encoders themselves. Point them atffi-shape/codec.mdonce refactor(ffi)!: the bindings mirror Rust's layers #4519 lands, since that branch's codec.md ownsvideo.Encoderandaudio.Encoder(F33).(Written by Claude Opus 5.5)
🤖 Generated with Claude Code