ygc-dsh-sync 1.3.0 → 1.3.2
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 +8 -6
- package/lib/skillshare.js +17 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ curl -X POST http://127.0.0.1:<PORT>/api/local/dsh-sync-backup/attach/repair \
|
|
|
123
123
|
|
|
124
124
|
样式只用 `--dsw-alias-*` 主题令牌,跟随明暗模式。
|
|
125
125
|
|
|
126
|
-
## 技能共享与优化(1.3.
|
|
126
|
+
## 技能共享与优化(1.3.x)
|
|
127
127
|
|
|
128
128
|
**母版功能已取消。** 技能不再有「外部母版目录」这一层:来源只有两处——本机特征文件夹里的备份、别人特征文件夹里的备份。老的 `masterRoot` 配置会在读取 state 时被删掉,残留的老路由(`/skills/pull`、`/skills/push`、`/skills/mode`、`/skills/changelog`、`/skills/list`)一并下线。
|
|
129
129
|
|
|
@@ -251,23 +251,25 @@ curl -X POST http://127.0.0.1:<PORT>/api/local/dsh-sync-backup/attach/repair \
|
|
|
251
251
|
| POST | `/skills/scope/set` | 人工改归属(`name`、`scope`) |
|
|
252
252
|
| POST | `/skills/config` | 开关、间隔、learn / autoApply / 每轮条数 |
|
|
253
253
|
|
|
254
|
-
1.3.
|
|
254
|
+
1.3.x 下线:`/skills/pull`、`/skills/push`、`/skills/mode`、`/skills/changelog`、`/skills/list`(母版功能的入口)。
|
|
255
255
|
|
|
256
256
|
## 测试
|
|
257
257
|
|
|
258
|
-
旧套件里与母版相关的部分(`skills.test.mjs`、`skills-api.test.mjs`、`mode*.test.mjs`、`changelog*.test.mjs`)随 1.3.
|
|
258
|
+
旧套件里与母版相关的部分(`skills.test.mjs`、`skills-api.test.mjs`、`mode*.test.mjs`、`changelog*.test.mjs`)随 1.3.x 一并作废:那些端点已经下线,留着只会一直红。
|
|
259
259
|
|
|
260
|
-
1.3.
|
|
260
|
+
1.3.x 的验收走这五个脚本,全部落在临时目录,不碰真实技能库与真实 state:
|
|
261
261
|
|
|
262
262
|
```bash
|
|
263
263
|
# 端到端:归属判定 → 备份 → 拉缺失 → 同名不覆盖 → 体检 → 优化出草稿 → 批准落地 → 幂等
|
|
264
|
-
node test/01-skill-share.e2e.mjs #
|
|
264
|
+
node test/01-skill-share.e2e.mjs # 39 项断言
|
|
265
265
|
|
|
266
266
|
# 冒烟:伪造 ctx 加载 index.js,走真实 HTTP 路由(证明老路由下线、新路由可控)
|
|
267
267
|
node test/02-routes.smoke.mjs # 23 项断言
|
|
268
268
|
|
|
269
269
|
# 解析:模型回复切分(内层代码块不被当成结束围栏)
|
|
270
|
-
node test/03-parse.mjs #
|
|
270
|
+
node test/03-parse.mjs # 模型回复切分:内层代码块不被当成结束围栏
|
|
271
|
+
node test/04-installed.mjs # 已装副本走真实路由(老路由下线、新路由可算)
|
|
272
|
+
node test/05-real-skills.mjs # 真机真技能库跑一次共享(写临时库,不碰真实插件库)
|
|
271
273
|
```
|
|
272
274
|
|
|
273
275
|
三条必须成立的硬断言(回归红线):
|
package/lib/skillshare.js
CHANGED
|
@@ -53,6 +53,9 @@ export const ORIGIN_INDEX = 'SKILL-ORIGIN.json';
|
|
|
53
53
|
/** 等人工批准的学习草稿(落在本机自己的格子里,不直接覆盖本机技能)。 */
|
|
54
54
|
export const DRAFTS_DIR = 'learn-drafts';
|
|
55
55
|
|
|
56
|
+
/** 共享层自己加的产物:不参与技能内容指纹,也不该跟着技能一起被拷来拷去。 */
|
|
57
|
+
export const SHARE_LAYER_ARTIFACTS = Object.freeze([SKILL_CARD, DRAFTS_DIR]);
|
|
58
|
+
|
|
56
59
|
/** 一键开关的默认值:默认开(与插件清单同步一致)。 */
|
|
57
60
|
export const SHARE_DEFAULTS = Object.freeze({
|
|
58
61
|
enabled: true,
|
|
@@ -152,11 +155,23 @@ export function mdHash(dir) {
|
|
|
152
155
|
}
|
|
153
156
|
}
|
|
154
157
|
|
|
155
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* 整棵技能目录的指纹(文件名 + 大小 + 内容),与时间戳无关。
|
|
160
|
+
*
|
|
161
|
+
* **必须排除 SKILL-CARD.json**:那张名片是共享层自己加的元数据,本机技能目录里
|
|
162
|
+
* 没有它。不排除的话,自己格子里刚备份出来的副本和自己本机永远对不上指纹,
|
|
163
|
+
* 每一轮都会把「自己的技能」判成「与别人内容不同」——本机实测就是这么暴的
|
|
164
|
+
* (120 个技能全进差异队列)。名片里的 contentHash/treeHash 是独立记录的,
|
|
165
|
+
* 不需要参与目录指纹。
|
|
166
|
+
*
|
|
167
|
+
* 同样排除 learn-drafts / .trash-* 这类共享层自己的东西。
|
|
168
|
+
*/
|
|
156
169
|
export function dirHash(dir) {
|
|
157
170
|
let files = [];
|
|
158
171
|
try {
|
|
159
|
-
files = walkFiles(dir)
|
|
172
|
+
files = walkFiles(dir)
|
|
173
|
+
.filter((f) => !SHARE_LAYER_ARTIFACTS.some((n) => f.rel === n || f.rel.startsWith(`${n}/`)))
|
|
174
|
+
.sort((a, b) => (a.rel < b.rel ? -1 : a.rel > b.rel ? 1 : 0));
|
|
160
175
|
} catch {
|
|
161
176
|
return '';
|
|
162
177
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ygc-dsh-sync",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "DSH 同步插件:会话按工作区落地、按机器隔离的跨机备份与拉取;技能进特征文件夹(整棵备份 + 说明 + 来源 + 更新时间),跨机只读拉取、同名不覆盖改走学习评估;本机技能优化(精炼 / 精简 / 合并重复 / 补工况 / 补踩坑 / 修死引用);技能市场装的第三方技能不管理、不同步、不优化。母版功能已取消。",
|
|
6
6
|
"icon": "icon.svg",
|