Repository navigation
fix(web): align combined H3 cover Alt-Svc with bound listener - #41
Merged
Merged
Conversation
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementation is narrowly scoped and comprehensively validates public, authenticated, and standalone behavior.
Review effort: Balanced
Findings: None
What changed in this PR
Aligns combined H1/H2/H3 cover responses to advertise the bound HTTP/3 listener consistently.
Changes:
- Applies the bound-port
Alt-Svcwrapper to combined-listener H3 cover traffic. - Adds comprehensive protocol, response-mode, authentication, and standalone-H3 regression tests.
- Documents the advertisement policy.
| File | Description |
|---|---|
internal/tunnel/web_server.go |
Shares the bound Alt-Svc cover wrapper with H2 and H3. |
internal/tunnel/web_server_test.go |
Updates the combined-listener H3 expectation. |
internal/tunnel/web_h3_alt_svc_consistency_test.go |
Adds real-wire consistency and isolation coverage. |
docs/WEB_COVER.md |
Documents combined and standalone H3 behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation for head 99ffa5c
Final-head gates verified on exact head99ffa5: CI37052177557 completed/success, latest attempt2 view has11 successful jobs. Only the failed OCI job was requested again once; GitHub's latest view assigns new IDs/run_attempt2 to all jobs, while the ten other jobs retain their original attempt1 execution timestamps. Original attempt1 OCI download failure is retained and not relabelled as success. Rerun OCI110989564061 completed both linux/amd64 and linux/arm64 compilation, manifest/index and tarball export; actual docker integration passed marker is present. CodeQL37052177521 and Linux netem37052177546 completed/success attempt1; actual netem integration passed marker is present. Both integration logs check out PR merge af59f69 of exact head99ffa5 into base01b705. No inline review threads or findings remain. PR41 merged with expected-head guard as main cb74137. Local main fast-forward and tree/source-manifest equality verified; post-main exact4-name race count3 passed (12 tops/156 RUN/129 leaves, no skips). Main push CI37053090883 (11 jobs), CodeQL37053091049 and netem37053091109 all completed/success, attempt1, on exact cb74137. Actual main OCI110991021275 and netem110991022657 logs independently confirm checkout cb74137, docker/netem completion markers and both-platform OCI index/tarball DONE. No main rerun or new release/tag.
Limits
No release/tag, dependency update, remote deployment, actual-browser/corpus campaign or classifier-quality claim. Equal advertisement is a functional/routing consistency result, not browser indistinguishability. Arbitrary custom H3 cover extension interfaces and late header mutations beyond the standard ResponseWriter contract are not promised. WebSocket upgrade/lifecycle changes are intentionally separate; this patch does not enable them.