@zaofan/dsh-qqbot 1.8.2 → 1.8.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.
@@ -0,0 +1,17 @@
1
+ /** 没写 settingsNs 时的默认槽名(必须与 index.ts / session-manager 的取值一致) */
2
+ export declare const DEFAULT_NS = "im-qqbot";
3
+ /** 从一份 patch 文本里取「启用中的本插件实例」所用的 settingsNs(去重)。 */
4
+ export declare function settingsNsOfPatch(txt: string): string[];
5
+ /**
6
+ * 扫 `{DSH_HOME}/profiles/<name>/cordis.patch.yml`,列出挂载了 targetNs 的 profile 名(已排序)。
7
+ * 只读;任何一步失败都当作"没扫到" —— 自检绝不能反过来把启动搞挂。
8
+ */
9
+ export declare function scanNsOwners(dshHome: string, targetNs: string): string[];
10
+ /** 生成告警文案(日志与设置页共用;含判据与修法,别只说"有冲突")。 */
11
+ export declare function describeNsConflict(opts: {
12
+ ns: string;
13
+ owners: string[];
14
+ myProfile?: string;
15
+ settingsFile?: string;
16
+ }): string;
17
+ //# sourceMappingURL=ns-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-guard.d.ts","sourceRoot":"","sources":["../../src/features/ns-guard.ts"],"names":[],"mappings":"AAwBA,iEAAiE;AACjE,eAAO,MAAM,UAAU,aAAa,CAAC;AAUrC,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAevD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBxE;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAWT"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * settingsNs 冲突防护(2026-10-11)
3
+ *
4
+ * 起因(主人实测报告):"web 和 desktop 的凭据会互相覆盖"。
5
+ *
6
+ * 背景:`settingsNs` 是**全局唯一**的设置槽名 —— 设置文件落在
7
+ * `{DSH_HOME}/qqbot-settings/<ns>.json`,这个路径里**没有 profile 维度**。
8
+ * 于是两个 profile(web / desktop)各挂一个实例、却填了同一个 ns 时:
9
+ * · 两边共用同一份文件 → 谁最后保存谁生效,凭据(appId/appSecret)/preset/cwd 一起被换掉;
10
+ * · 更狠的是 cwd / dataRoot 被换 → 数据根、群守则、表情包、会话台账全跟着变;
11
+ * · 两个 profile 同时跑且 appId 相同时,QQ 只保留一条活跃连接 → 后连的顶掉先连的("收不到消息")。
12
+ *
13
+ * 本模块只做**只读探测**(绝不改任何 profile 文件),给出两件可独立测试的工具:
14
+ * ① scanNsOwners() 扫 `profiles/<name>/cordis.patch.yml`,列出"还挂载着这个 ns"的 profile
15
+ * ② describeNsConflict() 生成给人看 / 给日志用的告警文案
16
+ *
17
+ * 配套:settings-host.js 的 `writeOwnSettings()` 会写 `<ns>.writer.json` 指纹,
18
+ * 发现同一槽被**另一个 profile** 写过时拒绝静默覆盖(见那边的 NS_CONFLICT)。
19
+ */
20
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
21
+ import { join } from 'node:path';
22
+ /** 本插件包名(patch 里用它认出"这是本插件的实例行") */
23
+ const PLUGIN_PKG = '@zaofan/dsh-qqbot';
24
+ /** 没写 settingsNs 时的默认槽名(必须与 index.ts / session-manager 的取值一致) */
25
+ export const DEFAULT_NS = 'im-qqbot';
26
+ /**
27
+ * 把 patch 文本切成"顶层列表项"块。
28
+ * 不追求完整 YAML 解析 —— 这里只需要"同一块内 `disabled: true` 能盖住同块的实例行",够用即可。
29
+ */
30
+ function splitPatchBlocks(txt) {
31
+ return String(txt ?? '').split(/\r?\n(?=\s*-\s+(?:id|insert|name|config|disabled)\s*:)/);
32
+ }
33
+ /** 从一份 patch 文本里取「启用中的本插件实例」所用的 settingsNs(去重)。 */
34
+ export function settingsNsOfPatch(txt) {
35
+ const out = [];
36
+ for (const block of splitPatchBlocks(txt)) {
37
+ if (!block.includes(PLUGIN_PKG))
38
+ continue;
39
+ if (/^\s*disabled\s*:\s*true\s*$/m.test(block))
40
+ continue; // 该行已停用 → 不占用设置槽
41
+ const instCount = block.split(PLUGIN_PKG).length - 1; // 该块里有几个本插件实例
42
+ const hits = [];
43
+ const re = /settingsNs\s*:\s*['"]?([A-Za-z0-9_-]+)['"]?/g;
44
+ let m;
45
+ while ((m = re.exec(block)) !== null)
46
+ hits.push(String(m[1]));
47
+ // 写了 settingsNs 的按写的算,没写的实例落默认槽
48
+ out.push(...hits);
49
+ for (let i = hits.length; i < instCount; i++)
50
+ out.push(DEFAULT_NS);
51
+ }
52
+ return Array.from(new Set(out));
53
+ }
54
+ /**
55
+ * 扫 `{DSH_HOME}/profiles/<name>/cordis.patch.yml`,列出挂载了 targetNs 的 profile 名(已排序)。
56
+ * 只读;任何一步失败都当作"没扫到" —— 自检绝不能反过来把启动搞挂。
57
+ */
58
+ export function scanNsOwners(dshHome, targetNs) {
59
+ const dir = join(dshHome, 'profiles');
60
+ let names;
61
+ try {
62
+ names = readdirSync(dir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ const out = [];
68
+ for (const name of names) {
69
+ const f = join(dir, name, 'cordis.patch.yml');
70
+ try {
71
+ if (!existsSync(f))
72
+ continue;
73
+ if (settingsNsOfPatch(readFileSync(f, 'utf8')).includes(targetNs))
74
+ out.push(name);
75
+ }
76
+ catch { /* 读不到 / 解析不了 → 跳过 */ }
77
+ }
78
+ return out.sort();
79
+ }
80
+ /** 生成告警文案(日志与设置页共用;含判据与修法,别只说"有冲突")。 */
81
+ export function describeNsConflict(opts) {
82
+ const { ns, owners, myProfile = '', settingsFile = '' } = opts;
83
+ const others = owners.filter((p) => p !== myProfile);
84
+ return [
85
+ `⚠️ settingsNs 冲突:设置槽 "${ns}" 同时被这些 profile 挂载 → ${owners.map((p) => `"${p}"`).join('、')}。`,
86
+ `本实例在 profile "${myProfile || 'unknown'}",与 ${others.map((p) => `"${p}"`).join('、')} 共用同一份设置文件`,
87
+ `${settingsFile ? `(${settingsFile})` : ''}:谁最后保存谁生效,凭据(appId/appSecret)/preset/cwd 会被一起换掉`,
88
+ `(cwd/dataRoot 一变,数据根、群守则、表情包、会话台账全跟着变);两个 profile 同时跑且 appId 相同时,`,
89
+ `QQ 只保留一条活跃连接 —— 后连的会顶掉先连的,表现就是"突然收不到消息"。`,
90
+ `修法:给其中一个 profile 换 settingsNs(如 "${ns}-desktop"),或只在一个 profile 里启用该实例(另一处写 disabled: true)。`,
91
+ ].join('');
92
+ }
93
+ //# sourceMappingURL=ns-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-guard.js","sourceRoot":"","sources":["../../src/features/ns-guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAsB1G,eAAO,MAAM,IAAI,aAAa,CAAC;AAG/B,eAAO,MAAM,MAAM,UAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,2DAAe,CAAC;AAEnC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4O9E;AAwFD,wBAAgB,kBAAkB,IAAI,OAAO,CAAyB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAuB1G,eAAO,MAAM,IAAI,aAAa,CAAC;AAG/B,eAAO,MAAM,MAAM,UAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,2DAAe,CAAC;AAEnC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+P9E;AAwFD,wBAAgB,kBAAkB,IAAI,OAAO,CAAyB"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import { ConfigSchema, EditableConfigSchema } from './config.js';
11
11
  import { bootstrapGateway } from './gateway/index.js';
12
12
  import { takePendingMemoText } from './features/people-memo.js';
13
13
  import { getProfileDir, resolveEnv } from './shared/index.js';
14
+ import { describeNsConflict, scanNsOwners } from './features/ns-guard.js';
14
15
  void getProfileDir;
15
16
  import { runQrSetup, persistCredentialsToProfile } from './setup.js';
16
17
  // 2026-09-24 关闭"启动自动扫码"后,这些符号保留给设置页路径使用;此处显式引用避免 TS 未使用报错。
@@ -140,6 +141,26 @@ export async function apply(ctx, config) {
140
141
  Object.assign(resolvedConfig, mergeDeep(resolvedConfig, ownSettings));
141
142
  logger.info(`已加载插件自有设置(${Object.keys(ownSettings).length} 项): ${ownSettingsFile}`);
142
143
  }
144
+ // ── 2026-10-11 新增:settingsNs 冲突自检(判据与修法见 features/ns-guard.ts 顶部注释)──
145
+ // ns 是"全局唯一"的设置槽名,而设置文件路径 {DSH_HOME}/qqbot-settings/<ns>.json 里**没有 profile 维度**:
146
+ // 两个 profile 各挂一个实例却填了同一个 ns 时,两边共用一份文件 → 谁最后保存谁生效,凭据/preset/cwd
147
+ // 一起被换掉(实测:web 的配置被 desktop 覆盖、QQ 连接被顶掉后收不到消息)。
148
+ // 这里只做**只读探测 + 告警**:不改任何 profile 文件、也不阻断启动。
149
+ try {
150
+ const nsHome = process.env.DSH_HOME || join(homedir(), '.dsh');
151
+ const myProfile = String(process.env.DSH_PROFILE ?? '').trim();
152
+ const owners = scanNsOwners(nsHome, ns);
153
+ const others = owners.filter((p) => p !== myProfile);
154
+ if (others.length) {
155
+ logger.warn(describeNsConflict({ ns, owners, myProfile, settingsFile: ownSettingsFile }));
156
+ }
157
+ else if (owners.length) {
158
+ logger.info(`settingsNs 自检通过:设置槽 "${ns}" 只被 profile "${owners[0]}" 挂载`);
159
+ }
160
+ }
161
+ catch (e) {
162
+ logger.warn(`settingsNs 自检跳过(不影响启动): ${e instanceof Error ? e.message : String(e)}`);
163
+ }
143
164
  // ⚠️ 2026-09-28 修:监听里除了热更新配置,还要处理"从无凭据 → 有凭据"的自动启动网关。
144
165
  // 背景:bootstrapGateway 只在 apply() 里跑一次。用户首次安装时没有凭据,
145
166
  // 插件只是"装好设置面板"就结束了(见下方 hasCred 分支)→ 此后在设置页填好凭据,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaofan/dsh-qqbot",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "QQ Bot IM channel plugin for deepseek-harness (dsh)",
5
5
  "type": "module",
6
6
  "main": "./entry.js",
package/settings-host.js CHANGED
@@ -231,11 +231,57 @@ function readOwnSettings(ns) {
231
231
  return o && typeof o === 'object' ? o : {};
232
232
  } catch { return {}; }
233
233
  }
234
+ /**
235
+ * 写入者指纹(2026-10-11):`<ns>.writer.json` 记「这个设置槽是哪个 profile 在写」。
236
+ *
237
+ * 起因(主人实测):web 与 desktop 两个 profile 挂了**同一个 settingsNs**,于是共用
238
+ * `{DSH_HOME}/qqbot-settings/<ns>.json` —— 谁最后保存谁生效,凭据(appId/appSecret)/preset/cwd
239
+ * 一起被换掉(web 的配置被 desktop 顶替,紧接着 QQ 连接也被顶掉、收不到消息)。
240
+ *
241
+ * 指纹放**单独文件**而不塞进设置 JSON:配置结构保持干净,前端无感。
242
+ * 规则:槽里已记着"别的 profile"、而本实例在另一个 profile → **拒绝静默覆盖**(抛 NS_CONFLICT)。
243
+ * 想强行接管:删掉 `<ns>.writer.json` 再保存,或干脆给其中一个 profile 换 settingsNs。
244
+ */
245
+ function nsWriterPath(ns) {
246
+ return ownSettingsPath(ns).replace(/\.json$/, '.writer.json');
247
+ }
248
+ function readNsWriter(ns) {
249
+ try {
250
+ const p = nsWriterPath(ns);
251
+ if (!existsSync(p)) return null;
252
+ const o = JSON.parse(readFileSync(p, 'utf8'));
253
+ return o && typeof o === 'object' ? o : null;
254
+ } catch { return null; }
255
+ }
256
+ function myProfileName() {
257
+ return String(process.env.DSH_PROFILE || '').trim() || 'unknown';
258
+ }
259
+ /** 该设置槽是否正被**别的** profile 占用(供 /read 与 /update 共用) */
260
+ function nsConflictOf(ns) {
261
+ const prev = readNsWriter(ns);
262
+ const me = myProfileName();
263
+ if (!prev || !prev.profile) return null;
264
+ if (prev.profile === 'unknown' || me === 'unknown' || prev.profile === me) return null;
265
+ return { prev: String(prev.profile), me };
266
+ }
234
267
  function writeOwnSettings(ns, obj) {
235
268
  const p = ownSettingsPath(ns);
269
+ const me = myProfileName();
270
+ const conflict = nsConflictOf(ns);
271
+ if (conflict) {
272
+ const err = new Error(
273
+ `设置槽 "${ns}" 已被 profile "${conflict.prev}" 占用,而本实例在 profile "${conflict.me}":` +
274
+ `两个 profile 共用同一个 settingsNs 会互相覆盖(凭据/preset/cwd 一起被换)。` +
275
+ `修法:给其中一个 profile 换 settingsNs(如 "${ns}-${conflict.me}");` +
276
+ `确实要让本 profile 接管,就先删掉 ${nsWriterPath(ns)} 再保存。`,
277
+ );
278
+ err.code = 'NS_CONFLICT';
279
+ throw err;
280
+ }
236
281
  try { mkdirSync(OWN_SETTINGS_DIR, { recursive: true }); } catch { /* ignore */ }
237
282
  try { if (existsSync(p)) writeFileSync(p + '.bak-' + Date.now(), readFileSync(p)); } catch { /* 备份失败不阻塞 */ }
238
283
  writeFileSync(p, JSON.stringify(obj, null, 2), 'utf8');
284
+ try { writeFileSync(nsWriterPath(ns), JSON.stringify({ profile: me, at: Date.now(), file: p }, null, 2), 'utf8'); } catch { /* 指纹写失败不阻塞 */ }
239
285
  return p;
240
286
  }
241
287
  /** 深合并一层(够用:本插件嵌套只到 groupAdmin / sticker.gates 这一层)。 */
@@ -412,7 +458,17 @@ export function apply(ctx) {
412
458
  const own = readOwnSettings(ns);
413
459
  // 自有存储优先:它就是用户在设置页保存的那份
414
460
  const value = Object.assign({}, base.value || {}, own);
415
- writeJson(res, 200, { value, revision: base.revision, source: Object.keys(own).length ? 'own' : 'patch' });
461
+ // 2026-10-11: 顺手把"这个槽是谁在写"告诉前端 —— 被**别的 profile**占用时设置页能一眼看到(判据同 writeOwnSettings)
462
+ const w = readNsWriter(ns);
463
+ const conflict = nsConflictOf(ns);
464
+ writeJson(res, 200, {
465
+ value,
466
+ revision: base.revision,
467
+ source: Object.keys(own).length ? 'own' : 'patch',
468
+ writerProfile: w && w.profile ? String(w.profile) : '',
469
+ writerAt: w && w.at ? Number(w.at) : 0,
470
+ nsConflict: conflict ? { writtenBy: conflict.prev, currentProfile: conflict.me } : null,
471
+ });
416
472
  });
417
473
  route(ctx, 'POST', '/api/qqbot-settings/update', async (req, res) => {
418
474
  const body = await readJsonBody(req);
@@ -437,6 +493,8 @@ export function apply(ctx) {
437
493
  note: '已保存(插件自有存储,热生效)',
438
494
  });
439
495
  } catch (e) {
496
+ // 2026-10-11: 设置槽被**别的 profile** 占用 → 409 + 原样文案(前端直接显示;绝不静默覆盖)
497
+ if (e && e.code === 'NS_CONFLICT') return writeJson(res, 409, { error: String(e.message ?? e), code: 'NS_CONFLICT' });
440
498
  writeJson(res, 500, { error: '保存失败:' + String(e?.message ?? e) });
441
499
  }
442
500
  });