Skip to content

docs(quest): record four findings from the m1 quest wave - #3424

Merged
kixelated merged 1 commit into
mainfrom
claude/quests-followup-2026-09-04
Sep 5, 2026
Merged

docs(quest): record four findings from the m1 quest wave#3424
kixelated merged 1 commit into
mainfrom
claude/quests-followup-2026-09-04

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Four findings surfaced by the m1 quest wave (#3408, #3410, #3412, #3414, #3415, #3418, #3419, #3420, #3422). Each was found by a PR that correctly declined to fix it in scope, and none had an issue or quest tracking it.

m0

Resume info [M]resume::Consumer::poll_info resolves track info from segment zero, while every data read routes to the newest segment. A broadcast replaced on a live path therefore serves the predecessor's priority, maxAge, and timescale. timescale is the damaging one: the reader converts frame timestamps with it, so a mismatched generation silently rescales rather than failing.

Found while fixing the js/net half (#3422). Against a real relay, a publisher wrote 1234 ticks on a successor's MICRO grid and the subscriber got 1000us — the JS fix alone was not enough, because the relay's own stale metadata did the rescaling. Ranked with the other moq-net defect. Not covered by #2991 (sequence continuity only), and #2610's epoch remedy was removed from the draft by #3225.

uring all-features [S]cargo clippy -p moq-uring --all-features --all-targets does not compile: quinn_proto is ambiguous once noq and quinn are both on, and quinn/connection.rs's test module refers to it unqualified. --lib is clean, so only --all-targets trips it. Reproduced on a stashed tree at the merge base while working #3420, so it predates that work and fails the nightly just rs features gate today.

Go smoke client [M]just test smoke-full runs 21 cells and Go is in neither axis. moq-ffi changes are required to run smoke-full by Cross-Package Sync, so #3412 ran it, passed 21/21, and thereby proved nothing about the Go code it changed.

Both close the list, per m0's own Plan ("hardening, tooling, and test debt close the list").

m1

Native Go context [M]#3412's MoqCancel token exists only because uniffi-bindgen-go renders a Rust async fn as a blocking Go call with no cancellation handle. A fork adding native context.Context support exists on branch codex/context-cancel-3188; landing it retires the token from the moq-ffi surface.

Filed with a plain-text ## Required bullet rather than as ready work, per the quest model's rule for an external release that unblocks repository work. Keeping the token is a supported outcome — it already ships, costs nothing outside Go, and a pinned generator fork is an obligation on every UniFFI bump. The quest says so explicitly so nobody starts it before that call is made.

Verification

cargo run --package quest -- check: 238 documents ok — links resolve, the index matches the file tree, headings stay in the allowed set, and Required stays acyclic.

Markdown only.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DLtoPv9B3779kGxLFTUGHR

(written by claude-opus-5[1m])

Each came out of a quest PR that could not fix it in scope, and none had a
tracker:

- resume-info-newest: `resume::Consumer::poll_info` resolves track info from
  segment zero while data reads route to the newest segment, so a replaced
  broadcast serves the predecessor's timescale. Isolated while fixing the
  js/net half, which alone was not enough against a real relay.
- smoke-go-client: the interop matrix has no Go client, so a passing
  `smoke-full` says nothing about the Go wrapper even though moq-ffi changes
  are required to run it.
- uring-all-features-build: `moq-uring` does not compile with
  `--all-features --all-targets`; `quinn_proto` is ambiguous once `noq` and
  `quinn` are both on, so the nightly features gate fails on it.
- go-native-context: the cancellation token added to moq-ffi exists only
  because uniffi-bindgen-go emits no cancellation handle. A fork that fixes
  that upstream is held behind a plain-text Required bullet, since publishing
  and pinning it is a decision rather than work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DLtoPv9B3779kGxLFTUGHR
@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 441f94ea-f64e-4690-bd1e-6984e0fffabd

📥 Commits

Reviewing files that changed from the base of the PR and between 5a5ba2a and 445ae05.

📒 Files selected for processing (6)
  • quest/m0/README.md
  • quest/m0/resume-info-newest.md
  • quest/m0/smoke-go-client.md
  • quest/m0/uring-all-features-build.md
  • quest/m1/README.md
  • quest/m1/go-native-context.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 5, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-05T01:58:16.752773Z 445ae05 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 445ae057e1

ℹ️ 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".

Comment on lines +16 to +20
`resume::Consumer::poll_info` (`rs/moq-net/src/model/resume.rs`) resolves info
from **segment zero**, while every data read routes to the **newest** segment.
When a broadcast is replaced on a path, those are different generations, so a
subscriber can be handed the predecessor's metadata alongside the successor's
frames.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Account for metadata across every retained segment

resume::Subscriber::poll_recv_group iterates every retained SegmentSub, not only the newest one, because the segments partition the sequence space across a takeover. Resolving poll_info from the successor would therefore make predecessor frames use the successor's timescale, while existing subscribers would retain the predecessor's already-sent TRACK_INFO for successor frames. Define and enforce a stable-info invariant across splices, or introduce a real generation boundary, rather than basing the fix on newest-only reads.

AGENTS.md reference: AGENTS.md:L148-L149

Useful? React with 👍 / 👎.

Comment on lines +29 to +31
## Required

- The `context.Context` support in `kixelated/uniffi-bindgen-go` is published and pinned in `flake.nix`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Create a separate gate quest for the generator pin

This prerequisite combines publishing the fork with changing flake.nix, but no ready quest owns that work. The quest rules require a release or pin bump that unblocks repository work to have its own gate quest, with the dependent quest requiring that link. As written, this quest cannot start until the repository pin has already changed, while no quest is available to claim and perform that change.

AGENTS.md reference: quest/AGENTS.md:L95-L99

Useful? React with 👍 / 👎.

@kixelated
kixelated merged commit e9495a0 into main Sep 5, 2026
2 checks passed
@kixelated
kixelated deleted the claude/quests-followup-2026-09-04 branch September 5, 2026 04:18
steelhead99x added a commit to steelhead99x/moq that referenced this pull request Sep 5, 2026
* docs(quest): settle scope narrowing in place, and mark pre-media sidecar placement (moq-dev#3427)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(moq-video): pick the V4L2 mode nearest the requested resolution (moq-dev#3355)

Co-authored-by: Luke Curley <kixelated@gmail.com>
Co-authored-by: Codex <codex@openai.com>

* feat(moq-video): add the Android MediaCodec encoder and decoder (moq-dev#3354)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Luke Curley <kixelated@gmail.com>

* docs(quest): import the post-grooming issues as quests (moq-dev#3431)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* docs(quest): apply the Codex findings on the issue import (moq-dev#3432)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(claude): adopt a quest branch at the remote tip that was inspected (moq-dev#3421)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* docs(quest): record four findings from the m1 quest wave (moq-dev#3424)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: reorganize the site around what a reader can do (moq-dev#3426)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* chore: ignore Claude Code's scratch directories (moq-dev#3428)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* chore(moq-audio,moq-cli): assert publish_capture stays Send off macOS (moq-dev#3433)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* docs: correct claims found during merge review (moq-dev#3435)

Co-authored-by: GPT-5 <noreply@openai.com>

* docs(quest): import the open issues that had no quest, and gate the dev merge (moq-dev#3434)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* docs(moq-audio): scope the local-task guidance to macOS (moq-dev#3436)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* docs: track deferred review findings (moq-dev#3438)

Co-authored-by: GPT-5 <noreply@openai.com>

* chore: remove redundant packaging work and plan relay ownership fixes (moq-dev#3440)

Co-authored-by: GPT-6 <noreply@openai.com>

* perf(net): avoid redundant chunk copies and plan performance investigations (moq-dev#3443)

Co-authored-by: GPT-6 <noreply@openai.com>

* fix(transcode): follow a source resolution change with the ladder (moq-dev#3381)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: GPT-5 <noreply@openai.com>

* feat(watch): share one AudioContext across audio decoders

Spatial playback needs every remote in the same Web Audio graph. Injected
contexts are never closed.

Co-Authored-By: Cursor Grok 4.6 <noreply@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Luke Curley <kixelated@gmail.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Franz Heinzmann <frando@unbiskant.org>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: GPT-5 <noreply@openai.com>
Co-authored-by: Cursor Grok 4.6 <noreply@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant