mihomo-cli 1.2.5 → 1.3.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,38 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.0] - 2026-04-07
4
+
5
+ ### 架构重构
6
+
7
+ - **代码组织优化**:将 `index.js` 中的业务函数迁移到对应模块,职责更清晰
8
+ - `getActiveSubscription`, `findSubscriptionFuzzy`, `pickSingleSubscription` → `subscription.js`
9
+ - `parseMirrorArg`, `normalizeMirrorUrl` → `utils.js`
10
+ - `openLogFile`, `viewLogWithTail` → `process.js`
11
+ - `DIRECTORY_TARGETS` → `config.js`
12
+
13
+ ### 代码质量
14
+
15
+ - **统一 HTTP 客户端**:在 `utils.js` 中添加 `createHttpClient()` 函数,统一 `User-Agent` 为 `mihomo-cli/${VERSION}`
16
+ - **常量提取**:将硬编码的超时、等待时间等提取为命名常量
17
+ - `PROCESS_WAIT_ATTEMPTS`, `PROCESS_WAIT_INTERVAL`
18
+ - `STARTUP_WAIT_MS`, `SUDO_TIMEOUT_MS`, `TUN_MODE_POST_WAIT_MS`
19
+ - `DEFAULT_LOG_RETENTION_DAYS`
20
+ - `KERNEL_HTTP_TIMEOUT`, `KERNEL_MAX_CONTENT_LENGTH`, `KERNEL_DOWNLOAD_TIMEOUT`
21
+
22
+ ### 开发工具链
23
+
24
+ - **ESLint**:配置 ESLint v10 + `@eslint/js` + `globals`,自动检测未使用变量/导入
25
+ - **Husky**:配置 Git hooks
26
+ - **lint-staged**:提交前自动运行 `eslint --fix` + `prettier --write`
27
+ - **Import 风格统一**:所有文件统一使用「内置模块 → 第三方模块 → 本地模块」的分组顺序和空行
28
+
29
+ ### 清理
30
+
31
+ - 移除未使用的变量导入
32
+ - 未使用的 catch 错误变量统一使用 `_e` 前缀
33
+
34
+ ---
35
+
3
36
  ## [1.2.5] - 2026-04-07
4
37
 
5
38
  ### 新增功能
@@ -82,6 +115,7 @@
82
115
  ### 新增功能
83
116
 
84
117
  #### 配置变更自动重启
118
+
85
119
  - **sub use 自动重启**:切换默认订阅后,如果 mihomo 正在运行则自动重启
86
120
  - **ow on/off 自动重启**:启用/禁用覆写配置后,如果 mihomo 正在运行则自动重启
87
121
  - **状态检查**:操作前检查是否已是目标状态,避免重复操作
@@ -89,6 +123,7 @@
89
123
  ### 重构
90
124
 
91
125
  #### 命名规范统一
126
+
92
127
  - **函数重命名**:统一使用全称单数
93
128
  - `findSubsFuzzy` → `findSubscriptionFuzzy`
94
129
  - `pickSingleSub` → `pickSingleSubscription`
@@ -111,6 +146,7 @@
111
146
  ### 新增功能
112
147
 
113
148
  #### 覆写配置
149
+
114
150
  - **覆写配置功能**:支持在订阅配置基础上进行自定义覆写
115
151
  - `ow` / `overwrite` 命令:
116
152
  - `ow` / `ow list`:查看覆写配置状态和文件列表
@@ -126,17 +162,20 @@
126
162
  ### 优化
127
163
 
128
164
  #### 输出格式
165
+
129
166
  - 统一输出格式,移除操作提示开头的 2 空格缩进
130
167
  - 操作结果和列表之间自动添加空行分隔
131
168
  - `start` 命令启动后自动显示完整状态信息
132
169
  - `sub` / `ow` 操作后自动刷新列表显示
133
170
 
134
171
  #### 文案统一
172
+
135
173
  - 节点显示统一为「组在前,节点在后」的格式:`16 组, 89 节点`
136
174
  - 统一「部分进程未终止」文案
137
175
  - 优化状态显示对齐(`PID` 单独多 1 空格对齐)
138
176
 
139
177
  #### 命令改进
178
+
140
179
  - `ow` 无参数时等同于 `ow list`
141
180
  - `sub` 无参数时等同于 `sub list`
142
181
  - 帮助文档中移除 `list` 子命令展示(无参即 list)
@@ -164,6 +203,7 @@
164
203
  ### 新增功能
165
204
 
166
205
  #### 订阅管理增强
206
+
167
207
  - **订阅信息解析**:自动解析 `subscription-userinfo` 响应头
168
208
  - 显示已用流量 / 总流量 / 到期时间
169
209
  - 从 `content-disposition` 提取用户名
@@ -185,6 +225,7 @@
185
225
  - **模糊匹配**:精确匹配 → 前缀匹配 → 包含匹配,多匹配时提示
186
226
 
187
227
  #### 日志管理
228
+
188
229
  - **日志轮转**:每次启动前自动归档当前日志
189
230
  - 命名格式:`mihomo.YYYY-MM-DD_HH-MM-SS.log`
190
231
  - **自动清理**:默认保留 7 天日志
@@ -196,6 +237,7 @@
196
237
  - `log -o`:用系统编辑器打开当前日志
197
238
 
198
239
  #### 内核更新增强
240
+
199
241
  - **镜像参数支持**:
200
242
  - `kernel hk.gh-proxy.org`:使用指定镜像
201
243
  - `kernel --mirror <url>`:显式指定镜像
@@ -207,12 +249,15 @@
207
249
  - 空字符串 `""` 或 `false` 表示禁用镜像
208
250
 
209
251
  #### 命令别名
252
+
210
253
  新增以下命令别名,任意一个均可调用:
254
+
211
255
  - `mihomo`
212
256
  - `mmc`
213
257
  - `mh`
214
258
 
215
259
  #### 启动流程改进
260
+
216
261
  - `start` 命令现在包含完整的重启/切换逻辑:
217
262
  - 先检查并自动更新过期订阅
218
263
  - 再完全停止现有进程(即使没进程也清理运行时文件)
@@ -221,6 +266,7 @@
221
266
  - **移除** `clean` 命令(`stop` 已包含清理)
222
267
 
223
268
  ### 改进
269
+
224
270
  - 配置模块 `parseYamlOrJson()`:统一的 YAML/JSON 解析
225
271
  - 订阅列表 `sub list` 显示:
226
272
  - 默认订阅标记 `[默认]`
@@ -233,6 +279,7 @@
233
279
  - 启动脚本日志改为追加模式 (`>>`) 而非覆盖
234
280
 
235
281
  ### 移除
282
+
236
283
  - 移除 `geodata` 相关功能:
237
284
  - `GEODATA_REPO`、`GEODATA_FILES` 常量
238
285
  - `downloadGeodata()` 函数
package/README.md CHANGED
@@ -112,7 +112,7 @@ mihomo ui yacd # YACD
112
112
  | 命令 | 说明 |
113
113
  | ----------------------------------- | ------------------------------------------------------- |
114
114
  | `mihomo kernel [镜像\|--no-mirror]` | 更新内核 |
115
- | `mihomo update` | 更新 mihomo-cli (npm install -g) |
115
+ | `mihomo update` | 更新 mihomo-cli (npm install -g) |
116
116
  | `mihomo ui [zash\|dash\|yacd]` | 打开 Web UI |
117
117
  | `mihomo dir` | 显示数据目录位置 |
118
118
  | `mihomo dir open [target]` | 打开指定目录(`root`, `subs`, `logs`, `overwrites` 等) |