EricXu20266/dsh-proxy
EricXu20266★ 0TypeScriptLast synced: 2026-08-15
DSH global proxy manager - system/manual proxy in settings, injected by DSH-GUI launcher
README excerpt
dsh-proxy 🌐 中文 English DSH 全局代理管理器——在 DHS 设置页「通用设置」里图形化配置系统代理 / 手动代理,配置持久化到 /.dsh/settings.yaml ,配合 DSH-GUI 启动时注入环境变量,让 DHS 全链路(LLM 调用 / 内置搜索 / MCP 客户端)走代理。 DHS 的网络栈与代理机制(背景) 现状:DSH 直连 DHS 的所有网络请求都走 Node 全局 fetch() ——LLM 调用( llm-deepseek/adapter.ts )、内置搜索/抓取工具( web-search- 、 web-fetch-http )、MCP 客户端(AnySearch 等 Streamable HTTP 服务)——全链路 没有任何自定义代理 dispatcher (源码中搜不到 ProxyAgent / EnvHttpProxyAgent )。 由此推出三个事实: 1. Node 的 fetch() 不读 Windows 系统代理 。注册表 Internet Settings 里的 ProxyServer (如 127.0.0.1:7897 )只对浏览器等 WinHTTP 应用生效,Node 完全无视。 2. Node 24+ 支持环境变量代理 。设置 NODE USE ENV PROXY=1 后,全局 fetch() 读取 HTTP PROXY / HTTPS PROXY / NO PROXY 。 3. DSH 的代理变量是 bootstrap-only ( app-boot 安全设计): HTTP PROXY 、 HTTPS PROXY 、 ALL PROXY 、 NO PROXY 只能由启动 DSH 的进程环境提供, .env 文件禁止设置(防恶意 .env 把网络重定向到攻击者代理)。 结论:DSH 要走代理 = 启动前注入环境变量 插件作用:设置页图形化配置 DHS 原生对代理没有配置入口(只能靠启动 shell 手动设环境变量)。本插件把代理配置变成 DHS 设置页「通用设置」里的一行: - 滑块开关 :总开关,开启后才注入代理环境变量 - 互斥选项 (二选一): - 默认使用系统代理 :读取 Windows 注册表 Internet Settings 的 ProxyServer (自动补 http:// 前缀) - 手动配置 :直接填代理地址,默认值 http://127.0.0.1:7897 ,可直接退格改端口 - 保存提示 :「保存后重启应用生效」——代理环境变量在 host 启动时注入,改配置需重启 host - 持久化 :写入 /.dsh/settings.yaml 的 proxy: 节(保形读写,保留文件中其他节与注释) UI 对齐 DHS 原生设置行( figma Setting-Ce…
View full README on GitHub →