Skip to content

feat: route outbound provider requests through an HTTP proxy - #644

Open
Ueslei Lima (uesleilima) wants to merge 1 commit into
langchain-ai:mainfrom
uesleilima:feat/http-proxy
Open

feat: route outbound provider requests through an HTTP proxy#644
Ueslei Lima (uesleilima) wants to merge 1 commit into
langchain-ai:mainfrom
uesleilima:feat/http-proxy

Conversation

@uesleilima

Copy link
Copy Markdown

What and why

Node's fetch does not honor HTTPS_PROXY on its own, which breaks outbound provider requests behind a corporate HTTP proxy. This PR installs an undici ProxyAgent as the global dispatcher when a proxy URL is configured.

Resolution order: OPENWIKI_PROXY, then the standard HTTPS_PROXY / HTTP_PROXY / ALL_PROXY variables (both cases). A host without a scheme is treated as http://. The proxy URL is persisted in MANAGED_ENV_KEYS and treated as a non-secret diagnostic (URL preview, not a credential).

How tested

  • Unit tests for resolveProxyUrl (preference order, blank fallback, missing scheme).
  • Env persistence / diagnostics tests that OPENWIKI_PROXY is managed and previewed as a URL.
  • Debug formatter treats OPENWIKI_PROXY as a URL-typed key.
  • Locally: pnpm run format, pnpm run lint, pnpm test (174 files passed, 2336 tests passed).

Changeset

Minor changeset in .changeset/http-proxy-support.md — user-facing feature.

Process-lifetime note

Once installed, the undici dispatcher is not swapped if the proxy env changes in the same process (globalProxyInstalled stays true). Typical CLI usage is one process per invocation, so this is a documented lifecycle constraint rather than a blocker (same observation as rajpratham1's review on #55).

Historical context

This was previously bundled with an Anthropic-on-Azure-Foundry provider in #55. This PR isolates HTTP proxy support as a single concern per CONTRIBUTING.md. It does not add a Foundry provider or custom Anthropic headers.

Co-authored-by: Cursor <cursoragent@cursor.com>
@changeset-bot

changeset-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 82e1c97

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
openwiki Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

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