Repository navigation
一、更新内容:
【摘要】
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
也感谢反馈问题并提供日志与建议的朋友们。