@mison/wecom-cleaner 1.3.2 → 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 +32 -5
- package/docs/NON_INTERACTIVE_SPEC.md +48 -0
- package/docs/TEST_MATRIX.md +7 -4
- 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/src/version.zig +1 -1
- package/package.json +2 -1
- package/skills/wecom-cleaner-agent/SKILL.md +1 -0
- package/skills/wecom-cleaner-agent/agents/openai.yaml +1 -1
- package/skills/wecom-cleaner-agent/references/commands.md +23 -2
- package/skills/wecom-cleaner-agent/scripts/check_update_report.sh +15 -0
- package/skills/wecom-cleaner-agent/scripts/doctor_report.sh +3 -0
- package/skills/wecom-cleaner-agent/scripts/upgrade_report.sh +15 -0
- package/skills/wecom-cleaner-agent/version.json +6 -0
- package/src/cli.js +829 -27
- package/src/config.js +21 -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
|
|
|
@@ -254,7 +261,10 @@ wecom-cleaner --check-update --output text
|
|
|
254
261
|
wecom-cleaner --upgrade npm --upgrade-yes
|
|
255
262
|
|
|
256
263
|
# 执行升级(GitHub 托管脚本方式)
|
|
257
|
-
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
|
|
258
268
|
```
|
|
259
269
|
|
|
260
270
|
### 输出与兼容参数
|
|
@@ -270,6 +280,9 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.2 --upgrade-yes
|
|
|
270
280
|
- `--upgrade-channel stable|pre`:升级检查通道(稳定版/预发布)。
|
|
271
281
|
- `--upgrade-version <x.y.z>`:指定升级目标版本。
|
|
272
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 同步版本标签(通常与程序版本一致)。
|
|
273
286
|
|
|
274
287
|
### 各动作关键统计字段(JSON)
|
|
275
288
|
|
|
@@ -343,7 +356,10 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.2 --upgrade-yes
|
|
|
343
356
|
- `summary.currentVersion` / `latestVersion`
|
|
344
357
|
- `summary.source`:`npm` 或 `github`
|
|
345
358
|
- `summary.channel`:`stable` 或 `pre`
|
|
359
|
+
- `summary.skillsStatus` / `summary.skillsMatched`
|
|
360
|
+
- `summary.skillsInstalledVersion` / `summary.skillsBoundAppVersion`
|
|
346
361
|
- `data.update`:检查详情(含 `errors`、`checkReason`、`checkedAt`)
|
|
362
|
+
- `data.skills`:skills 绑定详情(状态、目录、建议)
|
|
347
363
|
|
|
348
364
|
#### `upgrade`
|
|
349
365
|
|
|
@@ -352,6 +368,17 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.2 --upgrade-yes
|
|
|
352
368
|
- `summary.targetVersion`:目标版本
|
|
353
369
|
- `summary.status`:升级命令退出码
|
|
354
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`:执行命令与退出码
|
|
355
382
|
|
|
356
383
|
### 全局参数
|
|
357
384
|
|
|
@@ -493,7 +520,7 @@ npm run pack:tgz
|
|
|
493
520
|
npm run pack:release-assets
|
|
494
521
|
|
|
495
522
|
# 2) 推送主分支与标签
|
|
496
|
-
VERSION="1.3.
|
|
523
|
+
VERSION="1.3.3"
|
|
497
524
|
git push origin main
|
|
498
525
|
git tag "v${VERSION}"
|
|
499
526
|
git push origin "v${VERSION}"
|
|
@@ -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
|
|
|
@@ -59,6 +60,7 @@ JSON 顶层字段:
|
|
|
59
60
|
- `data`:动作明细数据
|
|
60
61
|
- `meta`:元信息(版本、耗时、引擎、时间戳等)
|
|
61
62
|
- `data.userFacingSummary`:统一的用户侧结果摘要(范围 + 结果 + 关键分布)
|
|
63
|
+
- `scopeNotes`:扫描边界说明(例如是否纳入“文件存储位置”目录、是否因命中为 0 跳过执行)
|
|
62
64
|
- `data.taskPhases`:阶段协议明细(仅在 `--run-task` 时返回)
|
|
63
65
|
- `data.taskCard`:阶段任务卡片(仅在 `--run-task` 时返回)
|
|
64
66
|
- `data.scanDebug`:扫描诊断信息(仅在 `--scan-debug summary|full` 时返回)
|
|
@@ -182,12 +184,23 @@ JSON 顶层字段:
|
|
|
182
184
|
- `hasUpdate`
|
|
183
185
|
- `currentVersion` / `latestVersion`
|
|
184
186
|
- `source`
|
|
187
|
+
- `sourceChain`(来源链路说明:先 npm,必要时自动回退 GitHub)
|
|
185
188
|
- `channel`
|
|
186
189
|
- `skippedByUser`
|
|
190
|
+
- `skillsStatus` / `skillsMatched`
|
|
191
|
+
- `skillsInstalledVersion` / `skillsBoundAppVersion`
|
|
187
192
|
|
|
188
193
|
`check_update` 的 `data`:
|
|
189
194
|
|
|
190
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`
|
|
191
204
|
|
|
192
205
|
`upgrade` 常见 `summary` 字段:
|
|
193
206
|
|
|
@@ -196,11 +209,31 @@ JSON 顶层字段:
|
|
|
196
209
|
- `targetVersion`
|
|
197
210
|
- `status`
|
|
198
211
|
- `command`
|
|
212
|
+
- `skillSyncEnabled`
|
|
213
|
+
- `skillSyncMethod`
|
|
214
|
+
- `skillSyncStatus`
|
|
215
|
+
- `skillSyncTargetVersion`
|
|
216
|
+
- `skillsStatusBefore` / `skillsStatusAfter`
|
|
199
217
|
|
|
200
218
|
`upgrade` 的 `data`:
|
|
201
219
|
|
|
202
220
|
- `upgrade`:升级执行结果(stdout/stderr/exit status)
|
|
203
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`:执行命令与退出码
|
|
204
237
|
|
|
205
238
|
## 5. 退出码
|
|
206
239
|
|
|
@@ -224,6 +257,9 @@ JSON 顶层字段:
|
|
|
224
257
|
- `--upgrade-channel <stable|pre>`:更新通道(稳定版/预发布)
|
|
225
258
|
- `--upgrade-version <x.y.z>`:升级到指定版本
|
|
226
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 同步版本标签
|
|
227
263
|
- `--run-task preview|execute|preview-execute-verify`:无交互阶段协议
|
|
228
264
|
- `--scan-debug off|summary|full`:扫描诊断输出等级
|
|
229
265
|
|
|
@@ -296,6 +332,18 @@ JSON 顶层字段:
|
|
|
296
332
|
|
|
297
333
|
- `npm`:执行 `npm i -g @mison/wecom-cleaner@<version>`
|
|
298
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` 方式按指定版本标签下载。
|
|
299
347
|
|
|
300
348
|
## 8. 兼容参数
|
|
301
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
|
|
|
@@ -102,13 +103,15 @@
|
|
|
102
103
|
8. `doctor`:只读模式不创建状态目录
|
|
103
104
|
9. `check_update`:npm 正常 / npm 失败回退 GitHub / 全部失败
|
|
104
105
|
10. `upgrade`:未确认拒绝、已是最新不执行、执行失败可返回非 0
|
|
105
|
-
11.
|
|
106
|
+
11. `sync_skills`:预演/真实同步、版本匹配状态收敛
|
|
107
|
+
12. Agent 报告脚本:成功、无目标、失败三态退出码与卡片完整性
|
|
106
108
|
|
|
107
109
|
## 当前门禁(执行顺序)
|
|
108
110
|
|
|
109
111
|
1. `npm run check`
|
|
110
|
-
2. `npm run
|
|
111
|
-
3. `
|
|
112
|
-
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`
|
|
113
116
|
|
|
114
117
|
说明:若新增动作/字段,需先补此文档矩阵与断言,再提交实现。
|
|
@@ -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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
pub const APP_VERSION = "1.3.
|
|
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",
|
|
@@ -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'
|
|
@@ -63,7 +63,20 @@ bash scripts/upgrade_report.sh --method npm --execute false
|
|
|
63
63
|
|
|
64
64
|
# 明确授权后执行真实升级
|
|
65
65
|
bash scripts/upgrade_report.sh --method npm --execute true
|
|
66
|
-
bash scripts/upgrade_report.sh --method github-script --version 1.3.
|
|
66
|
+
bash scripts/upgrade_report.sh --method github-script --version 1.3.3 --execute true
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 1.9 同步 Agent Skills
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# 预演同步(不落盘)
|
|
73
|
+
wecom-cleaner --sync-skills --dry-run true --output json
|
|
74
|
+
|
|
75
|
+
# 真实同步(默认 npm)
|
|
76
|
+
wecom-cleaner --sync-skills --skill-sync-method npm --dry-run false --output json
|
|
77
|
+
|
|
78
|
+
# 按 GitHub 版本标签同步
|
|
79
|
+
wecom-cleaner --sync-skills --skill-sync-method github-script --skill-sync-ref 1.3.3 --dry-run false --output json
|
|
67
80
|
```
|
|
68
81
|
|
|
69
82
|
## 2. 常用全局参数
|
|
@@ -118,7 +131,10 @@ wecom-cleaner --check-update --output json
|
|
|
118
131
|
|
|
119
132
|
# 程序升级(必须带 --upgrade-yes)
|
|
120
133
|
wecom-cleaner --upgrade npm --upgrade-yes --output json
|
|
121
|
-
wecom-cleaner --upgrade github-script --upgrade-version 1.3.
|
|
134
|
+
wecom-cleaner --upgrade github-script --upgrade-version 1.3.3 --upgrade-yes --output json
|
|
135
|
+
|
|
136
|
+
# 同步 skills(独立动作)
|
|
137
|
+
wecom-cleaner --sync-skills --skill-sync-method npm --output json
|
|
122
138
|
```
|
|
123
139
|
|
|
124
140
|
## 4. 退出码约定
|
|
@@ -137,3 +153,8 @@ wecom-cleaner --upgrade github-script --upgrade-version 1.3.2 --upgrade-yes --ou
|
|
|
137
153
|
3. 核心统计(命中、预计/实际释放、成功/跳过/失败、批次号)
|
|
138
154
|
4. 分布明细(按类别/月份/路径)
|
|
139
155
|
5. 安全状态(耗时、引擎、告警、错误)
|
|
156
|
+
|
|
157
|
+
实现建议(统一体验):
|
|
158
|
+
|
|
159
|
+
- 优先消费 `data.userFacingSummary`,并优先展示其中 `scopeNotes`(扫描边界说明)。
|
|
160
|
+
- 对 `check-update` 动作,优先展示 `summary.sourceChain`,明确“npm -> GitHub 回退”链路。
|
|
@@ -85,6 +85,11 @@ latest_version="$(jq -r '.summary.latestVersion // "-"' "$REPORT_JSON")"
|
|
|
85
85
|
source_used="$(jq -r '.summary.source // "none"' "$REPORT_JSON")"
|
|
86
86
|
channel_used="$(jq -r '.summary.channel // "stable"' "$REPORT_JSON")"
|
|
87
87
|
skipped_by_user="$(jq -r '.summary.skippedByUser // false' "$REPORT_JSON")"
|
|
88
|
+
skills_status="$(jq -r '.summary.skillsStatus // (.data.skills.status // "unknown")' "$REPORT_JSON")"
|
|
89
|
+
skills_matched="$(jq -r '.summary.skillsMatched // (.data.skills.matched // false)' "$REPORT_JSON")"
|
|
90
|
+
skills_version="$(jq -r '.summary.skillsInstalledVersion // (.data.skills.installedSkillVersion // "-")' "$REPORT_JSON")"
|
|
91
|
+
skills_bound_version="$(jq -r '.summary.skillsBoundAppVersion // (.data.skills.installedRequiredAppVersion // "-")' "$REPORT_JSON")"
|
|
92
|
+
skills_target_dir="$(jq -r '.data.skills.targetSkillDir // "-"' "$REPORT_JSON")"
|
|
88
93
|
duration_ms="$(jq -r '.meta.durationMs // 0' "$REPORT_JSON")"
|
|
89
94
|
warnings_count="$(jq -r '(.warnings // []) | length' "$REPORT_JSON")"
|
|
90
95
|
errors_count="$(jq -r '(.errors // []) | length' "$REPORT_JSON")"
|
|
@@ -124,11 +129,20 @@ printf -- '- 检查通道:%s\n' "$channel_label"
|
|
|
124
129
|
printf -- '- 信息来源:%s(先 npm,失败再回退 GitHub)\n' "$source_label"
|
|
125
130
|
printf -- '- 用户跳过提醒:%s\n' "$( [[ "$skipped_by_user" == "true" ]] && printf '是' || printf '否' )"
|
|
126
131
|
|
|
132
|
+
printf '\nSkills 版本状态\n'
|
|
133
|
+
printf -- '- 匹配状态:%s(%s)\n' "$( [[ "$skills_matched" == "true" ]] && printf '已匹配' || printf '未匹配' )" "$skills_status"
|
|
134
|
+
printf -- '- skills 版本:%s\n' "$skills_version"
|
|
135
|
+
printf -- '- skills 绑定程序版本:%s\n' "$skills_bound_version"
|
|
136
|
+
printf -- '- skills 目录:%s\n' "$skills_target_dir"
|
|
137
|
+
|
|
127
138
|
if [[ "$has_update" == "true" && "$skipped_by_user" != "true" ]]; then
|
|
128
139
|
printf '\n建议下一步(需你确认后执行)\n'
|
|
129
140
|
printf -- '- 默认升级方式(npm):wecom-cleaner --upgrade npm --upgrade-version %s --upgrade-yes\n' "$latest_version"
|
|
130
141
|
printf -- '- 备选方式(GitHub 脚本):wecom-cleaner --upgrade github-script --upgrade-version %s --upgrade-yes\n' "$latest_version"
|
|
131
142
|
fi
|
|
143
|
+
if [[ "$skills_matched" != "true" ]]; then
|
|
144
|
+
printf -- '- 同步 skills(推荐):wecom-cleaner --sync-skills --skill-sync-method npm\n'
|
|
145
|
+
fi
|
|
132
146
|
|
|
133
147
|
printf '\n运行状态\n'
|
|
134
148
|
printf -- '- 耗时:%s ms\n' "$duration_ms"
|
|
@@ -139,3 +153,4 @@ printf '\n指标释义\n'
|
|
|
139
153
|
printf -- '- 当前版本:你本机 wecom-cleaner 版本。\n'
|
|
140
154
|
printf -- '- 最新版本:按所选通道可获取的最新可用版本。\n'
|
|
141
155
|
printf -- '- 用户跳过提醒:表示该版本是否被标记为“暂不提醒”。\n'
|
|
156
|
+
printf -- '- Skills 匹配状态:表示 Agent skills 是否与当前程序版本绑定一致。\n'
|
|
@@ -72,6 +72,8 @@ account_count="$(jq -r '.data.metrics.accountCount // 0' "$REPORT_JSON")"
|
|
|
72
72
|
external_count="$(jq -r '.data.metrics.externalStorageCount // 0' "$REPORT_JSON")"
|
|
73
73
|
recycle_batches="$(jq -r '.data.metrics.recycleBatchCount // 0' "$REPORT_JSON")"
|
|
74
74
|
recycle_bytes="$(jq -r '.data.metrics.recycleBytes // 0' "$REPORT_JSON")"
|
|
75
|
+
skills_status="$(jq -r '.data.metrics.skillsStatus // "unknown"' "$REPORT_JSON")"
|
|
76
|
+
skills_matched="$(jq -r '.data.metrics.skillsMatched // false' "$REPORT_JSON")"
|
|
75
77
|
runtime_os="$(jq -r '.data.runtime.os // "-"' "$REPORT_JSON")"
|
|
76
78
|
runtime_arch="$(jq -r '.data.runtime.arch // "-"' "$REPORT_JSON")"
|
|
77
79
|
duration_ms="$(jq -r '.meta.durationMs // 0' "$REPORT_JSON")"
|
|
@@ -107,6 +109,7 @@ printf -- '- 运行平台:%s / %s\n' "$runtime_os" "$runtime_arch"
|
|
|
107
109
|
printf -- '- 识别账号:%s 个\n' "$account_count"
|
|
108
110
|
printf -- '- 外部存储目录:%s 个\n' "$external_count"
|
|
109
111
|
printf -- '- 回收区批次:%s 个,约 %s\n' "$recycle_batches" "$(human_bytes "$recycle_bytes")"
|
|
112
|
+
printf -- '- Skills 绑定:%s(%s)\n' "$skills_status" "$( [[ "$skills_matched" == "true" ]] && printf '已匹配' || printf '未匹配' )"
|
|
110
113
|
|
|
111
114
|
printf '\n故障项(需要优先处理)\n'
|
|
112
115
|
fail_rows=0
|
|
@@ -162,6 +162,7 @@ if [[ "$EXECUTE" != "true" ]]; then
|
|
|
162
162
|
printf -- '- 计划执行命令:%s\n' "${plan_cmd[*]}"
|
|
163
163
|
printf '\n说明\n'
|
|
164
164
|
printf -- '- 如需真实执行,请追加参数:--execute true\n'
|
|
165
|
+
printf -- '- 真实升级默认会联动同步 skills,避免 Agent 能力与主程序版本不一致。\n'
|
|
165
166
|
printf -- '- 升级会更新本机安装,不会触碰聊天缓存数据。\n'
|
|
166
167
|
exit 0
|
|
167
168
|
fi
|
|
@@ -193,6 +194,12 @@ summary_method="$(jq -r '.summary.method // "-"' "$EXEC_JSON")"
|
|
|
193
194
|
summary_target="$(jq -r '.summary.targetVersion // "-"' "$EXEC_JSON")"
|
|
194
195
|
summary_status="$(jq -r '.summary.status // "-"' "$EXEC_JSON")"
|
|
195
196
|
summary_command="$(jq -r '.summary.command // "-"' "$EXEC_JSON")"
|
|
197
|
+
skill_sync_method="$(jq -r '.summary.skillSyncMethod // "-"' "$EXEC_JSON")"
|
|
198
|
+
skill_sync_status="$(jq -r '.summary.skillSyncStatus // "-"' "$EXEC_JSON")"
|
|
199
|
+
skill_sync_target="$(jq -r '.summary.skillSyncTargetVersion // "-"' "$EXEC_JSON")"
|
|
200
|
+
skill_sync_command="$(jq -r '.data.skillSync.command // "-"' "$EXEC_JSON")"
|
|
201
|
+
skills_status_before="$(jq -r '.summary.skillsStatusBefore // "-"' "$EXEC_JSON")"
|
|
202
|
+
skills_status_after="$(jq -r '.summary.skillsStatusAfter // "-"' "$EXEC_JSON")"
|
|
196
203
|
duration_ms="$(jq -r '.meta.durationMs // 0' "$EXEC_JSON")"
|
|
197
204
|
warnings_count="$(jq -r '(.warnings // []) | length' "$EXEC_JSON")"
|
|
198
205
|
errors_count="$(jq -r '(.errors // []) | length' "$EXEC_JSON")"
|
|
@@ -217,6 +224,14 @@ printf -- '- 命令退出码:%s\n' "$summary_status"
|
|
|
217
224
|
printf -- '- 执行命令:%s\n' "$summary_command"
|
|
218
225
|
printf -- '- 升级后版本:%s\n' "$installed_version"
|
|
219
226
|
|
|
227
|
+
printf '\nSkills 同步\n'
|
|
228
|
+
printf -- '- 同步方式:%s\n' "$skill_sync_method"
|
|
229
|
+
printf -- '- 同步状态:%s\n' "$skill_sync_status"
|
|
230
|
+
printf -- '- 目标版本:%s\n' "$skill_sync_target"
|
|
231
|
+
printf -- '- 同步命令:%s\n' "$skill_sync_command"
|
|
232
|
+
printf -- '- 同步前状态:%s\n' "$skills_status_before"
|
|
233
|
+
printf -- '- 同步后状态:%s\n' "$skills_status_after"
|
|
234
|
+
|
|
220
235
|
if [[ "$errors_count" -gt 0 ]]; then
|
|
221
236
|
printf '\n错误摘要\n'
|
|
222
237
|
while IFS= read -r message; do
|