github docmirror/dev-sidecar v2.3.5

3 hours ago

一、更新内容:

【摘要】

v2.3.5 是修复版本:解决 2.3.4 打开代理即报 secretVault.migrate is not a function、点「安装证书」没有任何反应、全新安装时无证书可装、P2P 节点分享验签失败等问题。安装包从 132 MB 减小到约 107 MB(移除未使用依赖、原生模块按目标架构裁剪),Electron 升级到 42.11.18,内置官方配置补上 Grok 的 ECH 规则。本版 Windows 安装包未签名。

【优化】

  • 安装包减小约 25 MB:渲染层依赖不再打进包内,未使用的运行时依赖已移除;koffi 等原生模块按目标架构裁剪,x64 安装包不再携带 arm64/ia32 的二进制。
  • Electron 升级到 42.11.18:开发环境与打包版本此前不一致(一个 42.11.18、一个 42.11.16),现已统一,跟随安全补丁。
  • 内置官方配置更新:新增 Grok(grok.com / x.ai)的 ECH 规则,grok.ai 不兼容 ECH,保持普通连接。
  • 更新对话框补回入口:恢复「下载完整安装包」和「手动下载」两个入口,更新失败时不必再自行找下载页。

【问题修复】

  • 修复打开代理服务报错:2.3.4 在部分环境点「开启代理」会弹 Error invoking remote method 'apiInvoke': TypeError: secretVault.migrate is not a function,代理不启动。原因是密钥存储模块导出的是命名空间,实例挂在其 vault 属性上,调用处却把命名空间当实例用;现已修正,并且迁移或环境准备失败不会再中断启动。
  • 修复「安装证书」点了没反应:Electron 的 openPath 失败时不抛异常、只返回错误文本,旧逻辑丢弃返回值并直接把「根证书已安装」写进设置,于是失败表现为「什么都没发生 + 假成功」。现在会先判断文件是否存在,失败时显示具体错误,必要时回退到 certutil 直接导入。
  • 修复全新安装无证书可装:CA 以前只在代理子进程启动时生成,而 2.3.4 恰好起不来代理,形成死循环。现在点安装证书会按需生成 CA;证书与密钥库缺一半时自动恢复,两边都没有才新生成;证书还在但私钥彻底丢失则明确报错,不会静默换发导致已安装的根证书失效。
  • 修复 P2P 节点分享验签失败:身份文件里记录的公钥与密钥库里的私钥曾经不是一对(密钥存储后端切换过),导致卡密报 bad signature、对端接口返回 400。现在启动时会用私钥重建公钥与 nodeId,保持两者一致。
  • 修复本地打包钩子崩溃:打包钩子 require('builder-util') 在 pnpm 严格布局下解析不到,打包直接失败;现已改为不依赖该包。
  • 修复本地 install-app-deps 失败:配置文件不是 electron-builder 的默认名,子命令读不到 electronVersion,会退回到 package.json 里的范围值并报错;已补上默认名的转发配置。

【其他】

  • 测试套件重构:原先「require 即执行、失败就 process.exit(1)」的脚本式测试改为子进程运行,新增 CA 按需生成、服务启动密钥迁移、P2P 身份自愈等回归用例,core 与 mitmproxy 两套测试恢复稳定。
  • 本地与 CI 的 node_modules 布局统一为 hoisted;CI 测试步骤改为从仓库根按 pnpm --filter 运行,避免跨进子仓库的 workspace 根。
  • 修复 dns-over-http 未声明依赖 is-browser 导致的 DNS-over-HTTPS 模块加载失败(此前被 mitmproxy 的直接依赖顺带满足)。

二、安装前请仔细阅读安装说明

各平台安装说明

win10/macOS Monterey以下版本的用户参见electron升级说明

本版 Windows 安装包未签名(签名服务当时不可用),SmartScreen 会提示一次,选择「仍要运行」即可。

覆盖安装会保留 ~/.dev-sidecar 下的配置和证书;卸载时可选择是否一并删除。首次使用可以直接点「安装证书」,不需要先启动代理。

三、贡献者列表

非常感谢以下朋友们的贡献:

同时还要感谢以下朋友们在过去几个正式版本中提供的功能雏形,PR不能衡量他们的贡献:

另外专门感谢以下群友的赞助打赏:(排列按时间先后顺序)

  • 凌云志 ¥20

也感谢反馈问题并提供日志与建议的朋友们。

四、Full Changelog

v2.3.4...v2.3.5

Don't miss a new dev-sidecar release

NewReleases is sending notifications on new releases.