@mison/wecom-cleaner 1.2.0 → 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/README.md CHANGED
@@ -27,6 +27,7 @@
27
27
  - [常用参数](#常用参数)
28
28
  - [数据与审计文件](#数据与审计文件)
29
29
  - [开发与质量门禁](#开发与质量门禁)
30
+ - [测试矩阵](#测试矩阵)
30
31
  - [发布与打包](#发布与打包)
31
32
  - [FAQ](#faq)
32
33
 
@@ -91,6 +92,15 @@
91
92
  - `doctor` 模式为只读体检:不会自动创建状态目录/回收区,也不会触发 Zig 自动修复下载。
92
93
  - 多实例并发默认加锁;检测到陈旧锁会优先自动恢复,异常场景可用 `--force` 兜底清理。
93
94
 
95
+ 7. 自主升级体系
96
+
97
+ - 启动后按“早/午/晚”三时段检查更新(默认开启)。
98
+ - 版本源优先 npmjs,失败自动回退 GitHub Release。
99
+ - 交互模式发现新版本时可直接选择升级方式:
100
+ - npm 升级(默认)
101
+ - GitHub 脚本升级
102
+ - 无交互模式仅提示不阻断任务执行。
103
+
94
104
  ## 能力边界
95
105
 
96
106
  企业微信会话数据库为私有/加密格式,当前无法稳定建立“会话名 -> 本地缓存目录”的强映射。
@@ -158,10 +168,10 @@ GitHub 备选方式(无 npm 包依赖):
158
168
  curl -fsSL https://raw.githubusercontent.com/MisonL/wecom-cleaner/main/scripts/install-skill.sh | bash
159
169
  ```
160
170
 
161
- 若需安装指定版本标签(例如 `v1.1.0`):
171
+ 若需安装指定版本标签(例如 `v1.3.0`):
162
172
 
163
173
  ```bash
164
- curl -fsSL https://raw.githubusercontent.com/MisonL/wecom-cleaner/main/scripts/install-skill.sh | bash -s -- --ref v1.1.0
174
+ curl -fsSL https://raw.githubusercontent.com/MisonL/wecom-cleaner/main/scripts/install-skill.sh | bash -s -- --ref v1.3.0
165
175
  ```
166
176
 
167
177
  Agent 侧统一任务入口脚本(位于 `skills/wecom-cleaner-agent/scripts/`):
@@ -172,6 +182,8 @@ Agent 侧统一任务入口脚本(位于 `skills/wecom-cleaner-agent/scripts/`
172
182
  - `restore_batch_report.sh`:批次恢复任务卡片
173
183
  - `recycle_maintain_report.sh`:回收区治理任务卡片
174
184
  - `doctor_report.sh`:系统自检任务卡片
185
+ - `check_update_report.sh`:检查更新任务卡片
186
+ - `upgrade_report.sh`:程序升级任务卡片(默认预演)
175
187
 
176
188
  ## 常用参数
177
189
 
@@ -190,6 +202,8 @@ Agent 侧统一任务入口脚本(位于 `skills/wecom-cleaner-agent/scripts/`
190
202
  - `--restore-batch <batchId>`
191
203
  - `--recycle-maintain`
192
204
  - `--doctor`
205
+ - `--check-update`
206
+ - `--upgrade <npm|github-script>`
193
207
 
194
208
  ### 无交互安全规则
195
209
 
@@ -229,6 +243,15 @@ wecom-cleaner --restore-batch 20260226-105009-ffa098 --conflict rename
229
243
 
230
244
  # 系统自检(默认 JSON 输出)
231
245
  wecom-cleaner --doctor
246
+
247
+ # 检查更新(不执行升级)
248
+ wecom-cleaner --check-update --output text
249
+
250
+ # 执行升级(npm 默认方式)
251
+ wecom-cleaner --upgrade npm --upgrade-yes
252
+
253
+ # 执行升级(GitHub 托管脚本方式)
254
+ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
232
255
  ```
233
256
 
234
257
  ### 输出与兼容参数
@@ -239,6 +262,9 @@ wecom-cleaner --doctor
239
262
  - `--save-config`:将本次全局配置参数写回 `config.json`。
240
263
  - `--help` / `-h`:输出命令帮助并退出。
241
264
  - `--version` / `-v`:输出版本号并退出。
265
+ - `--upgrade-channel stable|pre`:升级检查通道(稳定版/预发布)。
266
+ - `--upgrade-version <x.y.z>`:指定升级目标版本。
267
+ - `--upgrade-yes`:确认执行升级动作(无此参数将拒绝执行升级)。
242
268
 
243
269
  ### 各动作关键统计字段(JSON)
244
270
 
@@ -301,6 +327,23 @@ wecom-cleaner --doctor
301
327
  - `data.metrics`:账号数、回收区占用、外部存储等关键指标
302
328
  - `data.runtime`:运行时环境信息
303
329
 
330
+ #### `check-update`
331
+
332
+ - `summary.checked`:是否完成检查
333
+ - `summary.hasUpdate`:是否发现新版本
334
+ - `summary.currentVersion` / `latestVersion`
335
+ - `summary.source`:`npm` 或 `github`
336
+ - `summary.channel`:`stable` 或 `pre`
337
+ - `data.update`:检查详情(含 `errors`、`checkReason`、`checkedAt`)
338
+
339
+ #### `upgrade`
340
+
341
+ - `summary.executed`:是否执行了升级命令
342
+ - `summary.method`:`npm` 或 `github-script`
343
+ - `summary.targetVersion`:目标版本
344
+ - `summary.status`:升级命令退出码
345
+ - `data.upgrade.command`:实际执行命令
346
+
304
347
  ### 全局参数
305
348
 
306
349
  - `--root <path>`:Profile 根目录
@@ -326,6 +369,7 @@ wecom-cleaner --doctor
326
369
  - `WECOM_CLEANER_NATIVE_DOWNLOAD_TIMEOUT_MS=<ms>`:下载超时(默认 `15000`)
327
370
  - `WECOM_CLEANER_NATIVE_PROBE_TIMEOUT_MS=<ms>`:核心探针超时(默认 `3000`,最小 `500`)
328
371
  - `WECOM_CLEANER_EXTERNAL_AUTO_DETECT=true|false`:外部存储自动探测总开关
372
+ - `WECOM_CLEANER_AUTO_UPDATE=true|false`:自主升级自动检查总开关(默认 `true`)
329
373
 
330
374
  ## 数据与审计文件
331
375
 
@@ -384,19 +428,25 @@ npm run format:check
384
428
  发布前推荐全量门禁:
385
429
 
386
430
  ```bash
431
+ npm run format:check
387
432
  npm run check
388
433
  npm run test:coverage:check
389
- npm run format:check
434
+ npm run release:gate
390
435
  npm run e2e:smoke -- --keep
391
436
  npm run pack:tgz:dry-run
392
437
  ```
393
438
 
394
439
  当前基线(主分支):
395
440
 
396
- - 单元测试:`78/78` 通过。
397
- - 覆盖率:`statements 88.28%`,`branches 74.44%`,`functions 94.89%`,`lines 88.28%`。
441
+ - 单元测试:`100/100` 通过。
442
+ - 覆盖率:`statements 87.63%`,`branches 74.03%`,`functions 92.47%`,`lines 87.63%`。
398
443
  - 全菜单 smoke:通过(含恢复冲突分支与 doctor JSON 分支)。
399
444
 
445
+ ## 测试矩阵
446
+
447
+ - 场景矩阵与断言模板见:[`docs/TEST_MATRIX.md`](./docs/TEST_MATRIX.md)
448
+ - 新增动作或输出字段时,需同步更新矩阵并补对应测试。
449
+
400
450
  ## 发布与打包
401
451
 
402
452
  `prepack` 会自动执行:
@@ -423,26 +473,28 @@ npm run pack:tgz
423
473
 
424
474
  ```bash
425
475
  # 1) 发布前检查
476
+ npm run format:check
426
477
  npm run check
427
478
  npm run test:coverage:check
428
- npm run format:check
479
+ npm run release:gate
429
480
  npm run e2e:smoke
430
481
  npm run pack:tgz
431
482
  npm run pack:release-assets
432
483
 
433
484
  # 2) 推送主分支与标签
485
+ VERSION="1.3.0"
434
486
  git push origin main
435
- git tag v1.2.0
436
- git push origin v1.2.0
487
+ git tag "v${VERSION}"
488
+ git push origin "v${VERSION}"
437
489
 
438
490
  # 3) 发布 GitHub Release(附 npm 包 + 双架构核心附件)
439
- gh release create v1.2.0 \
440
- --title "v1.2.0" \
441
- --notes-file docs/releases/v1.2.0.md \
442
- wecom-cleaner-1.2.0.tgz \
443
- dist/release/wecom-cleaner-core-v1.2.0-darwin-x64 \
444
- dist/release/wecom-cleaner-core-v1.2.0-darwin-arm64 \
445
- dist/release/wecom-cleaner-core-v1.2.0-SHA256SUMS.txt
491
+ gh release create "v${VERSION}" \
492
+ --title "v${VERSION}" \
493
+ --notes-file "docs/releases/v${VERSION}.md" \
494
+ "wecom-cleaner-${VERSION}.tgz" \
495
+ "dist/release/wecom-cleaner-core-v${VERSION}-darwin-x64" \
496
+ "dist/release/wecom-cleaner-core-v${VERSION}-darwin-arm64" \
497
+ "dist/release/wecom-cleaner-core-v${VERSION}-SHA256SUMS.txt"
446
498
 
447
499
  # 4) 发布 npm
448
500
  npm publish --access public
@@ -20,6 +20,8 @@
20
20
  - `--restore-batch <batchId>`
21
21
  - `--recycle-maintain`
22
22
  - `--doctor`
23
+ - `--check-update`
24
+ - `--upgrade <npm|github-script>`
23
25
 
24
26
  若缺少动作或动作冲突,退出码为 `2`。
25
27
 
@@ -50,6 +52,7 @@ JSON 顶层字段:
50
52
  - `errors`:错误数组(`code`、`message`、可选路径字段)
51
53
  - `data`:动作明细数据
52
54
  - `meta`:元信息(版本、耗时、引擎、时间戳等)
55
+ - `data.userFacingSummary`:统一的用户侧结果摘要(范围 + 结果 + 关键分布)
53
56
 
54
57
  `cleanup_monthly` 常见 `summary` 字段:
55
58
 
@@ -164,6 +167,32 @@ JSON 顶层字段:
164
167
  - `metrics`:关键计数与容量
165
168
  - `runtime`:平台与运行时信息
166
169
 
170
+ `check_update` 常见 `summary` 字段:
171
+
172
+ - `checked`
173
+ - `hasUpdate`
174
+ - `currentVersion` / `latestVersion`
175
+ - `source`
176
+ - `channel`
177
+ - `skippedByUser`
178
+
179
+ `check_update` 的 `data`:
180
+
181
+ - `update`:更新检查详情(`checkedAt`、`checkReason`、`errors`、`upgradeMethods`)
182
+
183
+ `upgrade` 常见 `summary` 字段:
184
+
185
+ - `executed`
186
+ - `method`
187
+ - `targetVersion`
188
+ - `status`
189
+ - `command`
190
+
191
+ `upgrade` 的 `data`:
192
+
193
+ - `upgrade`:升级执行结果(stdout/stderr/exit status)
194
+ - `update`:升级前检查结果(若有)
195
+
167
196
  ## 5. 退出码
168
197
 
169
198
  - `0`:执行成功(含 dry-run 成功)
@@ -183,6 +212,9 @@ JSON 顶层字段:
183
212
  - `--interactive`:强制交互模式(与无交互动作参数互斥使用时,优先按交互模式执行)
184
213
  - `--force`:锁异常场景下强制清理并继续(兜底参数)
185
214
  - `--save-config`:把本次全局参数落盘到 `config.json`
215
+ - `--upgrade-channel <stable|pre>`:更新通道(稳定版/预发布)
216
+ - `--upgrade-version <x.y.z>`:升级到指定版本
217
+ - `--upgrade-yes`:确认执行升级(无此参数将拒绝执行升级)
186
218
 
187
219
  ## 7. 动作参数
188
220
 
@@ -234,6 +266,26 @@ JSON 顶层字段:
234
266
 
235
267
  - 无动作专属参数;只读执行,返回健康报告。
236
268
 
269
+ ### 7.7 `--check-update`
270
+
271
+ - `--upgrade-channel <stable|pre>`(可选,默认读取配置)
272
+
273
+ 说明:
274
+
275
+ - 手动触发版本检查,不执行升级动作。
276
+ - 检测优先 npm,失败自动回退 GitHub。
277
+
278
+ ### 7.8 `--upgrade <npm|github-script>`
279
+
280
+ - `--upgrade-version <x.y.z>`(可选;缺省时先检查更新并升级到最新)
281
+ - `--upgrade-channel <stable|pre>`(可选)
282
+ - `--upgrade-yes`(必填确认)
283
+
284
+ 说明:
285
+
286
+ - `npm`:执行 `npm i -g @mison/wecom-cleaner@<version>`
287
+ - `github-script`:执行 GitHub 托管脚本 `scripts/upgrade.sh`
288
+
237
289
  ## 8. 兼容参数
238
290
 
239
291
  - `--mode`:兼容旧调用,会映射到动作参数并附带 warning,建议迁移。
@@ -0,0 +1,110 @@
1
+ # 测试矩阵(稳定性与极端场景)
2
+
3
+ 本文用于约束 `wecom-cleaner` 在复杂组合场景与极端输入下的行为一致性,避免“看似成功但语义错误”。
4
+
5
+ ## 目标
6
+
7
+ - 覆盖高风险动作:年月清理、全量空间治理、恢复、回收区治理。
8
+ - 锁定无交互契约:JSON 字段兼容、退出码语义稳定、text 卡片结论可读。
9
+ - 验证边界安全:路径越界、符号链接逃逸、索引异常、权限失败、并发竞争。
10
+
11
+ ## 维度定义
12
+
13
+ ### 维度 A:入口
14
+
15
+ - 交互模式(TUI)
16
+ - 无交互 CLI(`--output json|text`)
17
+ - Agent 脚本(`skills/wecom-cleaner-agent/scripts/*.sh`)
18
+
19
+ ### 维度 B:动作
20
+
21
+ - `cleanup_monthly`
22
+ - `analysis_only`
23
+ - `space_governance`
24
+ - `restore`
25
+ - `recycle_maintain`
26
+ - `doctor`
27
+ - `check_update`
28
+ - `upgrade`
29
+
30
+ ### 维度 C:范围组合
31
+
32
+ - 账号:`current` / `all` / 指定 ID 集合
33
+ - 月份:显式 `--months` / `--cutoff-month` / 自动窗口
34
+ - 类别:默认 / 指定列表 / `all`
35
+ - 文件存储目录来源:`preset` / `configured` / `auto` / `all`
36
+
37
+ ### 维度 D:执行模式
38
+
39
+ - dry-run(预演)
40
+ - 真实执行(`--dry-run false --yes`)
41
+ - 真实执行后复核(同条件二次运行)
42
+
43
+ ### 维度 E:异常与边界
44
+
45
+ - 路径越界(`../`、绝对路径、非法根目录)
46
+ - 符号链接逃逸(raw 路径在根内,realpath 在根外)
47
+ - 索引异常(损坏行、批次根不一致、异常 `batchId`)
48
+ - 系统失败(`EACCES`、`ENOENT`、`ENOSPC`)
49
+ - 并发锁冲突与陈旧锁恢复
50
+
51
+ ### 维度 F:规模
52
+
53
+ - 小样本(< 50 目录)
54
+ - 中样本(50~500 目录)
55
+ - 大样本(> 500 目录,强调耗时与稳定性)
56
+
57
+ ## 关键断言模板(每个场景最少验证)
58
+
59
+ ### 1) 退出码
60
+
61
+ - `0`:动作完成(可含业务失败明细)
62
+ - `2`:参数/用法错误
63
+ - `3`:真实执行缺少 `--yes`
64
+
65
+ ### 2) JSON 契约(无交互)
66
+
67
+ 必须存在且类型稳定:
68
+
69
+ - `ok: boolean`
70
+ - `action: string`
71
+ - `dryRun: boolean | null`
72
+ - `summary: object`
73
+ - `warnings: array`
74
+ - `errors: array`
75
+ - `meta.durationMs: number`
76
+ - `meta.engine: string`
77
+
78
+ ### 3) 业务语义
79
+
80
+ - dry-run 不修改源目录
81
+ - 真实执行删除采用“移动到回收区”,可按批次恢复
82
+ - 无目标场景不得生成真实批次(或写入误导性“成功删除”)
83
+ - 部分失败时必须可见失败统计与错误明细
84
+
85
+ ### 4) 审计一致性
86
+
87
+ - `index.jsonl` 记录动作、状态、路径、错误类型
88
+ - 越界/异常路径必须落审计(`error_type=PATH_VALIDATION_FAILED`)
89
+ - 回收区治理异常批次不得触发越界删除
90
+
91
+ ## 最小必跑清单(回归基线)
92
+
93
+ 1. `cleanup_monthly`:`--cutoff-month` + `--output json` + dry-run(有目标 / 无目标)
94
+ 2. `cleanup_monthly`:真实执行 + 复核(复核命中应下降或归零)
95
+ 3. `space_governance`:`suggested-only` 与 `allow-recent-active` 组合
96
+ 4. `restore`:`skip/overwrite/rename` 三冲突策略
97
+ 5. `recycle_maintain`:`disabled` / `no_candidate` / `partial_failed`
98
+ 6. `doctor`:只读模式不创建状态目录
99
+ 7. `check_update`:npm 正常 / npm 失败回退 GitHub / 全部失败
100
+ 8. `upgrade`:未确认拒绝、已是最新不执行、执行失败可返回非 0
101
+ 9. Agent 报告脚本:成功、无目标、失败三态退出码与卡片完整性
102
+
103
+ ## 当前门禁(执行顺序)
104
+
105
+ 1. `npm run check`
106
+ 2. `npm run test:coverage:check`
107
+ 3. `shellcheck skills/wecom-cleaner-agent/scripts/*.sh scripts/upgrade.sh scripts/install-skill.sh scripts/release-gate.sh`
108
+ 4. `npm run e2e:smoke`
109
+
110
+ 说明:若新增动作/字段,需先补此文档矩阵与断言,再提交实现。
@@ -0,0 +1,33 @@
1
+ # v1.2.1 发布说明
2
+
3
+ 发布日期:2026-02-26
4
+
5
+ ## 亮点
6
+
7
+ - 发布流程新增一键门禁:`npm run release:gate`,统一覆盖格式检查、语法检查、覆盖率门禁、Shell 脚本静态检查、E2E smoke 与打包预演。
8
+ - 回收区治理安全性进一步增强:新增 `realpath` 级边界校验,拦截符号链接越界路径。
9
+ - Agent 无交互脚本失败语义加固:失败时稳定返回非 0 退出码并输出可读错误原因,避免自动化误判成功。
10
+
11
+ ## 重要修复
12
+
13
+ - 修复回收区治理的符号链接逃逸风险(`recycle_path_symlink_escape` / `batch_root_symlink_escape` 等)。
14
+ - 修复 `recycle_maintain` 业务失败场景下无交互契约测试断言,确保“退出码 + JSON 输出”语义一致。
15
+ - 修复报告脚本在 `set -u` 下错误分支变量展开异常,避免失败被错误吞掉。
16
+
17
+ ## 质量状态
18
+
19
+ - 发布门禁:全部通过。
20
+ - 单元测试:`91/91` 通过。
21
+ - 覆盖率(门禁):
22
+ - statements:`88.49%`
23
+ - branches:`75.01%`
24
+ - functions:`95.02%`
25
+ - lines:`88.49%`
26
+
27
+ ## 资产
28
+
29
+ - npm 包:`wecom-cleaner-1.2.1.tgz`
30
+ - GitHub Release 附件:
31
+ - `wecom-cleaner-core-v1.2.1-darwin-x64`
32
+ - `wecom-cleaner-core-v1.2.1-darwin-arm64`
33
+ - `wecom-cleaner-core-v1.2.1-SHA256SUMS.txt`
@@ -0,0 +1,45 @@
1
+ # v1.3.0 发布说明
2
+
3
+ 发布日期:2026-02-27
4
+
5
+ ## 亮点
6
+
7
+ - 新增自主升级体系:支持检查更新、交互升级提示与双通道升级(npm / GitHub 脚本)。
8
+ - 升级检查默认按“早/午/晚”三时段执行,减少重复打扰并保持版本新鲜度。
9
+ - 无交互模式新增 `check_update` / `upgrade` 动作,适配 AI Agent 自动化流程。
10
+
11
+ ## 主要变更
12
+
13
+ - 新增 `src/updater.js`:
14
+ - SemVer 比较与通道过滤(`stable` / `pre`)
15
+ - npm 优先、GitHub 回退的版本检查
16
+ - 升级命令执行与状态结构化
17
+ - `wecom-cleaner-agent` 技能适配升级能力:
18
+ - 新增 `check_update_report.sh`(更新检查任务卡片)
19
+ - 新增 `upgrade_report.sh`(升级预演/执行任务卡片)
20
+ - `src/cli.js` 接入升级全流程:
21
+ - 无交互:`--check-update`、`--upgrade`
22
+ - 交互:发现新版本后可选择升级方式、稍后提醒或跳过该版本
23
+ - `src/config.js`/`src/doctor.js` 增强:
24
+ - 持久化 `selfUpdate` 配置
25
+ - doctor 新增升级配置检查项
26
+
27
+ ## 质量与修复
28
+
29
+ - 修复 `scripts/install-skill.sh` 的 shellcheck 告警(SC2088)。
30
+ - 修复 E2E start menu 用例与新增菜单项不一致的问题。
31
+ - 修复 Zig `--ping` 返回版本与应用版本不一致的问题。
32
+ - 发布门禁通过:`npm run release:gate`(含覆盖率门禁、shellcheck、e2e smoke、打包预演)。
33
+
34
+ ## 资产
35
+
36
+ - npm 包:`wecom-cleaner-1.3.0.tgz`
37
+ - GitHub Release 附件:
38
+ - `wecom-cleaner-core-v1.3.0-darwin-x64`
39
+ - `wecom-cleaner-core-v1.3.0-darwin-arm64`
40
+ - `wecom-cleaner-core-v1.3.0-SHA256SUMS.txt`
41
+
42
+ SHA256:
43
+
44
+ - `1ea550528055b97e26a76de7d33ca7c445f7dcedf36b21c0cfe1ef7e0f9841bf` `wecom-cleaner-core-v1.3.0-darwin-x64`
45
+ - `2819be9b6108435d94f9a6f5cd0f4e219c335925239366f76fe8a22da023a736` `wecom-cleaner-core-v1.3.0-darwin-arm64`
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "targets": {
5
5
  "darwin-x64": {
6
6
  "binaryName": "wecom-cleaner-core",
7
- "sha256": "c703a8bdb6df39df776c6a3ab28b3553916d487cf7c38612989566b4ecea34c9",
8
- "url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.2.0/wecom-cleaner-core-v1.2.0-darwin-x64"
7
+ "sha256": "1ea550528055b97e26a76de7d33ca7c445f7dcedf36b21c0cfe1ef7e0f9841bf",
8
+ "url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.3.0/wecom-cleaner-core-v1.3.0-darwin-x64"
9
9
  },
10
10
  "darwin-arm64": {
11
11
  "binaryName": "wecom-cleaner-core",
12
- "sha256": "8d0a15efcb70a266e15c752212f15570c006a931681249d6cd41a1c438941f72",
13
- "url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.2.0/wecom-cleaner-core-v1.2.0-darwin-arm64"
12
+ "sha256": "2819be9b6108435d94f9a6f5cd0f4e219c335925239366f76fe8a22da023a736",
13
+ "url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.3.0/wecom-cleaner-core-v1.3.0-darwin-arm64"
14
14
  }
15
15
  }
16
16
  }
@@ -57,7 +57,7 @@ fn dirTreeSize(dir: *std.fs.Dir) !u64 {
57
57
  }
58
58
 
59
59
  fn printPing(writer: *std.Io.Writer) !void {
60
- try writer.writeAll("{\"ok\":true,\"engine\":\"zig\",\"version\":\"1.1.0\"}\n");
60
+ try writer.writeAll("{\"ok\":true,\"engine\":\"zig\",\"version\":\"1.3.0\"}\n");
61
61
  }
62
62
 
63
63
  fn runDu(args: []const []const u8, writer: *std.Io.Writer) !void {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mison/wecom-cleaner",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "企业微信本地聊天缓存清理工具(交互式 CLI/TUI)",
5
5
  "author": "MisonL",
6
6
  "license": "MIT",
@@ -43,6 +43,7 @@
43
43
  "format:check": "prettier --check .",
44
44
  "check": "node --check src/*.js",
45
45
  "e2e:smoke": "bash scripts/e2e-smoke.sh",
46
+ "release:gate": "bash scripts/release-gate.sh",
46
47
  "prepack": "npm run build:native:release && npm run check",
47
48
  "pack:tgz": "node scripts/pack-tgz.js",
48
49
  "pack:tgz:dry-run": "node scripts/pack-tgz.js --dry-run",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: wecom-cleaner-agent
3
- description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当任务涉及企业微信缓存盘点、年月清理、全量空间治理、批次恢复、回收区治理或系统自检,并要求高效执行与结构化反馈时触发。
3
+ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当任务涉及企业微信缓存盘点、年月清理、全量空间治理、批次恢复、回收区治理、系统自检、检查更新或程序升级,并要求高效执行与结构化反馈时触发。
4
4
  ---
5
5
 
6
6
  # wecom-cleaner-agent
@@ -16,9 +16,10 @@ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当
16
16
  1. 全程只用无交互命令(禁止直接运行 `wecom-cleaner` 进入 TUI)。
17
17
  2. 优先脚本入口,禁止手写三步命令流(除非脚本失败或缺失)。
18
18
  3. 破坏性动作(清理/治理/恢复/回收区治理)默认预演;真实执行必须有明确授权。
19
- 4. 若预演命中为 `0`,必须结束并说明“无需执行”,不得继续真实执行。
20
- 5. 最终汇报必须是中文用户视角,先结论再细节,并解释关键指标含义。
21
- 6. 禁止在终端回显完整 JSON;只输出人类可读摘要。
19
+ 4. 升级动作默认只做检查或预演(`--execute false`);真实升级必须有明确授权。
20
+ 5. 若预演命中为 `0`,必须结束并说明“无需执行”,不得继续真实执行。
21
+ 6. 最终汇报必须是中文用户视角,先结论再细节,并解释关键指标含义。
22
+ 7. 禁止在终端回显完整 JSON;只输出人类可读摘要。
22
23
 
23
24
  ## 动作到脚本映射(必须)
24
25
 
@@ -28,6 +29,8 @@ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当
28
29
  - 恢复已删除批次:`scripts/restore_batch_report.sh`
29
30
  - 回收区治理:`scripts/recycle_maintain_report.sh`
30
31
  - 系统自检:`scripts/doctor_report.sh`
32
+ - 检查更新:`scripts/check_update_report.sh`
33
+ - 程序升级:`scripts/upgrade_report.sh`
31
34
 
32
35
  调用顺序:
33
36
 
@@ -37,9 +40,10 @@ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当
37
40
 
38
41
  ## 脚本调用约定
39
42
 
40
- - 默认 `--execute false`(仅预演)。
43
+ - 默认 `--execute false`(仅预演 / 不落地)。
41
44
  - 用户明确“现在执行/开始清理/确认执行”时才传 `--execute true`。
42
45
  - 破坏性动作脚本内部会做:预演 ->(可选)真实执行 ->(可选)复核。
46
+ - 升级脚本默认“检查 + 预演”;只有明确授权才执行真实升级。
43
47
 
44
48
  推荐参数:
45
49
 
@@ -1,5 +1,5 @@
1
1
  interface:
2
2
  display_name: 'WeCom Cleaner Agent'
3
3
  short_description: '面向AI Agent的企业微信缓存清理与恢复无交互执行技能'
4
- default_prompt: '请使用 $wecom-cleaner-agent 执行任务:按用户意图自动选择 scripts/ 下对应报告脚本(cleanup/analysis/space/restore/recycle/doctor),优先输出中文用户任务卡片;仅在脚本不可用时回退 wecom-cleaner --output json。'
4
+ default_prompt: '请使用 $wecom-cleaner-agent 执行任务:按用户意图自动选择 scripts/ 下对应报告脚本(cleanup/analysis/space/restore/recycle/doctor/check-update/upgrade),优先输出中文用户任务卡片;仅在脚本不可用时回退 wecom-cleaner --output json。'
5
5
  brand_color: '#0EA5E9'
@@ -44,6 +44,23 @@ bash scripts/recycle_maintain_report.sh --execute true
44
44
  bash scripts/doctor_report.sh
45
45
  ```
46
46
 
47
+ ### 1.7 检查更新(只读)
48
+
49
+ ```bash
50
+ bash scripts/check_update_report.sh --channel stable
51
+ ```
52
+
53
+ ### 1.8 程序升级
54
+
55
+ ```bash
56
+ # 默认仅预演(不执行真实升级)
57
+ bash scripts/upgrade_report.sh --method npm --execute false
58
+
59
+ # 明确授权后执行真实升级
60
+ bash scripts/upgrade_report.sh --method npm --execute true
61
+ bash scripts/upgrade_report.sh --method github-script --version 1.3.0 --execute true
62
+ ```
63
+
47
64
  ## 2. 常用全局参数
48
65
 
49
66
  以上脚本都支持透传关键参数(按动作有所不同):
@@ -80,6 +97,13 @@ wecom-cleaner --recycle-maintain --output json
80
97
 
81
98
  # 系统自检
82
99
  wecom-cleaner --doctor --output json
100
+
101
+ # 检查更新
102
+ wecom-cleaner --check-update --output json
103
+
104
+ # 程序升级(必须带 --upgrade-yes)
105
+ wecom-cleaner --upgrade npm --upgrade-yes --output json
106
+ wecom-cleaner --upgrade github-script --upgrade-version 1.3.0 --upgrade-yes --output json
83
107
  ```
84
108
 
85
109
  ## 4. 退出码约定