feat(datagram): expose safe payload bounds - #4
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 49 minutes Limit details: You’ve used the included review currently available. Your 92 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (16)
Comment |
|
Independent exact-head review artifact (2026-08-20): PASS, findings=[] for 385c290 versus e156888. Reviewed dynamic DATAGRAM bounds, receive-queue behavior, hostile input, races, downgrade/0-RTT interactions and resource exhaustion. Executed focused tests, 0-RTT DATAGRAM/rejection integration, go test -race ./..., go vet ./..., git diff --check. Post-merge readback at 8d4d73a: go test -race -count=1 ./... PASS. Squash merge tree matches the reviewed exact head. |
Contract
Expose the current safe QUIC DATAGRAM payload bound without widening the
Connectioninterface, reset the MTU-derived bound on path migration, and enforce explicit inbound admission before retaining packet-backed data.The implementation keeps these invariants:
Addwakes and revalidates under the queue lock;ConnectionState.MaxDatagramPayloadSizeis dynamic and callers must reread it.Evidence for
385c2903d0b8327ec9c01ba6e7d75a8fbb904b6bgo test -race ./...: PASS;go vet ./...: PASS;go build ./...: PASS;git diff --check: PASS;go test ./...was executed once, but the local wrapper failed to retain its exit status. It is intentionally not represented as a green local claim; exact-head remote CI remains mandatory.Independent review
CodeRabbit's previous result was only a rate-limit notice, not substantive review.
Downstream boundary
This fork-specific capability is an adapter-only bridge, not an Ametyst domain or enterprise API. Downstream must expose a carrier-neutral capability, treat the bound as a changing hint, and keep
SendDatagramas the authoritative admission check. The bridge should be removed when upstream provides equivalent dynamic bounds and safe downgrade behavior.