mihomo-cli 2.8.1 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.9.2] - 2026-07-18
4
+
5
+ ### 修复
6
+
7
+ - **带值选项被误当参数** - `sub test -t <ms>`、`sub clean -r <轮数>`、`logs -n <行数>` 等命令在不显式指定名称时,选项的值(如 `3000`)会被误认为订阅名/日志编号导致报错。现已正确识别,这些选项可独立使用
8
+
9
+ ### 安全 / 健壮性
10
+
11
+ - **内核下载后自检** - 下载解压内核后立即运行 `mihomo -v` 校验二进制可执行且未损坏(架构不匹配、下载截断等),失败则删除并报错(mihomo 上游未提供 checksums,故以自检替代哈希校验)
12
+ - **镜像下载来源提示** - 使用 `--mirror` 经第三方中转下载内核时,提示无法验证来源完整性
13
+ - **自动更新超时竞态** - 自动更新订阅超时后,真正中断底层网络请求(此前请求仍会在后台跑完并写盘,与「已用缓存启动」的主流程存在竞态)
14
+ - **清理失败节点同步清理规则** - `clean` 删除空代理组后,同步移除订阅配置中引用这些已删组的规则,避免残留
15
+
16
+ ### 其他
17
+
18
+ - 清理未使用代码,简化进程信息采集
19
+
20
+ ---
21
+
22
+ ## [2.9.1] - 2026-06-28
23
+
24
+ ### 修复
25
+
26
+ - **测试实例进程泄漏** - `sub test` / `sub clean` 期间按 Ctrl+C 不再残留测试内核进程(端口 27890)。新增统一的退出清理机制(`lifecycle.ts`),信号退出前同步清理
27
+ - **`clean` 模式降级** - `mihomo clean` 清理后重启时保留当前运行模式,TUN 用户不再被静默切回 Mixed
28
+ - **`sub web` 打开错误订阅** - 无参数时打开当前激活订阅,而非第一个添加的订阅
29
+ - **订阅更新间隔校验** - 机场返回非正数的 `profile-update-interval`(如 -1)时回退默认间隔,不再每次启动都重新下载
30
+ - **内核版本探测超时** - `getKernelVersion` 增加 5 秒超时,损坏的内核二进制不再导致命令永久卡死
31
+
32
+ ### 安全 / 健壮性
33
+
34
+ - **去除 shell 命令拼接** - 进程管理、内核解压等处的 `execSync` 字符串拼接全部改用 `spawnSync` 参数数组,消除路径注入风险
35
+ - **进程匹配精确化** - `pgrep` / `pkill -f` 的路径模式做正则转义,避免路径中的 `.` 被当作通配符误匹配/误杀其他进程
36
+ - **原子文件写入** - settings、订阅缓存、运行时配置改为「写临时文件 → 重命名」,避免写入中途崩溃导致文件损坏
37
+ - **settings 损坏备份** - `settings.json` 解析失败时自动备份为 `.bak`,避免被默认值覆盖丢失
38
+ - **其他** - `formatBytes` 处理 `Infinity`;`isProxyValid` 兼容 SS2022 base64url 密钥;`ui` / `dir open` 防原型链属性;内核归档目录递归加深度限制
39
+
40
+ ---
41
+
42
+ ## [2.9.0] - 2026-05-13
43
+
44
+ ### 新功能
45
+
46
+ - **跳过自动更新** - `start -s` 跳过启动时的订阅自动更新
47
+ - **自动更新超时** - `start -u <ms>` 设置自动更新超时时间(默认 10 秒),超时后使用缓存配置继续启动
48
+ - **通用 Promise 超时工具** - 新增 `withTimeout` / `TimeoutError` 工具函数
49
+
50
+ ### 变更
51
+
52
+ - **命令别名调整** - 移除 `mmc`,新增 `mhm` 作为命令别名
53
+
54
+ ---
55
+
3
56
  ## [2.8.1] - 2026-05-07
4
57
 
5
58
  ### 修复
package/README.md CHANGED
@@ -83,7 +83,7 @@ mihomo ui yacd # YACD
83
83
 
84
84
  | 命令 | 说明 |
85
85
  | --------------------------- | ---------------------------------------------------------------------------- |
86
- | `mihomo start [tun\|mixed]` | 启动/重启/切换代理模式(`-r` 清理轮次,`-t` 超时,`-j` 并发) |
86
+ | `mihomo start [tun\|mixed]` | 启动/重启/切换代理模式(`-s` 跳过更新,`-u` 更新超时,`-r` 清理轮次,`-t` 超时,`-j` 并发) |
87
87
  | `mihomo stop` | 停止代理 |
88
88
  | `mihomo status` | 查看运行状态 |
89
89
  | `mihomo log` | 实时查看日志 (`-o` 用系统编辑器打开) |
@@ -142,7 +142,7 @@ mihomo ui yacd # YACD
142
142
 
143
143
  | 快捷命令 | 等效于 |
144
144
  | ---------------------- | -------------------------- |
145
- | `mihomo up` | `mihomo start`(同样支持 `-r`/`-t`/`-j`)|
145
+ | `mihomo up` | `mihomo start`(同样支持 `-s`/`-u`/`-r`/`-t`/`-j`)|
146
146
  | `mihomo down` | `mihomo stop` |
147
147
  | `mihomo tun` | `mihomo start tun` |
148
148
  | `mihomo use <name>` | `mihomo sub use <name>` |
@@ -197,6 +197,7 @@ mihomo kernel --mirror-all hk.gh-proxy.org
197
197
  - 默认更新间隔:GitHub 订阅 6 小时,其他订阅 12 小时(订阅服务端可通过 `profile-update-interval` 覆盖)
198
198
  - 触发时机:`start` 命令、`sub list` 命令
199
199
  - 更新失败时继续使用本地缓存,不影响使用
200
+ - 自动更新默认超时 10 秒,可通过 `-u <ms>` 调整;使用 `-s` 可完全跳过自动更新
200
201
 
201
202
  ## 数据目录
202
203