Skip to content

quest(m2): make the ack hook concrete in the QUIC drivers - #6330

Merged
kixelated merged 4 commits into
moq-dev:mainfrom
zshenker:quest/m2-ack-hook-driver
Oct 23, 2026
Merged

kixelated merged 4 commits into
moq-dev:mainfrom
zshenker:quest/m2-ack-hook-driver

Conversation

@zshenker

Copy link
Copy Markdown
Contributor

Problem

quic-ack-hook left the native backends vague: neither QUIC driver has a poll method for acknowledgment, and both drop StreamEvent::Acked. The quest also assumed a ClosedStream from a freed stream means "fully acknowledged", but a reset stream is freed too. And moq-quic's acked panics on an offset past the data written, which inside the driver would poison the connection lock.

Consumer: Starvation at frame granularity, through moq-net's poll_acked.

Approach

Each driver gets SendStream::poll_acked(&mut self, cx, offset) -> Poll<Result<(), AckedError>> plus an async wrapper, in the shape from #6329's driver-poll quest. Delivery after a stream is freed is answered from the handle's own end state (finished, or the reset #6196 records), and an offset past the data written returns an error. Both are explicit acceptance criteria. Also notes that quic::web adds its header length to the offset.

Impact

None: quest files only.

Alternatives

A public offset() on the driver stream: not needed, since the moq-net writer counts its own bytes.

Follow-ups

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

zshenker and others added 2 commits October 21, 2026 15:31
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@zshenker
zshenker marked this pull request as ready for review October 22, 2026 18:54
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 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 ⚠️ Failed 2026-10-22T18:54:18.644915Z
We couldn’t complete this review. Comment @codex review to try again.
77ead15 Draft marked ready
ℹ️ 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.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Warning

Review limit reached

You'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 29 minutes.

Check out review usage here.

View limit details

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b9c84e78-8a07-47e7-be61-6142a52facc0
📥 Commits

Reviewing files that changed from the base of the PR and between 77ead15 and 0b3cd1e.

📒 Files selected for processing: 1
  • quest/m2/quic-ack-hook.md

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 135d681e-35be-4c8a-80c6-6bfb2258c44a
📥 Commits

Reviewing files that changed from the base of the PR and between d44813c and 77ead15.

📒 Files selected for processing: 1
  • quest/m2/quic-ack-hook.md

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 1 remain after this review.

Walkthrough

The quest document now specifies poll_acked methods for both QUIC drivers and an async wrapper. It defines acknowledgment waiter behavior and errors for reset or stopped streams, connection loss, and offsets beyond written data. It specifies that the adapters expose the hook, while browser and qmux transports remain unsupported. Acceptance criteria cover finished streams, resets, out-of-range offsets, STOP_SENDING, and session close. The Required section lists the poll-waits quest as a prerequisite.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 77ead

The acknowledgment-hook plan covers the required completion, error, and multi-waiter cases. No actionable merge-blocking risk remains; the documentation change is ready to merge after normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Description check Passed The description clearly explains the concrete QUIC acknowledgment hook changes, acceptance criteria, affected drivers, and quest-only scope.
Title check Passed The title is concise and accurately identifies the main change: making the acknowledgment hook concrete in the QUIC drivers.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
✨ Simplify code
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@kixelated
kixelated added this pull request to the merge queue Oct 22, 2026
Merged via the queue into moq-dev:main with commit 3f49c99 Oct 23, 2026
2 checks passed
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.

2 participants