Repository navigation
Releases: qiu-yuxiao/clash-mini
Releases · qiu-yuxiao/clash-mini
Release list
Clash Mini Ver.v3.2.2
v3.2.2 Update Logs
📝 Key Changes
⚡ Instant Full-Node Auto-Select in Onboarding & Auto-Launch Switch Polish
- 修复基础设置「开机自动启动」开关首次点击必然没反应的问题(BUG-312):
- 现象:在基础设置中点击开机自启开关,第一次必然回弹无反应,必须点第二次才能开启;
- 根因:
BasicSettingsCard中的useEffect依赖了[verge?.enable_auto_launch]。点击开关触发patchVerge乐观更新瞬时,useEffect立即被触发并调用getAutoLaunchStatus()读取注册表。由于此时异步 IPC 写入 Windows 注册表尚未完成,回读得到旧值false,瞬间将开关覆盖重置回关闭;点第二次时注册表已在前次异步完成,才能读到true; - 修复:增加操作互斥标志,仅在挂载时拉取真实注册表状态;用户点击时乐观更新 + 异步写入注册表完成后对账,彻底消除首次点击回弹。
- 新手引导 Step 2/2 改为 0ms 立即全节点并发选优,未完成前不挂死假「最优节点」(BUG-312):
- 现象:进入 Step 2/2 后界面首先显示了订阅自带的第 1 个默认节点作为「当前最优节点」,测速失败后才进行全节点选优,给用户造成“测速第一次必然失败”的困惑;
- 从一开始就全节点并发选优:取消等待,进入 Step 2/2 第 0 毫秒立即在后台触发全量并发测速择优(
triggerAutoSelectselect=true); - 未测速前位置空置、真实跑赢才展示:在并发测速选优未完成前,「当前最优节点」位置保持空置,状态明确提示「正在并发测速并自动选优最快节点…」;待后台实际跑赢并确认最低延迟后,才展示「🌐 当前最优节点」及精确延迟胶囊,体验顺畅自然。
🔨 Commit History
- chore(release): v3.2.2 (2af1c7e)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Wed Oct 28 15:53:42 CST 2026.
Clash Mini Ver.v3.2.1
v3.2.1 Update Logs
📝 Key Changes
✨ Proactive Node Benchmarking & One-Click Re-test in Onboarding
- 首次使用向导弹窗(
FirstRunGuideDialog)Step 2/2 新增「🔄 重新测速并优选节点」主动引导闭环(BUG-311):- 一键重测并自动择优按钮:当节点测速超时(
0 ms)或等待超时未确认时,不再仅展示静态文字提示,而是在状态卡片内直接提供醒目的 「🔄 重新测速并优选节点」 按钮;点击后立即触发后端全节点并发测速(triggerAutoSelectselect=true),从订阅全部节点中重新挑出延迟最低的可用节点并自动切换; - 建设性行动指引文案:将超时提示升级为清晰的行动引导(「当前节点响应超时,可点击下方按钮自动重新测速并切换至最快节点;您也可以直接进入主界面手动选择其他节点」),彻底消除新手用户的困惑;
- 进入 Step 2/2 自动兜底测速与
DelayManager实时联动:打通DelayManager测速缓存监听(无需等轮询即可毫秒级响应后端并发测速结果),并在进入 Step 2/2 后若 2.5 秒内尚无有效延迟自动后台触发一次全量并发测速优选。
- 一键重测并自动择优按钮:当节点测速超时(
- 修复首次导入订阅时
isImportingRef门闩误拦截自动测速优选的时序竞态(BUG-311):- 现象:
handleImportProfile在调用await mutateProfiles()更新currentProfileUid时,isImportingRef.current仍处于true(直到finally块才释放),导致新订阅触发的useEffect在首行检查if (isImportingRef.current) return时直接提前返回,跳过了首次导入后的自动并发测速优选; - 修复:在导入与配置落盘完成、
await mutateProfiles()触发状态变更前即释放isImportingRef.current = false,确保首次导入后自动测速优选 100% 正常执行。
- 现象:
🔨 Commit History
- chore(release): v3.2.1 (fd50a1a)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Wed Oct 28 14:05:37 CST 2026.
Clash Mini Ver.v3.2.0
v3.2.0 Update Logs
📝 Key Changes
✨ Zero-Download Rule Pruning & First-Run Guide Experience Perfection
- 剥离机场订阅未引用的残留
rule-providers,实现首次启动 100% 零外部规则下载(BUG-310):- 现象:部分机场原始订阅 YAML 自带了额外的
rule-providers(如China-Site.mrs、China-IP.mrs、Local-IP.mrs);虽然 Clash Mini 在enforce_mini_agreements中已用内置精简规则覆写了rules:(未引用那些规则集),但保留在rule-providers:中的残留定义仍会触发 Mihomo 内核在首次启动时联网下载数百 KB 无用规则文件; - 修复:按最终生效的
final_rules中RULE-SET,<name>实际引用的名称集合(默认仅有随包预置的gfwlist)自动剔除未引用的rule-providers,确保 Clash Mini 分流所需的gfwlist.yaml、Country.mmdb、geosite.dat100% 随安装包预置,首次启动零外部规则拉取。
- 现象:部分机场原始订阅 YAML 自带了额外的
- 首次使用向导弹窗(
FirstRunGuideDialog)Step 1/2 回车直通导入与剪贴板联动(BUG-310):- 全窗口
Enter监听兜底:在弹窗Paper监听基础上新增window级keydown兜底监听(配合submittingRef防重入锁),解决首次启动延迟弹窗或异步剪贴板探测后焦点停留在document.body时按回车无响应的问题; - 剪贴板订阅一键回车直导:当输入框为空且剪贴板中已存在订阅链接时,无需先点击横幅或手动粘贴,直接按
Enter键(或点击「立即导入并开启」、点击输入框右侧↵图标)即可自动填入剪贴板订阅链接并立即开始导入; - 切回窗口自动重探测剪贴板:监听窗口
focus与visibilitychange事件,用户在打开软件后切去浏览器复制订阅链接再切回软件,即刻自动识别并支持直接按Enter导入。
- 全窗口
- 修复首次使用向导弹窗(
FirstRunGuideDialog)Step 2/2 误报「系统代理未开启」的问题(BUG-310):- 现象:
getSystemProxy查询仅在打开设置抽屉时才启用,引导弹窗期间sysproxy恒为undefined,且在 TUN 模式下sysproxy.enable本就为false,导致旧逻辑!sysproxy?.enable在代理和节点已经正常工作时仍 100% 误报「⚠️ 系统代理未开启,请在设置中开启后再试」; - 修复:改用
verge.enable_system_proxy || verge.enable_tun_mode || sysproxy?.enable判定真实流量接管状态,并在 Step 1/2 导入成功时若检测到系统代理与 TUN 均未开启则自动开启系统代理,彻底消除误导提示。
- 现象:
🔨 Commit History
- chore(release): v3.2.0 (fde6494)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Wed Oct 28 12:45:14 CST 2026.
Clash Mini Ver.v3.1.9
v3.1.9 Update Logs
📝 Key Changes
This version includes code optimizations and bug fixes.
🔨 Commit History
- chore(release): v3.1.9 — pre-bundle gfwlist.yaml for zero-wait first-run routing and center onboarding step badges (BUG-309) (8edd7c6)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Wed Oct 28 04:28:13 CST 2026.
Clash Mini Ver.v3.1.8
v3.1.8 Update Logs
📝 Key Changes
🐞 DNS Hygiene & Code Quality
- 订阅
dns.nameserver境外明文 UDP 上游自动改写为 DoH(BUG-308):- 现象:部分机场订阅在
dns.nameserver中自带明文8.8.8.8等境外公共 DNS,在respect-rules: true下内核自身 DNS 查询命中代理规则穿代理;当活跃节点为anytls等 TCP 承载协议时,UDP 查询需走 UDP-over-TCP 新建会话,建连速度慢于境内 DoH,在内核 DNS 并发竞速中必被取消并刷出failed to create session: dial tcp <node>: operation was canceled告警; - 修复:
enhance管线新增sanitize_foreign_plain_dns_upstreams,将dns.nameserver中 Google(8.8.8.8/8.8.4.4)与 Cloudflare(1.1.1.1/1.0.0.1)的明文 UDP 形式(裸 IP 或:53端口)自动改写为https://<ip>/dns-queryDoH,同时严格保留default-nameserver明文引导项、境内明文 DNS 及已加密上游不变。
- 现象:部分机场订阅在
- 清零
clippy --all-targets测试与诊断模块存量告警:- 清理
diagnostics.rs、migrate.rs与enhance/mod.rs中的field_reassign_with_default及测试断言告警,确保pre-push静态检查门禁零告警全绿通过。
- 清理
🔨 Commit History
- release: bump version to 3.1.8 (c534fb4)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Wed Oct 28 01:00:26 CST 2026.
Clash Mini Ver.v3.1.7
v3.1.7 Update Logs
📝 Key Changes
✨ Onboarding Vertical Hierarchy & Narrow-Window Aesthetics
- 首次使用向导弹窗(
FirstRunGuideDialog)竖屏主从层级重构(BUG-307):- 主标题与步骤标识上下分行:将弹窗顶部主标题(「🎉 欢迎使用 Clash Mini」/「🚀 订阅已就绪」)与从属步骤胶囊(
STEP 1 / 2/STEP 2 / 2)由左右并列改为上下主从两行,消除窄窗口下主标题被挤压折行的问题; - 粘贴按钮与回车提示上下居中分行:将订阅输入框下方的「📋 一键粘贴剪贴板链接」与「提示:按 Enter 键即可导入」改为上下两行居中排布,同时取消剪贴板智能探测提示条的单行省略截断,三大核心特性胶囊改为自适应均分撑满整行;
- 「当前最优节点」标签与节点全称上下分行:第一行展示「🌐 当前最优节点」标签与右侧「⚡ xx ms」实测延迟胶囊,第二行由节点完整名称独占整行宽度展示,彻底解决长节点名称被截断一半的问题;
- 底部操作按钮双行居中满宽排布:第一步与第二步底部操作区(
DialogActions)统一改为纵向两行居中满宽布局(主操作按钮在上、「稍后手动配置」/「进入主界面」独立在最下方一行),彻底消除窄窗口下双按钮并列拥挤。
- 主标题与步骤标识上下分行:将弹窗顶部主标题(「🎉 欢迎使用 Clash Mini」/「🚀 订阅已就绪」)与从属步骤胶囊(
🔨 Commit History
- release: bump version to 3.1.7 (bf2de07)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Tue Oct 27 22:31:56 CST 2026.
Clash Mini Ver.v3.1.6
v3.1.6 Update Logs
📝 Key Changes
✨ Connections Table & Wide-Window Layout Improvements
- 宽窗口路径控制表格「路由」列支持点击循环排序(活跃 & 历史连接通用):
- 为
ConnectionTable的chains(路由)列补齐accessorFn(按实际展示的「代理 / 直连 / 阻断 / 其它」路由类别提取排序键),支持与「链接目标」列一致的点击切换 升序(▲)→ 降序(▼)→ 取消排序,并将列宽由50px拓宽至64px防止排序箭头折行截断。
- 为
- 修复连接表格无法上下滚动的问题(保持隐藏滚动条、鼠标滚轮丝滑滚动):
- 修复
ConnectionsPanel表格外层容器默认display: block导致内部flex: 1, minHeight: 0失效、虚拟列表被撑高至全量高度而被裁切的问题;补齐display: 'flex', flexDirection: 'column', height: '100%'纵向滚动链路,同时保持无滚动条的简洁视觉(scrollbarWidth: 'none'),活跃与历史连接均可通过鼠标滚轮顺畅上下滚动。
- 修复
- 修复首次在设置界面将窗口拉至最宽时右侧路径控制面板偶发不出现的竞态(BUG-306):
- 现象:拖拽窗口边缘至最大宽度(
640px)时,末帧onResized事件常在pointerup后的 200ms 冷却期结束前触发;旧逻辑在WindowProvider.checkMaximized中因isWindowResizing()直接丢弃该事件,冷却结束后又无新onResized触发,导致isMinimalWidth卡在true,需来回调整窗口才显示右侧面板; - 修复:移除纯内存计算函数
syncGeometryAndLargeState前的isWindowResizing()拦截(0 次 IPC 调用),新增clash-mini-resize-ended收尾对账事件与toggleMaximize即时applyGeometry同步,确保首次拉宽或点击放大时右侧路径控制组件立即挂载显示。
- 现象:拖拽窗口边缘至最大宽度(
🔨 Commit History
- release: bump version to 3.1.6 (968f5a4)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Tue Oct 27 21:17:45 CST 2026.
Clash Mini Ver.v3.1.5
v3.1.5 Update Logs
📝 Key Changes
✨ UI & Onboarding Layout Refinement
- 首次使用引导弹窗横向 100% 铺满默认窗口宽度(Full-Width Onboarding Dialog):
- 现象:初次启动默认窗口为
330px窄竖条,此前FirstRunGuideDialog受 MUIDialog默认左右各32px外边距(共64px)与内部px: 2.5(共40px)双重挤压,实际内容可用宽度仅剩226px,在窄窗口中形成「窄条套窄条」的局促观感; - 优化:显式声明
m: 0, width: '100%'破除默认外边距挤压,并将内部横向内边距收紧为px: 1.5,使可用内容宽度由226px拓宽至306px(提升 +35%);同时将底部主操作按钮设为flex: 1自适应撑满,大幅减少文本折行,视觉比例更加饱满舒展。
- 现象:初次启动默认窗口为
🔨 Commit History
- release: bump version to 3.1.5 (2e5170a)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Tue Oct 27 16:12:48 CST 2026.
Clash Mini Ver.v3.1.4
v3.1.4 Update Logs
📝 Key Changes
✨ Onboarding Experience & UI Consistency
- 首次使用向导全链路重设计与 GitHub Star 激励转化(First-Run Onboarding Redesign):
- 两步式价值感知向导(
STEP 1 / 2→STEP 2 / 2):新增顶部步骤胶囊徽章与三枚核心特性标识(智能优选低延迟节点 / 防 DNS 泄漏保护 / 轻量静默驻留); - 剪贴板智能嗅探一键填入:弹窗打开时自动静默检测系统剪贴板,若包含单行
http(s)://订阅链接且输入框为空,展示可一键填入的横幅提示,实现零键盘输入导入; - 实时连通性仪表盘与开源支持卡:导入成功后原地切换至第二步,实时展示当前最优出口节点名称与毫秒级延迟徽章,并新增暖金渐变 GitHub ⭐ Star 激励卡(含主按钮直达仓库测速点 Star 及次级 Wiki 指南入口);
- 顶栏帮助菜单常驻 Star 入口:
?帮助下拉菜单首项升级为醒目的⭐ 去 GitHub 点亮 Star(13 个语种资源全量同步对齐)。
- 两步式价值感知向导(
- 顶部活跃节点栏与下方节点表格延迟颜色标准 100% 统一:
- 现象:此前顶部活跃节点栏(
ActiveNodeStatusCard/getSignalIcon)沿用了独立硬编码的旧分段阈值(200 / 300 / 500ms及info.main)与三分支胶囊底色,导致同一延迟数值在200 ~ 4999ms区间内顶部栏与下方节点表格(ProxyItem)呈现出截然不同的颜色; - 修复:在
src/services/delay.ts中收敛出共用颜色解析函数resolveSignalDelayColor,使顶部活跃节点栏与下方节点表格 100% 共享formatDelayColor单一真源(< 250ms绿色success.main、250 ~ 399ms主题色primary.main、400 ~ 4999ms橙色warning.dark/warning.main、0或>= 5000ms红色error.main),同步修复胶囊背景色映射并补充深浅色主题全区间单测。
- 现象:此前顶部活跃节点栏(
🔨 Commit History
- release: bump version to 3.1.4 (86107cd)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Tue Oct 27 15:10:12 CST 2026.
Clash Mini Ver.v3.1.3
v3.1.3 Update Logs
📝 Key Changes
🐞 Fixed Bugs & Core Lifecycle
- 关闭 TUN 模式后彻底释放系统服务并切回用户态 Sidecar(BUG-305 / F-01):
- 现象:此前从 TUN 模式切回「系统代理」或「手动模式」时,仅执行
UpdateFlags::CLASH_CONFIG热重载,Mihomo 内核仍继续驻留在高权限 Windows 服务(RunningMode::Service)中运行,未释放服务句柄也未切回普通用户态Sidecar。同时前端开启 TUN 时在patchVerge之后又重复调用了一次restartCore(),造成双重重启延迟。 - 修复:后端
determine_update_flags对比修改前后的enable_tun_mode与当前RunningMode,开启或关闭 TUN 时均自动附加UpdateFlags::RESTART_CORE,在关闭系统代理时先清理注册表再重启切换运行模式,并在RESTART_CORE已执行时跳过冗余热重载;前端移除重复的restartCore()调用并统一刷新系统运行态。
- 现象:此前从 TUN 模式切回「系统代理」或「手动模式」时,仅执行
- Win32
WM_SIZING防上边缘缩放下移钩子 100% 挂载生效(BUG-305 / F-02):- 现象:
setup_wm_sizing_hook原先仅在RunEvent::Ready中调用,比异步创建主窗口早约 0.5 秒触发,导致首次冷启动时get_webview_window("main")返回None跳过安装;且旧的全局重入锁在轻量模式销毁并重建主窗口后阻止为新 HWND 重新挂载钩子。 - 修复:将
setup_wm_sizing_hook迁入build_new_window窗口创建后立即执行,并改用HOOKED_HWND按窗口句柄原子判重,确保初次启动与轻量模式唤醒重建窗口后均 100% 生效。
- 现象:
- 单例唤醒补齐
clash-mini://协议匹配并修复 Deep Link 参数截断(BUG-305 / F-03):- 修复:
check_singleton新增clash-mini:与clash-verge:协议前缀识别,改用.query(&[("param", param)])自动对含&的订阅 URL 进行百分比编码,防止服务端查询参数截断;非--silent普通二次启动时正确唤醒已有实例主窗口。
- 修复:
⚡ Performance & Bundle Size Optimization
- 剥离未使用的 Monaco Editor 子系统与 16 个冗余依赖(BUG-305 / FE-01, FE-02, FE-04, FE-08, FE-09, FE-10):
- 移除零引用的 Monaco 编辑器组件、YAML Worker 及 16 个未使用的 npm 依赖包(
node_modules净减 122 个包),前端dist/构建产物直降 >4.4MB (>60%); - 清理 4 个无引用历史基础组件、约 560 行未使用的手动出站代理配置与 WebDAV 类型定义、以及后端 13 语种共 52 处孤立 i18n 键;
vite.config.mts移除遗留的safari>=14目标,进一步缩减 polyfill 体积。
- 移除零引用的 Monaco 编辑器组件、YAML Worker 及 16 个未使用的 npm 依赖包(
- 前后端热路径与渲染生命周期优化(BUG-305 / F-04, F-05, F-06, F-07, FE-03, FE-05, FE-06, FE-07):
get_proxy_addr改用强类型轻量结构体单次读取并反序列化clash-mini.yaml,消除 fallback 阶段的二次磁盘读取与全量动态 AST 构建;- 残留核心清理改用
System::new_with_specifics仅扫描进程列表,避免枚举磁盘/网卡/传感器带来的 50~150ms 阻塞;后台监控任务覆盖前显式abort旧句柄;系统服务管理命令统一解析%SystemRoot%\System32\sc.exe绝对路径并规范化安装器路径; useProxyDelayState改用useReducer惰性初始化消除节点卡片挂载时的首帧双重渲染;FirstRunGuideDialog解耦为细粒度 Context 订阅;ProxyRenderComponent移除无效的useVerge/useIconCache行级订阅;收敛useSkinControls与useCustomTheme的controlSkin状态为单一真源。
🔨 Commit History
- release: bump version to 3.1.3 (c4c3f79)
下载地址
Windows 64位 安装版(推荐,支持自动更新)
Windows 64位绿色便携版(免安装)
项目主页
Created at Tue Oct 27 12:38:39 CST 2026.