Files
clash-party/changelog.md
ezequielnick eb0498b33d feat: protect subscription DNS settings from unconfirmed overrides
- Detect custom DNS in raw subscriptions and require confirmation
- Bind confirmation to the subscription and DNS content for the current session
- Sync the override switch after successful core application
- Retain auto-disable notices until the window becomes visible
2026-09-10 14:05:26 +08:00

7.0 KiB
Raw Blame History

2.0.3

新功能 (Feat)

  • 新增订阅 DNS 覆写保护:避免覆盖自定义解析配置,手动开启需确认风险
  • 新增按 WiFi SSID 自动切换订阅:为指定 SSID 绑定订阅,连上对应 WiFi 时自动切换,可选离开时切回原订阅(暂停 SSID 优先macOS 采用事件驱动检测,不再轮询
  • 新增自定义 GitHub 下载代理(#2096
  • 覆写页面新增全局开关的快捷切换(#1280
  • 机场插件:网络请求在直连与本地代理之间自动回退。只有在请求确定尚未发出时才换路,不会重复登录或重复注册设备;上次成功的路由会被记住并优先使用
  • 机场插件:支持多网关。网关超时、不可达或已退役时自动切换到下一个网关,全部失败时重新发现一次网关列表
  • 机场插件:.cpx 描述符支持静态备用发现源(discoveryUrls),登录域名不可用时仍能找到网关
  • 机场插件:支持带 Ed25519 签名的发现文档,按序号与摘要防回滚、防同号异文;/config 响应可通过 X-CPX-Discovery 头热更新网关列表与登录地址
  • 机场插件:网关返回的错误可携带说明文字并展示在插件卡片上;.cpx 可附带服务商的静态说明
  • 机场插件:每个插件同一时刻只执行一个网络操作,登录、更新、删除之间不再互相干扰;每个操作有统一的时间预算,超时后不会一直占住插件

性能优化 (Performance)

  • 进一步缩短应用启动时间:页面按需预加载,首屏就绪后再进行其余初始化
  • 连接页面的连接列表更新按帧合并,页面不可见时不再处理,减少高频更新下的卡顿
  • 修复渲染进程 IPC 监听器在页面卸载后残留、导致内存持续增长的问题(反复进出连接页面时尤为明显)(#2131
  • 修复离开连接页面后仍在后台处理数据、Monaco 编辑器模型未释放造成的资源泄漏

修复 (Fix)

  • 修复订阅中恶意 rule-providersbehavior 字段可在资源页打开规则集时执行任意命令的安全问题
  • 修复内核下载的三个问题镜像返回错误页面时被当作内核写入且不再尝试其它镜像解压中途失败会截断正在使用的内核macOS 下因路径含空格导致新内核没有执行权限(#2018
  • 修复订阅只含 proxy-providers、或已存在其它名称的 Smart 组时,规则被改写到不存在的 "Smart Group" 导致内核无法启动的问题(#885
  • 修复 Smart 内核设置LightGBM、数据采集、策略等修改后热重载未生效、要重启内核才应用的问题配置检查复用已下载的 Smart 模型,工作目录中的模型不再被清除,不再每次重新下载
  • 修复 PAC 服务监听失败端口占用或地址无法绑定会让整个应用崩溃、Gist 备份在 token 失效后仍显示成功、悬浮窗渲染进程崩溃后残留在屏幕上的问题(#2032
  • 修复覆写页面拖拽的问题:拖入文件无法读取、拖动排序会重复或丢失条目、拖入非文件时页面卡在遮罩下(#2026
  • 修复覆写增删改的读写竞态可能丢失并发修改、远程覆写下载到错误页面被当作覆写内容、混合端口关闭时下载走 127.0.0.1:0,以及启动迁移无法真正删除过时配置键导致每次启动重复迁移与 Gist 上传的问题(#2024
  • 修复配置在界面每次刷新时都强制重读磁盘、WebDAV 设置每次按键都写盘、流量表格翻页按钮失效、规则编辑器加载失败仍保存并覆盖已有规则的问题(#2030
  • 修复离开 WebDAV 设置页面后延迟的写入仍会执行的问题
  • 修复规则编辑器保存后未热重载配置的问题;规则编辑器支持 YAML 合并标签(<<
  • 修复配置中 geo-update-interval 为 null 时崩溃的问题
  • 修复 macOS 重启内核时残留孤儿内核进程的问题(#2115
  • 修复订阅卡片上的复制按钮因悬停时布局变化而难以点中的问题(#476
  • 修复代理页面切换"隐藏不可用节点"后列表高度测量错乱的问题(#1884
  • 修复 Windows 8/8.1 无法加载系统代理模块的问题
  • 修复 Windows ARM64 NSIS 安装包的问题
  • 修复 macOS 安装包未附带公证票据,离线或网络受限时 Gatekeeper 提示"无法检查恶意软件"而无法安装的问题
  • 机场插件:修复拉取到的订阅未经校验就覆盖本地订阅的问题——现在先由内核校验(包含当前生效的覆写),不合法的订阅不会替换仍可用的旧订阅,并按瞬时失败退避重试
  • 机场插件:修复设置中的自动更新开关与间隔未同步到订阅的问题——修改后立即生效并重建定时器,关闭后不再有残留的一次拉取,并发切换以最后一次为准
  • 机场插件:修复没有当前订阅时,首次登录的插件订阅只被标记为当前、未真正加载到内核的问题
  • 机场插件:修复重新登录后旧设备一直占用机场设备额度的问题——现在会自动注销被替换的旧设备,暂时失败的会在之后的拉取或删除时重试
  • 机场插件:修复登录失败补偿时丢失仍然有效的旧设备密钥的问题——恢复旧设备的凭据,未能注销的新设备记录下来稍后回收
  • 机场插件:修复删除订阅时文件删除失败会留下含节点凭据的孤儿文件的问题——记录最后删除,任一步失败都保留记录可重试;并发删除不再留下悬空的"当前订阅"
  • 机场插件:修复内核混合端口关闭时插件请求(含代理凭据)被发到本机 80 端口的问题;经本地代理的请求与远程 .cpx 下载现在会携带内核的入站认证凭据
  • 机场插件:修复经本地代理的 https 请求中止后隧道连接残留的问题——改为自建 CONNECT 隧道,中止即关闭连接
  • 机场插件:修复 Linux 上没有系统密钥环(或密钥环回退为固定密钥)时设备私钥被弱加密落盘的问题——此时设备密钥只保存在内存中,重启后需要重新登录
  • 机场插件修复非公网地址判定的遗漏——NAT64 本地前缀与 site-local IPv6fec0::/10)不再放行,同时不再误拦 192.0.x.x 中的公网地址
  • 机场插件:修复插件、订阅、覆写三份配置的缓存可能被迟到的读取回滚、导致签名发现的防回滚检查失效的问题;覆写开关与订阅写入互相串行,不再产生未经校验的组合
  • 机场插件修复网络操作中锁等待、DNS 预检、密钥解密等步骤不受超时约束的问题

其他 (Chore)

  • Electron 升级到 43.5.1
  • 流量统计的记录与存储方式重写,历史数据首次启动时自动迁移
  • CI 对 PR 与推送自动运行格式、lint、类型检查与单元测试Linux + Windows
  • 机场服务端对接指南更新:/revoke 在重新登录后也会被调用(保持幂等即可);discoveryUrls 须与登录域名同源;参考网关(deploy/gateway)的部署脚本、密钥生成与文档校验同步更新
  • 移除 https-proxy-agent 依赖