mihomo-cli 2.9.0 → 2.10.0

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,66 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.10.0] - 2026-07-18
4
+
5
+ ### 依赖升级
6
+
7
+ - **js-yaml 4 → 5**(破坏性大版本):迁移到命名空间导入,`noCompatMode` 选项移除后改用 `CORE_SCHEMA`(YAML 1.2 语义),保持 `yes/no/on/off` 等值不被错误加引号,与 mihomo 内核解析一致;移除随之内置类型的 `@types/js-yaml`
8
+ - **TypeScript 6 → 7**(原生编译器):类型检查更快,构建仍走 tsup/esbuild
9
+ - **lint-staged 16 → 17**:随之将 `engines.node` 门槛从 `>=22.0.0` 抬高到 `>=22.22.1`
10
+ - 其他:Biome 2.4 → 2.5、tsx 4.21 → 4.23、@types/node 22.19 → 22.20
11
+
12
+ ### 修复
13
+
14
+ - **`mihomo tun` 丢弃命令行参数** - `mihomo tun -s`、`mihomo tun -u 30000 -t 3000` 等此前被静默忽略(快捷命令未透传参数),现与 `mihomo start tun ...` 行为一致
15
+
16
+ ### 优化
17
+
18
+ - **默认值常量收归 `constants.ts`** - 测速超时/并发(2000/100)、清理轮次、自动更新超时、自动清理阈值、更新间隔等默认值统一集中管理,消除散落的裸魔数
19
+ - **消除重复逻辑** - 订阅下载的缓存元信息组装(`downloadSubscription` / `downloadMergedSubscription`)、进程停止失败处理(start/stop/clean 三处)、更新结果打印、单订阅下载分派统一抽取复用
20
+ - **清理冗余导出** - 移除仅在本模块内使用的多余 `export`
21
+ - **文档一致性** - README 镜像列表与代码对齐;`dir open` 帮助补列 `data` 目标
22
+
23
+ ---
24
+
25
+ ## [2.9.2] - 2026-07-18
26
+
27
+ ### 修复
28
+
29
+ - **带值选项被误当参数** - `sub test -t <ms>`、`sub clean -r <轮数>`、`logs -n <行数>` 等命令在不显式指定名称时,选项的值(如 `3000`)会被误认为订阅名/日志编号导致报错。现已正确识别,这些选项可独立使用
30
+
31
+ ### 安全 / 健壮性
32
+
33
+ - **内核下载后自检** - 下载解压内核后立即运行 `mihomo -v` 校验二进制可执行且未损坏(架构不匹配、下载截断等),失败则删除并报错(mihomo 上游未提供 checksums,故以自检替代哈希校验)
34
+ - **镜像下载来源提示** - 使用 `--mirror` 经第三方中转下载内核时,提示无法验证来源完整性
35
+ - **自动更新超时竞态** - 自动更新订阅超时后,真正中断底层网络请求(此前请求仍会在后台跑完并写盘,与「已用缓存启动」的主流程存在竞态)
36
+ - **清理失败节点同步清理规则** - `clean` 删除空代理组后,同步移除订阅配置中引用这些已删组的规则,避免残留
37
+
38
+ ### 其他
39
+
40
+ - 清理未使用代码,简化进程信息采集
41
+
42
+ ---
43
+
44
+ ## [2.9.1] - 2026-06-28
45
+
46
+ ### 修复
47
+
48
+ - **测试实例进程泄漏** - `sub test` / `sub clean` 期间按 Ctrl+C 不再残留测试内核进程(端口 27890)。新增统一的退出清理机制(`lifecycle.ts`),信号退出前同步清理
49
+ - **`clean` 模式降级** - `mihomo clean` 清理后重启时保留当前运行模式,TUN 用户不再被静默切回 Mixed
50
+ - **`sub web` 打开错误订阅** - 无参数时打开当前激活订阅,而非第一个添加的订阅
51
+ - **订阅更新间隔校验** - 机场返回非正数的 `profile-update-interval`(如 -1)时回退默认间隔,不再每次启动都重新下载
52
+ - **内核版本探测超时** - `getKernelVersion` 增加 5 秒超时,损坏的内核二进制不再导致命令永久卡死
53
+
54
+ ### 安全 / 健壮性
55
+
56
+ - **去除 shell 命令拼接** - 进程管理、内核解压等处的 `execSync` 字符串拼接全部改用 `spawnSync` 参数数组,消除路径注入风险
57
+ - **进程匹配精确化** - `pgrep` / `pkill -f` 的路径模式做正则转义,避免路径中的 `.` 被当作通配符误匹配/误杀其他进程
58
+ - **原子文件写入** - settings、订阅缓存、运行时配置改为「写临时文件 → 重命名」,避免写入中途崩溃导致文件损坏
59
+ - **settings 损坏备份** - `settings.json` 解析失败时自动备份为 `.bak`,避免被默认值覆盖丢失
60
+ - **其他** - `formatBytes` 处理 `Infinity`;`isProxyValid` 兼容 SS2022 base64url 密钥;`ui` / `dir open` 防原型链属性;内核归档目录递归加深度限制
61
+
62
+ ---
63
+
3
64
  ## [2.9.0] - 2026-05-13
4
65
 
5
66
  ### 新功能
package/README.md CHANGED
@@ -190,7 +190,6 @@ mihomo kernel --mirror-all hk.gh-proxy.org
190
190
  | `gh-proxy.org` | 官方 |
191
191
  | `hk.gh-proxy.org` | 香港 |
192
192
  | `cdn.gh-proxy.org` | CDN |
193
- | `edgeone.gh-proxy.org` | EdgeOne |
194
193
 
195
194
  ## 订阅自动更新
196
195