New Qoder代理模式下 NO_PROXY 被硬编码覆盖,企业内网 MCP Server 无法连接(0.2.5)

环境

Qoder 桌面版 0.2.5,Windows 10.0.14393
设置 → 网络代理:手动,http://:9056
内网 MCP Server:http://10.71.17.67:8422/mcp(streamable-http)
现象

内网 MCP Server 连接失败,日志报:

code.txt

[MCP error] Proxy response (403) !== 200 when HTTP Tunneling
code: ‘UND_ERR_ABORTED’
企业代理不允许 CONNECT 到内网地址,所以内网请求必须绕过代理。但目前无任何配置手段能做到。

根因

resources/app.asar 中,代理生效时无条件覆盖了 NO_PROXY,没有与已有值合并:

code.js

for (const s of [“HTTP_PROXY”,“HTTPS_PROXY”,“http_proxy”,“https_proxy”]) process.env[s] = o;
return process.env.NO_PROXY = f$, process.env.no_proxy = f$, …
其中 f$ 是硬编码常量:

code.js

const f$ = “localhost,.localhost,127.0.0.1,127.0.0.0/8,[::1],::1”
worker 进程内实测 NO_PROXY 与该常量完全一致。

已逐一验证无效的途径

Windows 用户级环境变量 NO_PROXY —— 裸 IP、域名后缀、CIDR 三种写法全部被丢弃(已确认是全新启动的进程,非环境继承问题)
~/.qoder/settings.json 的 env.NO_PROXY
设置界面 —— 没有代理例外/bypass 输入项
关闭代理 —— 不可行,qoder.com 本身必须走代理才能访问
矛盾之处

Agent SDK 侧(qoder-agent-sdk 的 undici 代码)本来是会把 NO_PROXY 条目并入 bypass 列表的,能力是现成的,只是被宿主进程在上游覆盖掉了。

期望

不要覆盖用户已设置的 NO_PROXY,改为合并
设置界面增加"代理例外"输入项(等价于 VS Code 的 http.noProxy)
bypass 至少支持域名后缀与 CIDR 网段,避免企业用户逐个枚举内网 IP
影响

所有"外网走代理 + 内网直连"的企业用户都无法使用内网 MCP Server。目前只能靠 stdio 桥接脚本或系统级端口转发绕过,两者都需要用户自己维护。

附带一个小问题

MCP 配置里 type: “streamableHttp” 会被校验拒绝(Invalid enum value,仅接受 streamable-http)。这种驼峰写法在生态里很常见,部分插件就是这么写的,建议作为别名兼容。

而且它这个配置代理的格式很奇葩,不能配置带用户名和密码的代理地址