test(security): reproduce response-driven cookie persistence - #193
Draft
seonghobae wants to merge 8 commits into
Draft
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
seonghobae
changed the base branch from
main
to
fix/public-client-default-headers-current-main
August 12, 2026 08:43
11 tasks
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.
Purpose
Close issue #134's response-driven cookie-state boundary without weakening explicit caller-owned cookie support. This PR remains intentionally stacked on #195 because the pinned public client must first stop self-denying HTTPX's ambient
Connectiondefault.Exact current stack identity
fix/public-client-default-headers-current-main);5c4c06064f896338afbe5942f3a70f9eafe449f7;c2d3a004aaac06c570f32b6bca2d4ecb58452285;fix/public-client-default-headers-current-main;5c4c06064f896338afbe5942f3a70f9eafe449f7;Historical checks, reviews, comments, and generated merge revisions from earlier #193 or #195 heads are non-transferable.
Test-first security result
The regression proves that response-provided
Set-Cookieremains visible to the caller without becoming ambient state on later requests from the same sync or async public client. The implemented narrow boundary uses a caller-ownedCookieJarpolicy that rejects response-driven insertion while continuing to permit explicit caller cookie state. Exact(hostname, port)authorization and existing method, framing, redirect, proxy, Unix-socket, TLS, DNS, request/response resource and cleanup boundaries remain unchanged.The current stack also preserves #195's removal of only HTTPX's ambient
Connectiondefault. Caller-supplied hop-by-hop fields remain subject to the existing fail-closed transport validator.Exact-head evidence
On unchanged
c2d3a004aaac06c570f32b6bca2d4ecb58452285:31590185081: completed success;Because this is a non-default-base stacked Draft, this evidence is not merge authority and does not transfer after predecessor integration, retargeting, or any head movement.
Remaining acceptance
mainunder its own exact-head/security/supply-chain/review gates.main, retarget/reconstruct test(security): reproduce response-driven cookie persistence #193 non-destructively if needed, and regenerate every applicable CI/security/supply-chain/review gate on the resulting exact head.Progresses #134; depends on #195.