ygc-dsh-sync 1.3.0 → 1.3.1

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.
Files changed (2) hide show
  1. package/lib/skillshare.js +17 -2
  2. package/package.json +1 -1
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).sort((a, b) => (a.rel < b.rel ? -1 : a.rel > b.rel ? 1 : 0));
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.0",
3
+ "version": "1.3.1",
4
4
  "type": "module",
5
5
  "description": "DSH 同步插件:会话按工作区落地、按机器隔离的跨机备份与拉取;技能进特征文件夹(整棵备份 + 说明 + 来源 + 更新时间),跨机只读拉取、同名不覆盖改走学习评估;本机技能优化(精炼 / 精简 / 合并重复 / 补工况 / 补踩坑 / 修死引用);技能市场装的第三方技能不管理、不同步、不优化。母版功能已取消。",
6
6
  "icon": "icon.svg",