Repository navigation
quest: plan follow-ups from the m0/m1 spawn run - #6186
Conversation
Twenty-five new quests (sixteen m1, nine m2) and Plan edits to pmt-lifecycle, resume-datagrams, and subscribe-ranges/dynamic, as settled in the 2026-10-21 /quest-plan interview. 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 23 minutes. View limit details
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 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a554d2c1f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Decided 2026-10-21 with the maintainer: one quest for the four, since each | ||
| is small. Reproduce each before fixing, and follow the epic's rules: no | ||
| retries, sleeps, or raised timeouts. |
There was a problem hiding this comment.
Split the unrelated flake fixes
Split these four fixes into separate children instead of implementing them as one quest. They touch unrelated OBS C++, js/net memory accounting, the audio-quality harness, and interop dependency setup, with no shared fixture; this also contradicts the epic's existing rule in quest/m1/test-flakes-2/README.md that each flake lands independently unless it shares a fixture. Bundling them makes any one investigation or failure block the other fixes and produces an unfocused PR.
AGENTS.md reference: AGENTS.md:L22-L24
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Declining: grouping the four was the maintainer's call in the 2026-10-21 /quest-plan interview (R3 Flakes, recorded in the PR body), and the epic README's 2026-10-21 note records it as an exception to the one-child-per-flake rule. Each fix is XS, so one investigation stalling can be split off then without blocking the rest.
(Written by Claude Opus 5.5)
| Three small CI changes land together: | ||
|
|
||
| - The merge queue's nextest runs with `NEXTEST_TEST_THREADS=24`. |
There was a problem hiding this comment.
Separate the independent CI housekeeping work
Split the nextest concurrency tuning, Pages artifact cleanup, and actionlint configuration into independent quests. They have separate validation and readiness conditions, and the actionlint item is explicitly blocked on an external release; the later plan to “land the rest and leave this bullet” would leave this quest only partially completed rather than keeping each implementation PR focused and independently landable.
AGENTS.md reference: AGENTS.md:L22-L24
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Declining: the CI grouping was the maintainer's call in the 2026-10-21 /quest-plan interview (R3 CI, "4 quests in m1"). The three changes are each a few lines, and the Plan already handles the external actionlint release: if it has not reached the dev shell, the rest lands and the quest remains as that single waiting bullet, which is the outside-party shape the quest guide asks for.
(Written by Claude Opus 5.5)
# Conflicts: # quest/m1/README.md
|
@codex review (Written by Claude Opus 5.5) |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
# Conflicts: # quest/m1/test-flakes-2/README.md
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6558d0462a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - Port #6144's `a_stalled_goaway_write_is_still_closed_at_the_deadline` to | ||
| moq-net and js/net, on a mocked clock, for lite and IETF. |
There was a problem hiding this comment.
Remove the nonexistent JS GOAWAY write case
At c51941f, js/net has no production outbound GOAWAY path to which this regression can be ported: Lite.Connection.close() in js/net/src/lite/connection.ts:208-214 and IETF.Connection.close() in js/net/src/ietf/connection.ts:272-278 start a one-second withTimeout before draining and then abort, while production GOAWAY handling is receive-only. JS callers therefore cannot hang on the stalled GOAWAY write described here, and implementing this bullet would silently expand the quest into adding outbound GOAWAY behavior. Remove js/net from this quest, or explicitly scope that new behavior and update the stated API/wire impact.
AGENTS.md reference: AGENTS.md:L62-L62
Useful? React with 👍 / 👎.
Plans the follow-ups raised by the m0/m1 quest-spawn run's PRs, as settled with the maintainer in the 2026-10-21
/quest-planinterview. Quest files only: no code, public API, or wire change.New m1 quests
m1/resume-rust-end.md[S] - Rust resume keeps a declared end across copies, dedupes flapping copies, judges retention inside the reader's window, and carries theroute_failedalignment until recovery-verdicts landsm1/ts-reliability/release-clock-false-alarms.md[S] - no false jitter leap at a 500 ms TS export delay and no falseout_of_tolerancedriftm1/auth/bindings-polish.md[S] - OBS reconnects with the presented token, the moq-ffi auth enum collapses, Swift grants asAsyncSequencem1/goaway-deadline.md[S] - the GOAWAY drain deadline counts from the trigger in moq-net (lite, IETF) and js/netm1/net-internals.md[M] - no per-group clones in the lite publisher, no transport type parameter in internals, theLocalcheck measured on io_uringm1/js-parked-expiry.md[S] - a js/net pending stream open ends when its group expiresm1/js-start-parity.md[XS] - the JS lite publisher answers SUBSCRIBE_START like Rustm1/test-flakes-2/three-flakes.md[XS] - OBS stop drain, js/net RSS test, audio harness RTT sample, interop's bun deps in a fresh worktreem1/interop-finish.md[S] - an interop "finish" case across implementationsm1/binding-check-cost.md[M] -moq.cppcompiles once per standard and Gradle stays warmm1/audio-devices-arm.md[S] -rs audio-devicespasses on the hosted ARM runner (check moq-dev/moq#6175 first)m1/ci-housekeeping.md[XS] - queue nextest at 24 threads, stalegithub-pagesartifacts cleared, the actionlint ignore droppedm1/smoke-dependabot.md[S] - the smoke flake bumps with its Playwright pinm1/ietf-extension/serve-timed.md[S] - moq-transport timestamps cross a lite-07 mesh toietfextension peersm1/js-reload-userinfo.md[XS] - JS redirect keys strip URL userinfo like Rustm1/quic-silent-peer-drain.md[S] - moq-quic skips the close drain for a connection that never heard its peer; decides whether the idle timeout bounds the handshakeNew m2 quests
m2/go-first-dial-failure.md[XS] - Go reports why a first dial fails; kt/dartclient.failure()wordingm2/ietf-request-order.md[S] - d14/15 request ID order,control.sending()races, SUBSCRIBE_NAMESPACE self-close (reproduce first)m2/js-request-stream.md[S] -RequestStreamownsDeadlineandcancelSubscribe; TRACK trailing bytes close the session like Rustm2/ietf-lazy-discovery.md[L] - IETF lazy discovery, starting with UNSUBSCRIBE_NAMESPACE on d14/15m2/keyed-prefix-polling.md[S] - keySubscriberDriverprefix polling, gated on a bench showing the slopem2/lite-legacy-gap.md[S] - a resumed copy's gap judgement on lite-05/06m2/bench-transport-sweep.md[M] - session benches sweep transport x versionm2/from-str-trait.md[S] -impl FromStrin hang, moq-auth, moq-msf (breaking)m2/drop-dead-items.md[S] - remove the dead-code audit's uncalled public itemsEdited quests
m1/ts-reliability/pmt-lifecycle.md- adds the open case of a PAT naming a program whose PMT never arrivesm1/resume-datagrams.md- also clamps the front's new-copy subscription to the readers' floorm1/subscribe-ranges/dynamic.md- adds a fill bench swept over subscribers x missesm1/README.md,m2/README.md, and thets-reliability,auth,test-flakes-2, andietf-extensionepic READMEs list the new children;test-flakes-2notes the 2026-10-21 additionNotes on the spec:
route_failed/ROUTE_FAILURESalignment from moq-dev/moq#6143 sits inresume-rust-end.md's Plan, to fold into recovery-verdicts if that lands first.m1/drain-cleanup.mdwas deleted by moq-dev/moq#6144, sogoaway-deadline.mdcites the PR instead of linking the quest.Dropped in the interview
session_delivery_*bench IDs: loses bench history for a cosmetic gainm1/egress-held-state.mdandm1/track-priority-scope.mdInterview paper trail
Checks
quest check: 448 documents okjust check: pass🤖 Generated with Claude Code
(Written by Claude Opus 5.5)