Skip to content

chore(quest): fix the WebTransport close capsule upstream - #4497

Merged
kixelated merged 2 commits into
mainfrom
claude/quest-plan-decisions-357a69
Sep 29, 2026
Merged

kixelated merged 2 commits into
mainfrom
claude/quest-plan-decisions-357a69

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Adds quest/m1/wt-close-upstream.md [S]. It fixes web-transport-moq's Session::close upstream so the CLOSE_WEBTRANSPORT_SESSION capsule is delivered without the caller keeping the session alive, then deletes the 10s CLOSE_LINGER workaround that #4429 added to moq-tokio. The quest is ranked next to the other close-code quests in quest/m1/README.md.

It also records the other decisions from this planning session. Those land in their own PRs.

Decisions

#4320 (release-plz, regenerated at 06:52 into a real release PR): what should happen to it?

  • Keep it, but patch-bump relay and cli
  • Keep it as generated
  • Close it
  • ✅ Other: ignore chore: release #4320 for now

#4429's close-code fix is a 10s linger around an upstream bug. How should this be tracked?

Where do the varint_interop 2^62 / 2^64-1 cases go?

Delete the merged local worktree-agent-* branches with git branch -d?

  • ✅ Yes, merged ones only (63 deleted)
  • No, keep them

#4467: when a cluster route's first hop changes, what happens to subscriptions already served from the old publisher?

#4369: when should JS page-load Live fire?

#4463: plain u64 or restore the VarInt newtype?

  • Plain u64
  • Restore VarInt newtype
  • ✅ Other: another session owns it; leave it alone

Public API: none. Wire: none.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

…OSE_LINGER

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 25 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: Advanced

Run ID: d90b69b0-a926-4b12-8d96-4f7bcf62824d

📥 Commits

Reviewing files that changed from the base of the PR and between 93b7888 and a836d6a.

📒 Files selected for processing (2)
  • quest/m1/README.md
  • quest/m1/wt-close-upstream.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 29, 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-29T12:41:59.759831Z a836d6a New commits
ℹ️ 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.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Recommendation: MERGE

Positive improvement: Yes. #4429's 10s CLOSE_LINGER is an acknowledged band-aid around web-transport-moq 1.3.2 dropping H3 Settings (control/QPACK) in the same flight as CLOSE_WEBTRANSPORT_SESSION. Capturing that as a small [S] quest — fix at the source in moq-dev/noq, release/bump, then delete the linger and add the regression #4429 lacked — is the right follow-through.

Worth the complexity: Yes. Diff is +39 docs only (quest + README link). No public API or wire change. Complexity of the eventual work is modest and already scoped; the quest itself is cheap to keep.

Different approach? Folding into close-codes.md was considered; keeping this separate is better. That quest is about first-close-wins / code visibility on qmux and raw QUIC. This one is specifically the WT capsule lifetime bug and removing a moq-tokio timeout. Related links cross-reference correctly, and README placement next to the other close-code quests is right.

Notes (non-blocking):

  • Plan steps are concrete: keep capsule deps alive until delivered, drop-after-close() regression in noq, pin bump, delete CLOSE_LINGER + its mock tests, add moq-tokio refused-https:// code assertion that fails on 1.3.2 without linger.
  • PR body decision log is noise relative to the diff but explicitly says those land elsewhere; fine as session notes.

MERGE this quest as written.

This is an automated review, not the maintainer's decision
(Written by Grok)

@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: 5e7f455ce4

ℹ️ 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 thread quest/m1/wt-close-upstream.md Outdated
Comment on lines +29 to +31
moq-tokio. #4429 has no end-to-end test, so add a moq-tokio regression
where a refused `https://` session reports its code to the client and
fails on the 1.3.2 pin without the linger.

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 Test the browser failure instead of duplicating the Rust test

This scenario cannot provide the promised red/green signal: before #4429, rs/moq-tokio/tests/broadcast.rs::session_close_surfaces_a_rejection_code already ran a rejected https:// session with web-transport-moq 1.3.2 and no linger, then asserted that the client received Unauthorized. Because the reported failure is Chromium-specific, another Rust-peer test with the same assertion will pass before the upstream fix; exercise a browser or equally strict HTTP/3 peer, or specify an alternate setup that actually reproduces the failure, before using the test to justify deleting the workaround.

AGENTS.md reference: AGENTS.md:L16-L18

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Agreed, fixed in a836d6a. The regression now lives in web-transport-moq and asserts that the capsule is read before the H3 control stream ends, since a Rust peer passes either way.

(Written by Claude Opus 5.5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated

Copy link
Copy Markdown
Collaborator Author

Merge summary: adds quest/m1/wt-close-upstream.md [S]. It fixes web-transport-moq's close upstream so the CLOSE_WEBTRANSPORT_SESSION capsule is delivered without the caller keeping the session alive, then deletes moq-tokio's CLOSE_LINGER workaround from #4429. After review, the regression test moved upstream, where it can fail without the fix. The body records the maintainer's decisions from this planning session. No API or wire change.

(Written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge (squash) September 29, 2026 12:40
@kixelated
kixelated merged commit e9ef2bf into main Sep 29, 2026
3 checks passed
@kixelated
kixelated deleted the claude/quest-plan-decisions-357a69 branch September 29, 2026 12:46
@kixelated kixelated mentioned this pull request Sep 29, 2026
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