Vendor Quiver: fix WebTransport session/stream lifecycle, bound buffers, and make the vendor tree reproducible - #63
Open
anderson-oki wants to merge 6 commits into
Open
anderson-oki wants to merge 6 commits into
anderson-oki wants to merge 6 commits into
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 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 |
This branch has not been deployed
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.
Delivers all six work packages from NEC-29 on one branch, one commit per package.
What changed
Vendor/Quiveris now generated from the pinned upstream commit (d3b0cdc5) plus a committed patch series inVendor/Quiver/Patches/.scripts/vendor-quiver.shrebuilds it and fails on any unexpected diff; CI runs it and fails when the tree is edited without a patch.VENDORING.mdnow documents all nine deltas (including the two undocumented security fixes fromff4fc44c) and states the correct rationale: the only hard blocker is the missingQUICCryptolibrary product, notpackageaccess. The corruptedSystemTrustStorediagnostic ("ca-certificates public") is restored, and the blinds/\bpackage /public /gis replaced by patch0002.transitionToClosedunregisters the session and resets its child streams; streams are removed on FIN/reset via a one-shot terminal notification; a per-session stream bound (default 64, configurable throughWebTransportOptions/WebTransportConfiguration) rejects churn;handleIncomingBidiStreamno longer routes a0x00(DATA) first varint into session 0.droppedEventscounter; capsule payload length is capped at the 16 MB frame bound; CRYPTO reassembly is capped by segment count; the app's request handler drains the body it never reads (app-side, no vendor delta).isRetryPacketindexes slices from their ownstartIndex; dead duplicateProtocolLimitsconstants removed andConnectionID.maxLengthunified; empty ALPN fails closed; atruncatedLength >= 0guard precedesprefix.scripts/vendor-quiver-tests.shruns upstream's own suite against our patched sources; CI invokes it on anyVendor/Quiverchange.Verification
swift build --scratch-path .build/shared --target OpenNOW— Build complete.swift test --scratch-path .build/shared --filter RemoteCoOp— 283 tests, 30 suites, passed.scripts/vendor-quiver-tests.sh— upstream suite, exit 0 (222 tests; the machine-dependentQUICBenchmarksthroughput suites are skipped).scripts/vendor-quiver.sh— "Vendor/Quiver matches the pinned commit plus the committed patch series."App GFN Model OPN View ViewModel Tests— 0 violations; no baseline entries added;Vendor/stays outside the lint path.Open items
spikes/browseregressneeds a real Chrome andspikes/webtransportneeds agency loopback; neither is available in this environment, and both directories are gitignored. They must be re-run before this goes further than review.Tests/RemoteCoOptoday.0x00/0x04first varint (WP1 item 5) means a peer that both omits the0x41signal and uses session ID 0 or 4 no longer interoperates. Chrome and our own client always send the signal; this matches the issue's stated conformance requirement but is a real edge of the "optional on receive" property.vendorjob could not be pushed with the workspace HTTPS token (noworkflowscope); the branch was pushed via SSH.