@mison/wecom-cleaner 1.3.0 → 1.3.3
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 +45 -7
- package/docs/IMPLEMENTATION_PLAN.md +6 -6
- package/docs/NON_INTERACTIVE_SPEC.md +59 -0
- package/docs/TEST_MATRIX.md +17 -10
- package/docs/releases/v1.3.1.md +31 -0
- package/docs/releases/v1.3.2.md +38 -0
- package/docs/releases/v1.3.3.md +32 -0
- package/native/bin/darwin-arm64/wecom-cleaner-core +0 -0
- package/native/bin/darwin-x64/wecom-cleaner-core +0 -0
- package/native/manifest.json +5 -5
- package/native/zig/build.sh +3 -0
- package/native/zig/src/main.zig +2 -1
- package/native/zig/src/version.zig +1 -0
- package/package.json +2 -1
- package/skills/wecom-cleaner-agent/SKILL.md +10 -4
- package/skills/wecom-cleaner-agent/agents/openai.yaml +1 -1
- package/skills/wecom-cleaner-agent/references/commands.md +47 -11
- package/skills/wecom-cleaner-agent/scripts/check_update_report.sh +15 -0
- package/skills/wecom-cleaner-agent/scripts/cleanup_monthly_report.sh +37 -53
- package/skills/wecom-cleaner-agent/scripts/doctor_report.sh +3 -0
- package/skills/wecom-cleaner-agent/scripts/recycle_maintain_report.sh +39 -53
- package/skills/wecom-cleaner-agent/scripts/restore_batch_report.sh +34 -39
- package/skills/wecom-cleaner-agent/scripts/space_governance_report.sh +34 -49
- package/skills/wecom-cleaner-agent/scripts/upgrade_report.sh +15 -0
- package/skills/wecom-cleaner-agent/version.json +6 -0
- package/src/cli.js +1395 -28
- package/src/config.js +35 -0
- package/src/constants.js +1 -0
- package/src/doctor.js +41 -0
- package/src/skill-cli.js +111 -4
- package/src/skill-installer.js +204 -1
- package/src/updater.js +106 -3
package/README.md
CHANGED
|
@@ -96,10 +96,12 @@
|
|
|
96
96
|
|
|
97
97
|
- 启动后按“早/午/晚”三时段检查更新(默认开启)。
|
|
98
98
|
- 版本源优先 npmjs,失败自动回退 GitHub Release。
|
|
99
|
+
- 检查更新会同时校验 Agent skills 是否与主程序版本匹配。
|
|
99
100
|
- 交互模式发现新版本时可直接选择升级方式:
|
|
100
101
|
- npm 升级(默认)
|
|
101
102
|
- GitHub 脚本升级
|
|
102
|
-
-
|
|
103
|
+
- 程序升级完成后默认联动同步 skills,避免“程序已升级但 skills 仍旧版”。
|
|
104
|
+
- 无交互模式可用 `--sync-skills` 单独修复 skills 版本绑定。
|
|
103
105
|
|
|
104
106
|
## 能力边界
|
|
105
107
|
|
|
@@ -154,12 +156,16 @@ npx --yes --package=@mison/wecom-cleaner wecom-cleaner-skill install
|
|
|
154
156
|
- `--target <dir>`:自定义安装目录(默认 `$CODEX_HOME/skills` 或 `~/.codex/skills`)
|
|
155
157
|
- `--force`:覆盖已存在技能目录
|
|
156
158
|
- `--dry-run`:仅预演,不落盘
|
|
159
|
+
- `status` 子命令:检查 skills 与主程序版本是否匹配
|
|
160
|
+
- `sync` 子命令:等价 `install --force`,用于升级 skills
|
|
157
161
|
|
|
158
162
|
示例:
|
|
159
163
|
|
|
160
164
|
```bash
|
|
161
165
|
npx --yes --package=@mison/wecom-cleaner wecom-cleaner-skill install --force
|
|
162
166
|
npx --yes --package=@mison/wecom-cleaner wecom-cleaner-skill install --target ~/.codex/skills
|
|
167
|
+
npx --yes --package=@mison/wecom-cleaner wecom-cleaner-skill status --json
|
|
168
|
+
npx --yes --package=@mison/wecom-cleaner wecom-cleaner-skill sync
|
|
163
169
|
```
|
|
164
170
|
|
|
165
171
|
GitHub 备选方式(无 npm 包依赖):
|
|
@@ -168,10 +174,10 @@ GitHub 备选方式(无 npm 包依赖):
|
|
|
168
174
|
curl -fsSL https://raw.githubusercontent.com/MisonL/wecom-cleaner/main/scripts/install-skill.sh | bash
|
|
169
175
|
```
|
|
170
176
|
|
|
171
|
-
若需安装指定版本标签(例如 `v1.3.
|
|
177
|
+
若需安装指定版本标签(例如 `v1.3.3`):
|
|
172
178
|
|
|
173
179
|
```bash
|
|
174
|
-
curl -fsSL https://raw.githubusercontent.com/MisonL/wecom-cleaner/main/scripts/install-skill.sh | bash -s -- --ref v1.3.
|
|
180
|
+
curl -fsSL https://raw.githubusercontent.com/MisonL/wecom-cleaner/main/scripts/install-skill.sh | bash -s -- --ref v1.3.3
|
|
175
181
|
```
|
|
176
182
|
|
|
177
183
|
Agent 侧统一任务入口脚本(位于 `skills/wecom-cleaner-agent/scripts/`):
|
|
@@ -204,6 +210,7 @@ Agent 侧统一任务入口脚本(位于 `skills/wecom-cleaner-agent/scripts/`
|
|
|
204
210
|
- `--doctor`
|
|
205
211
|
- `--check-update`
|
|
206
212
|
- `--upgrade <npm|github-script>`
|
|
213
|
+
- `--sync-skills`
|
|
207
214
|
|
|
208
215
|
### 无交互安全规则
|
|
209
216
|
|
|
@@ -238,6 +245,9 @@ wecom-cleaner --space-governance \
|
|
|
238
245
|
# 回收区治理(按策略执行)
|
|
239
246
|
wecom-cleaner --recycle-maintain --dry-run false --yes
|
|
240
247
|
|
|
248
|
+
# 年月清理(三阶段协议:预演 -> 执行 -> 复核)
|
|
249
|
+
wecom-cleaner --cleanup-monthly --accounts all --cutoff-month 2024-04 --run-task preview-execute-verify --yes
|
|
250
|
+
|
|
241
251
|
# 批次恢复(冲突策略:重命名)
|
|
242
252
|
wecom-cleaner --restore-batch 20260226-105009-ffa098 --conflict rename
|
|
243
253
|
|
|
@@ -251,13 +261,18 @@ wecom-cleaner --check-update --output text
|
|
|
251
261
|
wecom-cleaner --upgrade npm --upgrade-yes
|
|
252
262
|
|
|
253
263
|
# 执行升级(GitHub 托管脚本方式)
|
|
254
|
-
wecom-cleaner --upgrade github-script --upgrade-version 1.3.
|
|
264
|
+
wecom-cleaner --upgrade github-script --upgrade-version 1.3.3 --upgrade-yes
|
|
265
|
+
|
|
266
|
+
# 单独同步 skills(修复版本不匹配)
|
|
267
|
+
wecom-cleaner --sync-skills --skill-sync-method npm --dry-run false
|
|
255
268
|
```
|
|
256
269
|
|
|
257
270
|
### 输出与兼容参数
|
|
258
271
|
|
|
259
272
|
- `--output json|text`:无交互输出格式,默认 `json`。
|
|
260
273
|
- `--json`:兼容别名,等价于 `--output json`。
|
|
274
|
+
- `--run-task preview|execute|preview-execute-verify`:阶段任务协议(推荐给 Agent)。
|
|
275
|
+
- `--scan-debug off|summary|full`:扫描诊断信息输出等级。
|
|
261
276
|
- `--mode`:兼容参数,建议迁移到动作参数(如 `--cleanup-monthly`)。
|
|
262
277
|
- `--save-config`:将本次全局配置参数写回 `config.json`。
|
|
263
278
|
- `--help` / `-h`:输出命令帮助并退出。
|
|
@@ -265,6 +280,9 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
|
|
|
265
280
|
- `--upgrade-channel stable|pre`:升级检查通道(稳定版/预发布)。
|
|
266
281
|
- `--upgrade-version <x.y.z>`:指定升级目标版本。
|
|
267
282
|
- `--upgrade-yes`:确认执行升级动作(无此参数将拒绝执行升级)。
|
|
283
|
+
- `--upgrade-sync-skills true|false`:升级后是否联动同步 skills(默认 `true`)。
|
|
284
|
+
- `--skill-sync-method npm|github-script`:skills 同步方式(默认 `npm`)。
|
|
285
|
+
- `--skill-sync-ref <x.y.z>`:skills 同步版本标签(通常与程序版本一致)。
|
|
268
286
|
|
|
269
287
|
### 各动作关键统计字段(JSON)
|
|
270
288
|
|
|
@@ -280,6 +298,7 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
|
|
|
280
298
|
- `summary.rootPathCount`:涉及的清理根目录数量
|
|
281
299
|
- `summary.accountCount` / `monthCount` / `categoryCount` / `externalRootCount`
|
|
282
300
|
- `summary.cutoffMonth`:截止月份(当使用 `--cutoff-month` 时)
|
|
301
|
+
- `summary.runTaskMode` / `summary.taskDecision`:阶段协议模式与决策(仅 `--run-task`)
|
|
283
302
|
|
|
284
303
|
`cleanup-monthly` 还会在 `data.report` 中返回可展示明细:
|
|
285
304
|
|
|
@@ -288,6 +307,9 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
|
|
|
288
307
|
- `data.report.matched.rootStats`:按根目录统计(条目数、体积)
|
|
289
308
|
- `data.report.matched.topPaths`:按体积 Top 路径样例
|
|
290
309
|
- `data.report.executed.byCategory/byMonth/byRoot`:真实执行落地统计(成功/跳过/失败 + 体积)
|
|
310
|
+
- `data.taskPhases`:阶段执行明细(预演/执行/复核)
|
|
311
|
+
- `data.taskCard`:面向用户的任务卡片聚合结果
|
|
312
|
+
- `data.scanDebug`:扫描诊断(当 `--scan-debug summary|full`)
|
|
291
313
|
|
|
292
314
|
#### `analysis-only`
|
|
293
315
|
|
|
@@ -334,7 +356,10 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
|
|
|
334
356
|
- `summary.currentVersion` / `latestVersion`
|
|
335
357
|
- `summary.source`:`npm` 或 `github`
|
|
336
358
|
- `summary.channel`:`stable` 或 `pre`
|
|
359
|
+
- `summary.skillsStatus` / `summary.skillsMatched`
|
|
360
|
+
- `summary.skillsInstalledVersion` / `summary.skillsBoundAppVersion`
|
|
337
361
|
- `data.update`:检查详情(含 `errors`、`checkReason`、`checkedAt`)
|
|
362
|
+
- `data.skills`:skills 绑定详情(状态、目录、建议)
|
|
338
363
|
|
|
339
364
|
#### `upgrade`
|
|
340
365
|
|
|
@@ -343,6 +368,17 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
|
|
|
343
368
|
- `summary.targetVersion`:目标版本
|
|
344
369
|
- `summary.status`:升级命令退出码
|
|
345
370
|
- `data.upgrade.command`:实际执行命令
|
|
371
|
+
- `summary.skillSyncStatus` / `summary.skillSyncMethod` / `summary.skillSyncTargetVersion`
|
|
372
|
+
- `summary.skillsStatusBefore` / `summary.skillsStatusAfter`
|
|
373
|
+
- `data.skillSync`:skills 同步命令结果
|
|
374
|
+
|
|
375
|
+
#### `sync-skills`
|
|
376
|
+
|
|
377
|
+
- `summary.method`:skills 同步方式(`npm` / `github-script`)
|
|
378
|
+
- `summary.status`:`dry_run` / `synced` / `failed` / `mismatch_after_sync`
|
|
379
|
+
- `summary.skillsStatusBefore` / `summary.skillsStatusAfter`
|
|
380
|
+
- `data.before` / `data.after`:同步前后 skills 绑定详情
|
|
381
|
+
- `data.skillSync`:执行命令与退出码
|
|
346
382
|
|
|
347
383
|
### 全局参数
|
|
348
384
|
|
|
@@ -355,6 +391,8 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.1 --upgrade-yes
|
|
|
355
391
|
- `--theme <auto|light|dark>`:Logo 主题
|
|
356
392
|
- `--interactive`:即使携带参数也进入交互流程(可配合 `--mode`)
|
|
357
393
|
- `--force`:锁异常场景下强制清理并继续(兜底参数,通常无需)
|
|
394
|
+
- `--run-task preview|execute|preview-execute-verify`:阶段任务协议(推荐无交互自动化调用)
|
|
395
|
+
- `--scan-debug off|summary|full`:附加扫描诊断信息
|
|
358
396
|
|
|
359
397
|
### `--theme` 可选值
|
|
360
398
|
|
|
@@ -438,8 +476,8 @@ npm run pack:tgz:dry-run
|
|
|
438
476
|
|
|
439
477
|
当前基线(主分支):
|
|
440
478
|
|
|
441
|
-
- 单元测试:`
|
|
442
|
-
- 覆盖率:`statements 87.
|
|
479
|
+
- 单元测试:`107/107` 通过。
|
|
480
|
+
- 覆盖率:`statements 87.66%`,`branches 74.38%`,`functions 92.47%`,`lines 87.66%`。
|
|
443
481
|
- 全菜单 smoke:通过(含恢复冲突分支与 doctor JSON 分支)。
|
|
444
482
|
|
|
445
483
|
## 测试矩阵
|
|
@@ -482,7 +520,7 @@ npm run pack:tgz
|
|
|
482
520
|
npm run pack:release-assets
|
|
483
521
|
|
|
484
522
|
# 2) 推送主分支与标签
|
|
485
|
-
VERSION="1.3.
|
|
523
|
+
VERSION="1.3.3"
|
|
486
524
|
git push origin main
|
|
487
525
|
git tag "v${VERSION}"
|
|
488
526
|
git push origin "v${VERSION}"
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
- 使用 `c8` 输出覆盖率报告。
|
|
123
123
|
- 门禁阈值:`lines/statements >= 75%`,`functions >= 80%`,`branches >= 60%`。
|
|
124
124
|
- 命令:`npm run test:coverage` / `npm run test:coverage:check`。
|
|
125
|
-
- `v1.
|
|
125
|
+
- `v1.3.2` 基线:`statements 87.66%`,`branches 74.38%`,`functions 92.47%`,`lines 87.66%`。
|
|
126
126
|
|
|
127
127
|
4. 端到端回归
|
|
128
128
|
|
|
@@ -142,17 +142,17 @@ npm run pack:tgz:dry-run
|
|
|
142
142
|
|
|
143
143
|
1. 版本与产物
|
|
144
144
|
|
|
145
|
-
- `package.json` / `package-lock.json`:`1.
|
|
146
|
-
- `native/manifest.json`:版本与 `baseUrl`
|
|
145
|
+
- `package.json` / `package-lock.json`:`1.3.2`
|
|
146
|
+
- `native/manifest.json`:版本与 `baseUrl` 对齐当前发布标签
|
|
147
147
|
- 默认打包双架构核心:`darwin-x64` + `darwin-arm64`
|
|
148
148
|
|
|
149
149
|
2. GitHub Release
|
|
150
150
|
|
|
151
151
|
```bash
|
|
152
152
|
git push origin main
|
|
153
|
-
git tag v1.
|
|
154
|
-
git push origin v1.
|
|
155
|
-
gh release create v1.
|
|
153
|
+
git tag v1.3.2
|
|
154
|
+
git push origin v1.3.2
|
|
155
|
+
gh release create v1.3.2 --title "v1.3.2" --notes-file docs/releases/v1.3.2.md wecom-cleaner-1.3.2.tgz
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
3. npm 发布
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
- `--doctor`
|
|
23
23
|
- `--check-update`
|
|
24
24
|
- `--upgrade <npm|github-script>`
|
|
25
|
+
- `--sync-skills`
|
|
25
26
|
|
|
26
27
|
若缺少动作或动作冲突,退出码为 `2`。
|
|
27
28
|
|
|
@@ -34,6 +35,10 @@
|
|
|
34
35
|
- 默认 `dry-run`(不执行真实删除/恢复)。
|
|
35
36
|
- 真实执行需显式传 `--yes`。
|
|
36
37
|
- 若传 `--dry-run false` 且未传 `--yes`,退出码为 `3`。
|
|
38
|
+
- 可通过 `--run-task` 启用阶段协议:
|
|
39
|
+
- `preview`:仅预演阶段。
|
|
40
|
+
- `execute`:仅真实执行阶段(破坏性动作需 `--yes`)。
|
|
41
|
+
- `preview-execute-verify`:预演 -> 真实执行 -> 同条件复核(预演命中 `0` 时自动跳过执行与复核)。
|
|
37
42
|
|
|
38
43
|
## 4. 输出协议
|
|
39
44
|
|
|
@@ -41,6 +46,8 @@
|
|
|
41
46
|
|
|
42
47
|
- `--output json|text`(默认 `json`)
|
|
43
48
|
- `--json` 为兼容别名(等价 `--output json`)
|
|
49
|
+
- `--run-task preview|execute|preview-execute-verify`(推荐破坏性动作使用)
|
|
50
|
+
- `--scan-debug off|summary|full`(默认 `off`)
|
|
44
51
|
|
|
45
52
|
JSON 顶层字段:
|
|
46
53
|
|
|
@@ -53,6 +60,10 @@ JSON 顶层字段:
|
|
|
53
60
|
- `data`:动作明细数据
|
|
54
61
|
- `meta`:元信息(版本、耗时、引擎、时间戳等)
|
|
55
62
|
- `data.userFacingSummary`:统一的用户侧结果摘要(范围 + 结果 + 关键分布)
|
|
63
|
+
- `scopeNotes`:扫描边界说明(例如是否纳入“文件存储位置”目录、是否因命中为 0 跳过执行)
|
|
64
|
+
- `data.taskPhases`:阶段协议明细(仅在 `--run-task` 时返回)
|
|
65
|
+
- `data.taskCard`:阶段任务卡片(仅在 `--run-task` 时返回)
|
|
66
|
+
- `data.scanDebug`:扫描诊断信息(仅在 `--scan-debug summary|full` 时返回)
|
|
56
67
|
|
|
57
68
|
`cleanup_monthly` 常见 `summary` 字段:
|
|
58
69
|
|
|
@@ -173,12 +184,23 @@ JSON 顶层字段:
|
|
|
173
184
|
- `hasUpdate`
|
|
174
185
|
- `currentVersion` / `latestVersion`
|
|
175
186
|
- `source`
|
|
187
|
+
- `sourceChain`(来源链路说明:先 npm,必要时自动回退 GitHub)
|
|
176
188
|
- `channel`
|
|
177
189
|
- `skippedByUser`
|
|
190
|
+
- `skillsStatus` / `skillsMatched`
|
|
191
|
+
- `skillsInstalledVersion` / `skillsBoundAppVersion`
|
|
178
192
|
|
|
179
193
|
`check_update` 的 `data`:
|
|
180
194
|
|
|
181
195
|
- `update`:更新检查详情(`checkedAt`、`checkReason`、`errors`、`upgradeMethods`)
|
|
196
|
+
- `skills`:skills 版本绑定详情(状态、目录、建议)
|
|
197
|
+
|
|
198
|
+
说明:
|
|
199
|
+
|
|
200
|
+
- 当 npm 失败但 GitHub 回退成功时,动作整体仍为成功:
|
|
201
|
+
- `summary.source=github`
|
|
202
|
+
- `summary.sourceChain` 会说明“npm 失败后回退”
|
|
203
|
+
- 失败细节进入 `warnings`,不计入 `errors`
|
|
182
204
|
|
|
183
205
|
`upgrade` 常见 `summary` 字段:
|
|
184
206
|
|
|
@@ -187,11 +209,31 @@ JSON 顶层字段:
|
|
|
187
209
|
- `targetVersion`
|
|
188
210
|
- `status`
|
|
189
211
|
- `command`
|
|
212
|
+
- `skillSyncEnabled`
|
|
213
|
+
- `skillSyncMethod`
|
|
214
|
+
- `skillSyncStatus`
|
|
215
|
+
- `skillSyncTargetVersion`
|
|
216
|
+
- `skillsStatusBefore` / `skillsStatusAfter`
|
|
190
217
|
|
|
191
218
|
`upgrade` 的 `data`:
|
|
192
219
|
|
|
193
220
|
- `upgrade`:升级执行结果(stdout/stderr/exit status)
|
|
194
221
|
- `update`:升级前检查结果(若有)
|
|
222
|
+
- `skills`:升级前后 skills 绑定状态
|
|
223
|
+
- `skillSync`:skills 同步执行结果
|
|
224
|
+
|
|
225
|
+
`sync_skills` 常见 `summary` 字段:
|
|
226
|
+
|
|
227
|
+
- `method`:同步方式(`npm` / `github-script`)
|
|
228
|
+
- `dryRun`:是否预演
|
|
229
|
+
- `status`:`dry_run` / `synced` / `failed` / `mismatch_after_sync`
|
|
230
|
+
- `skillsStatusBefore` / `skillsStatusAfter`
|
|
231
|
+
- `skillsMatchedAfter`
|
|
232
|
+
|
|
233
|
+
`sync_skills` 的 `data`:
|
|
234
|
+
|
|
235
|
+
- `before` / `after`:同步前后 skills 绑定详情
|
|
236
|
+
- `skillSync`:执行命令与退出码
|
|
195
237
|
|
|
196
238
|
## 5. 退出码
|
|
197
239
|
|
|
@@ -215,6 +257,11 @@ JSON 顶层字段:
|
|
|
215
257
|
- `--upgrade-channel <stable|pre>`:更新通道(稳定版/预发布)
|
|
216
258
|
- `--upgrade-version <x.y.z>`:升级到指定版本
|
|
217
259
|
- `--upgrade-yes`:确认执行升级(无此参数将拒绝执行升级)
|
|
260
|
+
- `--upgrade-sync-skills <true|false>`:升级后是否联动同步 skills(默认 `true`)
|
|
261
|
+
- `--skill-sync-method <npm|github-script>`:skills 同步方式
|
|
262
|
+
- `--skill-sync-ref <x.y.z>`:skills 同步版本标签
|
|
263
|
+
- `--run-task preview|execute|preview-execute-verify`:无交互阶段协议
|
|
264
|
+
- `--scan-debug off|summary|full`:扫描诊断输出等级
|
|
218
265
|
|
|
219
266
|
## 7. 动作参数
|
|
220
267
|
|
|
@@ -285,6 +332,18 @@ JSON 顶层字段:
|
|
|
285
332
|
|
|
286
333
|
- `npm`:执行 `npm i -g @mison/wecom-cleaner@<version>`
|
|
287
334
|
- `github-script`:执行 GitHub 托管脚本 `scripts/upgrade.sh`
|
|
335
|
+
- 默认会联动同步 skills,可通过 `--upgrade-sync-skills false` 关闭。
|
|
336
|
+
|
|
337
|
+
### 7.9 `--sync-skills`
|
|
338
|
+
|
|
339
|
+
- `--skill-sync-method <npm|github-script>`(可选,默认 `npm`)
|
|
340
|
+
- `--skill-sync-ref <x.y.z>`(可选)
|
|
341
|
+
- `--dry-run <true|false>`(可选,默认 `false`)
|
|
342
|
+
|
|
343
|
+
说明:
|
|
344
|
+
|
|
345
|
+
- 用于单独修复/升级 Agent skills 版本绑定。
|
|
346
|
+
- `npm` 方式优先使用本地随包 skills;`github-script` 方式按指定版本标签下载。
|
|
288
347
|
|
|
289
348
|
## 8. 兼容参数
|
|
290
349
|
|
package/docs/TEST_MATRIX.md
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
- `doctor`
|
|
27
27
|
- `check_update`
|
|
28
28
|
- `upgrade`
|
|
29
|
+
- `sync_skills`
|
|
29
30
|
|
|
30
31
|
### 维度 C:范围组合
|
|
31
32
|
|
|
@@ -39,6 +40,8 @@
|
|
|
39
40
|
- dry-run(预演)
|
|
40
41
|
- 真实执行(`--dry-run false --yes`)
|
|
41
42
|
- 真实执行后复核(同条件二次运行)
|
|
43
|
+
- 阶段协议(`--run-task preview|execute|preview-execute-verify`)
|
|
44
|
+
- 扫描诊断(`--scan-debug summary|full`)
|
|
42
45
|
|
|
43
46
|
### 维度 E:异常与边界
|
|
44
47
|
|
|
@@ -92,19 +95,23 @@
|
|
|
92
95
|
|
|
93
96
|
1. `cleanup_monthly`:`--cutoff-month` + `--output json` + dry-run(有目标 / 无目标)
|
|
94
97
|
2. `cleanup_monthly`:真实执行 + 复核(复核命中应下降或归零)
|
|
95
|
-
3. `
|
|
96
|
-
4. `
|
|
97
|
-
5. `
|
|
98
|
-
6. `
|
|
99
|
-
7. `
|
|
100
|
-
8. `
|
|
101
|
-
9.
|
|
98
|
+
3. `cleanup_monthly`:`--run-task preview-execute-verify --yes`(阶段字段稳定)
|
|
99
|
+
4. `cleanup_monthly`:`--scan-debug summary/full`(诊断字段稳定)
|
|
100
|
+
5. `space_governance`:`suggested-only` 与 `allow-recent-active` 组合
|
|
101
|
+
6. `restore`:`skip/overwrite/rename` 三冲突策略
|
|
102
|
+
7. `recycle_maintain`:`disabled` / `no_candidate` / `partial_failed`
|
|
103
|
+
8. `doctor`:只读模式不创建状态目录
|
|
104
|
+
9. `check_update`:npm 正常 / npm 失败回退 GitHub / 全部失败
|
|
105
|
+
10. `upgrade`:未确认拒绝、已是最新不执行、执行失败可返回非 0
|
|
106
|
+
11. `sync_skills`:预演/真实同步、版本匹配状态收敛
|
|
107
|
+
12. Agent 报告脚本:成功、无目标、失败三态退出码与卡片完整性
|
|
102
108
|
|
|
103
109
|
## 当前门禁(执行顺序)
|
|
104
110
|
|
|
105
111
|
1. `npm run check`
|
|
106
|
-
2. `npm run
|
|
107
|
-
3. `
|
|
108
|
-
4. `
|
|
112
|
+
2. `npm run check:skills-version`
|
|
113
|
+
3. `npm run test:coverage:check`
|
|
114
|
+
4. `shellcheck skills/wecom-cleaner-agent/scripts/*.sh scripts/upgrade.sh scripts/install-skill.sh scripts/release-gate.sh`
|
|
115
|
+
5. `npm run e2e:smoke`
|
|
109
116
|
|
|
110
117
|
说明:若新增动作/字段,需先补此文档矩阵与断言,再提交实现。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# v1.3.1
|
|
2
|
+
|
|
3
|
+
发布日期:2026-02-27
|
|
4
|
+
|
|
5
|
+
## 重点更新
|
|
6
|
+
|
|
7
|
+
- 新增无交互阶段协议 `--run-task`:
|
|
8
|
+
- `preview`:仅预演
|
|
9
|
+
- `execute`:仅执行
|
|
10
|
+
- `preview-execute-verify`:预演 -> 执行 -> 复核
|
|
11
|
+
- 无交互 JSON 新增阶段产物:
|
|
12
|
+
- `data.taskPhases`:阶段明细(状态、耗时、命中/成功/失败统计)
|
|
13
|
+
- `data.taskCard`:用户视角任务卡片(范围、结论、分布)
|
|
14
|
+
- 新增扫描诊断参数 `--scan-debug off|summary|full`:用于定位“扫描命中与预期不一致”问题。
|
|
15
|
+
|
|
16
|
+
## CLI 与 Agent 协同
|
|
17
|
+
|
|
18
|
+
- `--help` 已补充 `--run-task` 与 `--scan-debug`。
|
|
19
|
+
- skills 文档与命令参考已同步:CLI 回退场景优先使用 `--run-task`,并读取 `taskCard/taskPhases`。
|
|
20
|
+
|
|
21
|
+
## 测试与质量
|
|
22
|
+
|
|
23
|
+
- 新增/更新:
|
|
24
|
+
- `test/config.test.js`:新增 `--run-task` / `--scan-debug` 参数解析覆盖。
|
|
25
|
+
- `test/cli-non-interactive.test.js`:新增阶段协议与扫描诊断覆盖。
|
|
26
|
+
- 全量测试通过:`npm test`(107/107)。
|
|
27
|
+
|
|
28
|
+
## 兼容性说明
|
|
29
|
+
|
|
30
|
+
- 旧的无交互调用方式保持兼容(不传 `--run-task` 时行为不变)。
|
|
31
|
+
- 文本输出保持原有动作卡片,新增阶段流程区块仅在 `--run-task` 时显示。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# v1.3.2
|
|
2
|
+
|
|
3
|
+
发布日期:2026-02-27
|
|
4
|
+
|
|
5
|
+
## 重点更新
|
|
6
|
+
|
|
7
|
+
- 4 个破坏性 Agent 报告脚本统一改为 `--run-task` 单入口(预演 / 执行 / 复核一致语义):
|
|
8
|
+
- `cleanup_monthly_report.sh`
|
|
9
|
+
- `space_governance_report.sh`
|
|
10
|
+
- `restore_batch_report.sh`
|
|
11
|
+
- `recycle_maintain_report.sh`
|
|
12
|
+
- Zig 核心版本号改为构建期自动注入,不再手工写死。
|
|
13
|
+
- `native/manifest.json` 升级到 `v1.3.2`,并同步 `darwin-x64`/`darwin-arm64` 双架构 SHA256。
|
|
14
|
+
|
|
15
|
+
## 稳定性修复
|
|
16
|
+
|
|
17
|
+
- 修复 4 个报告脚本在错误分支下的变量展开风险:失败场景稳定返回非 0,避免自动化流程误判成功。
|
|
18
|
+
- 修复 Zig 核心 `--ping` 版本与包版本可能不一致的问题。
|
|
19
|
+
|
|
20
|
+
## 文档同步
|
|
21
|
+
|
|
22
|
+
- README、实施计划、技能命令参考、升级脚本示例统一更新到 `v1.3.2`。
|
|
23
|
+
|
|
24
|
+
## 验证结果
|
|
25
|
+
|
|
26
|
+
- 发布门禁全通过:`npm run release:gate`
|
|
27
|
+
- `format:check`
|
|
28
|
+
- `check`
|
|
29
|
+
- `test:coverage:check`
|
|
30
|
+
- `shellcheck(skills)`
|
|
31
|
+
- `e2e:smoke`
|
|
32
|
+
- `pack:tgz:dry-run`
|
|
33
|
+
- `pack:release-assets:dry-run`
|
|
34
|
+
- 覆盖率基线(`test:coverage:check`):
|
|
35
|
+
- `statements 87.66%`
|
|
36
|
+
- `branches 74.38%`
|
|
37
|
+
- `functions 92.47%`
|
|
38
|
+
- `lines 87.66%`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# v1.3.3
|
|
2
|
+
|
|
3
|
+
发布日期:2026-02-27
|
|
4
|
+
|
|
5
|
+
## 重点更新
|
|
6
|
+
|
|
7
|
+
- 新增 skills 版本绑定元数据:`skills/wecom-cleaner-agent/version.json`,将 skills 版本与主程序版本显式绑定。
|
|
8
|
+
- 新增无交互动作 `--sync-skills`,支持独立同步 Agent skills(`npm` / `github-script`)。
|
|
9
|
+
- 新增 `wecom-cleaner-skill status` / `wecom-cleaner-skill sync`,用于检测和修复版本不匹配。
|
|
10
|
+
- 新增 skills 版本门禁:`scripts/check-skills-version.js`,并接入 `npm run check:skills-version` 与 `release:gate`。
|
|
11
|
+
|
|
12
|
+
## 升级链路改进
|
|
13
|
+
|
|
14
|
+
- `--check-update` 输出新增 skills 匹配状态与版本字段(`skillsStatus`、`skillsMatched` 等)。
|
|
15
|
+
- `--upgrade` 默认联动同步 skills,并返回同步状态、同步方式与前后匹配状态。
|
|
16
|
+
- 交互模式“检查更新与升级”支持直接触发 skills 同步;头部增加 skills 状态徽章。
|
|
17
|
+
- `scripts/upgrade.sh` 默认升级后同步 skills,可通过 `--sync-skills false` 关闭。
|
|
18
|
+
|
|
19
|
+
## 发布与资产
|
|
20
|
+
|
|
21
|
+
- release 资产打包新增 skills 独立附件:`wecom-cleaner-skill-vX.Y.Z.tar.gz`。
|
|
22
|
+
- SHA256 清单命名统一为:`wecom-cleaner-vX.Y.Z-SHA256SUMS.txt`。
|
|
23
|
+
- `scripts/install-skill.sh` 安装完成后输出 skills 版本与绑定版本,便于核验。
|
|
24
|
+
|
|
25
|
+
## Agent 技能适配
|
|
26
|
+
|
|
27
|
+
- `wecom-cleaner-agent` 的 `check_update_report` / `upgrade_report` / `doctor_report` 已适配 skills 版本状态与同步反馈。
|
|
28
|
+
- `SKILL.md` 与命令参考文档已同步更新。
|
|
29
|
+
|
|
30
|
+
## 稳定性结论
|
|
31
|
+
|
|
32
|
+
- 已通过:`npm run format:check`、`npm run check`、`npm run check:skills-version`、`npm test`(116/116)。
|
|
Binary file
|
|
Binary file
|
package/native/manifest.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"targets": {
|
|
5
5
|
"darwin-x64": {
|
|
6
6
|
"binaryName": "wecom-cleaner-core",
|
|
7
|
-
"sha256": "
|
|
8
|
-
"url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.3.
|
|
7
|
+
"sha256": "e803a1d480895f3edc2350151611a20390ae01401c179aa3f58b5773fed011a8",
|
|
8
|
+
"url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.3.3/wecom-cleaner-core-v1.3.3-darwin-x64"
|
|
9
9
|
},
|
|
10
10
|
"darwin-arm64": {
|
|
11
11
|
"binaryName": "wecom-cleaner-core",
|
|
12
|
-
"sha256": "
|
|
13
|
-
"url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.3.
|
|
12
|
+
"sha256": "0bee4994c39ec66690a1effa2acc4178a581567750577c5caa9ba4e495dd3b1d",
|
|
13
|
+
"url": "https://github.com/MisonL/wecom-cleaner/releases/download/v1.3.3/wecom-cleaner-core-v1.3.3-darwin-arm64"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
package/native/zig/build.sh
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
4
|
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
5
|
+
PACKAGE_VERSION="$(node -p "JSON.parse(require('fs').readFileSync('${ROOT_DIR}/package.json', 'utf8')).version")"
|
|
6
|
+
VERSION_ZIG_PATH="${ROOT_DIR}/native/zig/src/version.zig"
|
|
7
|
+
printf 'pub const APP_VERSION = "%s";\n' "${PACKAGE_VERSION}" > "${VERSION_ZIG_PATH}"
|
|
5
8
|
|
|
6
9
|
HOST_OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
|
7
10
|
HOST_ARCH="$(uname -m)"
|
package/native/zig/src/main.zig
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const std = @import("std");
|
|
2
|
+
const version_meta = @import("version.zig");
|
|
2
3
|
|
|
3
4
|
fn isAbsPath(path: []const u8) bool {
|
|
4
5
|
return std.fs.path.isAbsolute(path);
|
|
@@ -57,7 +58,7 @@ fn dirTreeSize(dir: *std.fs.Dir) !u64 {
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
fn printPing(writer: *std.Io.Writer) !void {
|
|
60
|
-
try writer.
|
|
61
|
+
try writer.print("{{\"ok\":true,\"engine\":\"zig\",\"version\":\"{s}\"}}\n", .{version_meta.APP_VERSION});
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
fn runDu(args: []const []const u8, writer: *std.Io.Writer) !void {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pub const APP_VERSION = "1.3.3";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mison/wecom-cleaner",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"description": "企业微信本地聊天缓存清理工具(交互式 CLI/TUI)",
|
|
5
5
|
"author": "MisonL",
|
|
6
6
|
"license": "MIT",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"format": "prettier --write .",
|
|
43
43
|
"format:check": "prettier --check .",
|
|
44
44
|
"check": "node --check src/*.js",
|
|
45
|
+
"check:skills-version": "node scripts/check-skills-version.js",
|
|
45
46
|
"e2e:smoke": "bash scripts/e2e-smoke.sh",
|
|
46
47
|
"release:gate": "bash scripts/release-gate.sh",
|
|
47
48
|
"prepack": "npm run build:native:release && npm run check",
|
|
@@ -16,10 +16,11 @@ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当
|
|
|
16
16
|
1. 全程只用无交互命令(禁止直接运行 `wecom-cleaner` 进入 TUI)。
|
|
17
17
|
2. 优先脚本入口,禁止手写三步命令流(除非脚本失败或缺失)。
|
|
18
18
|
3. 破坏性动作(清理/治理/恢复/回收区治理)默认预演;真实执行必须有明确授权。
|
|
19
|
-
4.
|
|
20
|
-
5.
|
|
21
|
-
6.
|
|
22
|
-
7.
|
|
19
|
+
4. 回退到 CLI 时,破坏性动作必须使用 `--run-task` 协议(`preview` 或 `preview-execute-verify`),禁止手工串联多次命令。
|
|
20
|
+
5. 升级动作默认只做检查或预演(`--execute false`);真实升级必须有明确授权。
|
|
21
|
+
6. 若预演命中为 `0`,必须结束并说明“无需执行”,不得继续真实执行。
|
|
22
|
+
7. 最终汇报必须是中文用户视角,先结论再细节,并解释关键指标含义。
|
|
23
|
+
8. 禁止在终端回显完整 JSON;只输出人类可读摘要。
|
|
23
24
|
|
|
24
25
|
## 动作到脚本映射(必须)
|
|
25
26
|
|
|
@@ -31,12 +32,14 @@ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当
|
|
|
31
32
|
- 系统自检:`scripts/doctor_report.sh`
|
|
32
33
|
- 检查更新:`scripts/check_update_report.sh`
|
|
33
34
|
- 程序升级:`scripts/upgrade_report.sh`
|
|
35
|
+
- skills 同步:回退到 `wecom-cleaner --sync-skills --output json`
|
|
34
36
|
|
|
35
37
|
调用顺序:
|
|
36
38
|
|
|
37
39
|
1. 先判断用户意图对应哪个动作。
|
|
38
40
|
2. 直接调用对应脚本。
|
|
39
41
|
3. 脚本失败时,才回退到 `wecom-cleaner --<action> --output json` 手工流程。
|
|
42
|
+
4. 回退流程里优先读取 `data.taskCard` 与 `data.taskPhases`,再读取 `summary/data.report` 细节。
|
|
40
43
|
|
|
41
44
|
## 脚本调用约定
|
|
42
45
|
|
|
@@ -44,6 +47,9 @@ description: 用于执行和编排 wecom-cleaner 的无交互 Agent 技能。当
|
|
|
44
47
|
- 用户明确“现在执行/开始清理/确认执行”时才传 `--execute true`。
|
|
45
48
|
- 破坏性动作脚本内部会做:预演 ->(可选)真实执行 ->(可选)复核。
|
|
46
49
|
- 升级脚本默认“检查 + 预演”;只有明确授权才执行真实升级。
|
|
50
|
+
- CLI 回退时:
|
|
51
|
+
- 仅预演:`--run-task preview`
|
|
52
|
+
- 已授权执行:`--run-task preview-execute-verify --yes`
|
|
47
53
|
|
|
48
54
|
推荐参数:
|
|
49
55
|
|
|
@@ -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/check-update/upgrade
|
|
4
|
+
default_prompt: '请使用 $wecom-cleaner-agent 执行任务:按用户意图自动选择 scripts/ 下对应报告脚本(cleanup/analysis/space/restore/recycle/doctor/check-update/upgrade),需要 skills 同步时回退 wecom-cleaner --sync-skills --output json;优先输出中文用户任务卡片;仅在脚本不可用时回退 wecom-cleaner --output json,并在破坏性动作中使用 --run-task(preview 或 preview-execute-verify)读取 data.taskCard/taskPhases。'
|
|
5
5
|
brand_color: '#0EA5E9'
|