Skip to content

fix: preserve request extensions on x402 retry#4

Open
shuofengzhang wants to merge 1 commit intoqntx:mainfrom
shuofengzhang:fix/preserve-request-extensions
Open

fix: preserve request extensions on x402 retry#4
shuofengzhang wants to merge 1 commit intoqntx:mainfrom
shuofengzhang:fix/preserve-request-extensions

Conversation

@shuofengzhang
Copy link

What changed

  • Preserve httpx.Request.extensions when cloning a request for x402 retry headers in _clone_request_with_headers.
  • Add transport unit tests to verify:
    • retry header merging/overrides behave correctly
    • request extensions are preserved in the cloned retry request

Why

  • httpx stores per-request metadata (for example timeout settings) in Request.extensions.
  • The retry clone previously rebuilt a request without copying extensions, which could drop request-level metadata on the paid retry.
  • Preserving extensions keeps retry behavior consistent with the original request while remaining fully backward-compatible.

Testing

  • scripts/clone_and_test.sh qntx/x402-openai-python (pass)
  • source .venv/bin/activate && pytest -q (25 passed)

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