@cxyhhhhh/dsh-qqbot 0.5.4-dev.202610302146 → 0.5.4-dev.202610302202
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/lib/host/adapter.d.ts +6 -10
- package/lib/host/adapter.d.ts.map +1 -1
- package/lib/host/adapter.js +16 -21
- package/lib/host/adapter.js.map +1 -1
- package/lib/session/session-manager.d.ts +3 -3
- package/lib/session/session-manager.js +7 -7
- package/lib/session/session-manager.js.map +1 -1
- package/package.json +1 -1
- package/doc/defect-review-config-session-id.md +0 -209
package/lib/host/adapter.d.ts
CHANGED
|
@@ -25,26 +25,22 @@ export interface HostAdapter {
|
|
|
25
25
|
globalService(name: string): unknown | undefined;
|
|
26
26
|
/** 官方 fork seed 构造;旧宿主无导出时返回 undefined */
|
|
27
27
|
buildForkSeed(events: readonly unknown[], boundary: number): Promise<readonly unknown[] | undefined>;
|
|
28
|
-
/** 会话 header 读取(取
|
|
28
|
+
/** 会话 header 读取(取 agentPreset 等);会话不存在、服务缺失或读取失败返回 undefined */
|
|
29
29
|
sessionHeader(sessionId: string): Promise<SessionHeaderLike | undefined>;
|
|
30
30
|
/**
|
|
31
31
|
* 会话是否存在于持久化层。
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* - `undefined`:旧宿主无该服务,没有求证手段;
|
|
37
|
-
* - 抛出:求证过程本身失败(后端故障),不能据此断言会话不存在。
|
|
33
|
+
* `undefined` = 没有求证手段(宿主未注册 sessionPersistence,或其形态不含
|
|
34
|
+
* `stat`)。调用方不得把它当成「不存在」——那正是重建已存在会话、撞出重复
|
|
35
|
+
* id 的根因。后端真故障时照常抛出。
|
|
38
36
|
*/
|
|
39
37
|
sessionExists(sessionId: string): Promise<boolean | undefined>;
|
|
40
38
|
/** 探测结果摘要(启动契约检查用) */
|
|
41
39
|
readonly capabilities: string[];
|
|
42
40
|
}
|
|
43
|
-
/**
|
|
41
|
+
/** 会话 header 的最小结构(只读插件关心的字段;`agentPreset` 在 header 顶层) */
|
|
44
42
|
export interface SessionHeaderLike {
|
|
45
|
-
|
|
46
|
-
agentPreset?: string;
|
|
47
|
-
};
|
|
43
|
+
agentPreset?: string;
|
|
48
44
|
}
|
|
49
45
|
export declare function createHostAdapter(ctx: Context, logger?: AdapterLogger): HostAdapter;
|
|
50
46
|
/** 测试辅助:清空模块缓存 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/host/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,aAAa;AACb,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,aAAa,CAAC,OAAO,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,SAAS,OAAO,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,GAAG,SAAS,OAAO,EAAE,CAAC;IACvH,uCAAuC;IACvC,UAAU,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAChF,iCAAiC;IACjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjD,0CAA0C;IAC1C,aAAa,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IACrG
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/host/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,aAAa;AACb,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,aAAa,CAAC,OAAO,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,SAAS,OAAO,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,GAAG,SAAS,OAAO,EAAE,CAAC;IACvH,uCAAuC;IACvC,UAAU,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAChF,iCAAiC;IACjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjD,0CAA0C;IAC1C,aAAa,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IACrG,gEAAgE;IAChE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IACzE;;;;;;OAMG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/D,sBAAsB;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAwCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,WAAW,CAmFnF;AAWD,kBAAkB;AAClB,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
|
package/lib/host/adapter.js
CHANGED
|
@@ -7,14 +7,15 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
7
7
|
return path;
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 取出可用的持久化服务;形态不匹配返回 undefined。
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* 猜测——resume/load 的报错可能来自别的环节(preset 挂载、同 id 未释放),
|
|
15
|
-
* 把它们误判成「会话不存在」会导致重建一个实际存在的会话。
|
|
12
|
+
* 宿主服务是版本漂移点,必须探测方法是否存在再调用:直接调用缺失的方法会抛
|
|
13
|
+
* `TypeError`,与「后端故障」混在一起,让调用方误以为求证过了。
|
|
16
14
|
*/
|
|
17
|
-
|
|
15
|
+
function statCapablePersistence(ctx) {
|
|
16
|
+
const persistence = safeGet(ctx, 'sessionPersistence');
|
|
17
|
+
return typeof persistence?.stat === 'function' ? persistence : undefined;
|
|
18
|
+
}
|
|
18
19
|
/** 模块级函数的动态 import 结果缓存(spec 变量路径绕开本地依赖类型检查) */
|
|
19
20
|
const moduleCache = new Map();
|
|
20
21
|
async function importModule(spec, logger) {
|
|
@@ -35,8 +36,10 @@ export function createHostAdapter(ctx, logger) {
|
|
|
35
36
|
const capabilities = [];
|
|
36
37
|
// events 读取路径只有运行时才能确定,sessionEvents 内自适应
|
|
37
38
|
capabilities.push('sessionEvents(s自适应)');
|
|
38
|
-
//
|
|
39
|
-
capabilities.push(
|
|
39
|
+
// 可能在插件启动后才注册,sessionExists/sessionHeader 内每次重新探测;此处仅记录启动时形态
|
|
40
|
+
capabilities.push(statCapablePersistence(ctx)
|
|
41
|
+
? 'sessionPersistence.stat(可用)'
|
|
42
|
+
: 'sessionPersistence.stat(不可用,会话存在性判定降级)');
|
|
40
43
|
let resolveFn;
|
|
41
44
|
const presets = safeGet(ctx, 'agentPresets');
|
|
42
45
|
if (presets && typeof presets.serviceFor === 'function') {
|
|
@@ -78,29 +81,21 @@ export function createHostAdapter(ctx, logger) {
|
|
|
78
81
|
return safeGet(ctx, name);
|
|
79
82
|
},
|
|
80
83
|
async sessionHeader(sessionId) {
|
|
81
|
-
const persistence =
|
|
84
|
+
const persistence = statCapablePersistence(ctx);
|
|
82
85
|
if (!persistence)
|
|
83
86
|
return undefined;
|
|
84
87
|
try {
|
|
85
|
-
return await persistence.
|
|
88
|
+
return (await persistence.stat(sessionId))?.header;
|
|
86
89
|
}
|
|
87
90
|
catch {
|
|
88
|
-
return undefined;
|
|
91
|
+
return undefined; // 读不到 preset 不该阻断会话打开,回落到当前 effective preset
|
|
89
92
|
}
|
|
90
93
|
},
|
|
91
94
|
async sessionExists(sessionId) {
|
|
92
|
-
const persistence =
|
|
95
|
+
const persistence = statCapablePersistence(ctx);
|
|
93
96
|
if (!persistence)
|
|
94
97
|
return undefined;
|
|
95
|
-
|
|
96
|
-
await persistence.load(sessionId);
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
catch (err) {
|
|
100
|
-
if (err?.name === NOT_FOUND_NAME)
|
|
101
|
-
return false;
|
|
102
|
-
throw err; // 求证失败 ≠ 会话不存在
|
|
103
|
-
}
|
|
98
|
+
return (await persistence.stat(sessionId)) !== undefined;
|
|
104
99
|
},
|
|
105
100
|
async buildForkSeed(events, boundary) {
|
|
106
101
|
const mod = await importModule('@deepseek-ai/dsh-session/fork', logger);
|
package/lib/host/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/host/adapter.ts"],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/host/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -100,9 +100,9 @@ export declare class SessionManager {
|
|
|
100
100
|
/**
|
|
101
101
|
* resume 失败后是否允许首次创建。
|
|
102
102
|
*
|
|
103
|
-
*
|
|
104
|
-
* sessionId 写进多个 project 目录,宿主 `list()` 随后报 duplicate
|
|
105
|
-
*
|
|
103
|
+
* 只有「会话确实不在盘上」才可创建:损坏/占用/后端故障沿用同一 id 重建,会把
|
|
104
|
+
* 同一 sessionId 写进多个 project 目录,宿主 `list()` 随后报 duplicate,会话
|
|
105
|
+
* 列表整体打不开(对齐宿主 `restoreOrCreateConfigured` 的 fail-loud 语义)。
|
|
106
106
|
*
|
|
107
107
|
* @returns 允许创建返回 true;拒绝时已记录 warn,调用方应抛出原 resume 错误。
|
|
108
108
|
*/
|
|
@@ -133,7 +133,7 @@ export class SessionManager {
|
|
|
133
133
|
* 读不到(服务缺失 / session 不存在 / 未记录 agentPreset)返回 undefined。
|
|
134
134
|
*/
|
|
135
135
|
async resolvePersistedPreset(sessionId) {
|
|
136
|
-
return (await this.host.sessionHeader(sessionId))?.
|
|
136
|
+
return (await this.host.sessionHeader(sessionId))?.agentPreset;
|
|
137
137
|
}
|
|
138
138
|
// ── 模型相关(委托给 ModelResolver) ──
|
|
139
139
|
getEffectiveModel(scope, peerId) {
|
|
@@ -483,9 +483,9 @@ export class SessionManager {
|
|
|
483
483
|
/**
|
|
484
484
|
* resume 失败后是否允许首次创建。
|
|
485
485
|
*
|
|
486
|
-
*
|
|
487
|
-
* sessionId 写进多个 project 目录,宿主 `list()` 随后报 duplicate
|
|
488
|
-
*
|
|
486
|
+
* 只有「会话确实不在盘上」才可创建:损坏/占用/后端故障沿用同一 id 重建,会把
|
|
487
|
+
* 同一 sessionId 写进多个 project 目录,宿主 `list()` 随后报 duplicate,会话
|
|
488
|
+
* 列表整体打不开(对齐宿主 `restoreOrCreateConfigured` 的 fail-loud 语义)。
|
|
489
489
|
*
|
|
490
490
|
* @returns 允许创建返回 true;拒绝时已记录 warn,调用方应抛出原 resume 错误。
|
|
491
491
|
*/
|
|
@@ -496,7 +496,7 @@ export class SessionManager {
|
|
|
496
496
|
exists = await this.host.sessionExists(sessionId);
|
|
497
497
|
}
|
|
498
498
|
catch (probeError) {
|
|
499
|
-
//
|
|
499
|
+
// 求证本身失败(持久化后端故障):无法断言不在盘上,按存在处理
|
|
500
500
|
this.logger.warn(`refusing to recreate session, existence unknown: ${context} probeErr=${errorText(probeError)}`);
|
|
501
501
|
return false;
|
|
502
502
|
}
|
|
@@ -505,8 +505,8 @@ export class SessionManager {
|
|
|
505
505
|
return false;
|
|
506
506
|
}
|
|
507
507
|
if (exists === undefined) {
|
|
508
|
-
//
|
|
509
|
-
this.logger.warn(`creating session without existence check (host lacks sessionPersistence): ${context}`);
|
|
508
|
+
// 宿主无 sessionPersistence.stat:没有求证手段,只能按 resume 结果创建(= 修复前行为)
|
|
509
|
+
this.logger.warn(`creating session without existence check (host lacks sessionPersistence.stat): ${context}`);
|
|
510
510
|
}
|
|
511
511
|
return true;
|
|
512
512
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cxyhhhhh/dsh-qqbot",
|
|
3
|
-
"version": "0.5.4-dev.
|
|
3
|
+
"version": "0.5.4-dev.202610302202",
|
|
4
4
|
"icon": "./assets/icons/qq_logo.svg",
|
|
5
5
|
"description": "在 QQ 私聊和群聊里直接对话 DeepSeek Harness。 Chat with DeepSeek Harness in QQ private and group chats.",
|
|
6
6
|
"type": "module",
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
# dsh 配置写入与会话 id 缺陷审查
|
|
2
|
-
|
|
3
|
-
> 审查基线:`main@078c338`(0.5.4)
|
|
4
|
-
> 复现用例:分支 `test/defect-repro-config-session`(提交 `0202760`)
|
|
5
|
-
> 修复:D1 `e5902f6`、E3 `e49dadf`、E1/E2 与 D1 数值保真(本分支)
|
|
6
|
-
> 日期:2026-10-30
|
|
7
|
-
|
|
8
|
-
## 1. 背景
|
|
9
|
-
|
|
10
|
-
用户反馈两类问题,需确认 0.5.4 是否已修复:
|
|
11
|
-
|
|
12
|
-
1. 以不恰当的方式操作 dsh 配置,安装后用户可能丢失自己的配置;
|
|
13
|
-
2. 以不恰当的方式固定会话 id(未沿用 dsh 的 UUID 方式),边界情况(如多进程并发)下会话列表可能出现重复 id,导致用户无法打开 dsh。
|
|
14
|
-
|
|
15
|
-
## 2. 结论速览
|
|
16
|
-
|
|
17
|
-
| 问题 | 结论 |
|
|
18
|
-
|---|---|
|
|
19
|
-
| 1. 操作 dsh 配置 | **已修复**:`cordis.patch.yml` 与 `~/.dsh/settings.yaml` 写入均满足文档保真 + 原子写 |
|
|
20
|
-
| 2. 固定会话 id | **已修复**:新 id 为 `session-${randomUUID()}`;确定性 id 仅用于迁移存量会话 |
|
|
21
|
-
|
|
22
|
-
缺陷清单与当前状态:
|
|
23
|
-
|
|
24
|
-
| 编号 | 缺陷 | 严重度 | 状态 |
|
|
25
|
-
|---|---|---|---|
|
|
26
|
-
| D1 | `settings.yaml` 整文件 load+dump:丢注释、改值、非原子、无锁 | 高 | ✅ 已修复(`e5902f6` + 本分支补数值保真) |
|
|
27
|
-
| E1 | `resume` 任何失败都当「会话不存在」,用同一 id 盲目 `create`,错误被吞 | 高 | ✅ 已修复(本分支) |
|
|
28
|
-
| E2 | 并发窗口内用 0.5.x 确定性 legacy id 新建会话 | 高 | ✅ 已修复(本分支) |
|
|
29
|
-
| E3 | `model-prefs.json` 无并发/崩溃保护,损坏后静默回落 legacy id | 中 | ✅ 已修复(`e49dadf`) |
|
|
30
|
-
| — | 行首 tab 规范化会改写多行文本内容 | — | ❌ 误报,已澄清 |
|
|
31
|
-
|
|
32
|
-
修复后用例语义由「复现当前错误行为」改为「钉死修复后行为」,文件与分组保持不变。
|
|
33
|
-
|
|
34
|
-
## 3. 问题 1:dsh 配置写入
|
|
35
|
-
|
|
36
|
-
### 3.1 已修复:`cordis.patch.yml`(提交 17a5c80、9d2cc6c)
|
|
37
|
-
|
|
38
|
-
`src/setup/persist.ts` 改用 eemeli/yaml Document API 原地编辑,满足四条约束:
|
|
39
|
-
|
|
40
|
-
| 约束 | 位置 |
|
|
41
|
-
|---|---|
|
|
42
|
-
| 文档保真(注释/锚点/`!!js`/insert 行原样保留) | `applyEdit`、`PARSE_OPTIONS` |
|
|
43
|
-
| fail-closed(非法 YAML / 顶层非数组 / config 非映射 / 锚点共享拒写) | `parseProfilePatch`、`findEntryConfig`(128-178 行) |
|
|
44
|
-
| 原子写(同目录临时文件 + rename) | `editProfilePatch`(97-105 行) |
|
|
45
|
-
| 乐观校验 + 读回验证 + 回滚 | `editProfilePatch`(89-122 行) |
|
|
46
|
-
|
|
47
|
-
三个入口 `persistCredentialsToProfile` / `removeCredentialsFromProfile` / `updateProfileConfig`(234-375 行)只改 `im-qqbot` 条目;`updateProfileConfig` 不碰 `appId/appSecret`。调用方:`src/index.ts:51`、`src/setup/index.ts:133`、`src/setup/bind-routes.ts:151/328`。测试:`persist.test.ts`、`bind-integration.test.ts`。
|
|
48
|
-
|
|
49
|
-
> 设计行为(非缺陷,需知悉):扫码重新绑定会把私聊白名单 `c2cAllow` 整体替换为扫码者一人(`overwriteC2cAllowlist`,205-214 行)。原本配置了多人白名单的用户会感知为「配置被覆盖」。
|
|
50
|
-
|
|
51
|
-
### 3.2 已修复:D1 `~/.dsh/settings.yaml`(提交 e5902f6,数值保真见本分支)
|
|
52
|
-
|
|
53
|
-
**位置**:`src/media/vision-tool.ts` `ensureVisionInputModal`,由 `src/gateway/bootstrap.ts` 在每次启动时调用。
|
|
54
|
-
|
|
55
|
-
**触发条件**:`vision.enabled` 且该视觉模型未声明 `input: [..., image]`。补齐后幂等,因此每个模型通常只在首次启动时触发一次。
|
|
56
|
-
|
|
57
|
-
采纳了修复建议 2(叶子级编辑而非停写)。改动后满足:
|
|
58
|
-
|
|
59
|
-
| 约束 | 实现 |
|
|
60
|
-
|---|---|
|
|
61
|
-
| 文档保真 | `parseDocument` + 逐层 `get` 定位到目标模型后 `model.set('input', ...)`,注释/锚点/其他命名空间原文保留 |
|
|
62
|
-
| 数值保真 | `parseDocument(..., { intAsBigInt: true })`,整数不经 double 中转(否则大整数回写丢精度) |
|
|
63
|
-
| 原子写 | 同目录临时文件 + `renameSync`,失败时清理临时文件 |
|
|
64
|
-
| 乐观校验 | 写前重读比对,窗口内被外部改动则放弃本次补写(幂等,下次启动重试) |
|
|
65
|
-
| fail-closed | 解析失败 / 定位不到目标只 `warn`,不阻断启动、不写文件 |
|
|
66
|
-
|
|
67
|
-
**回归用例**:`src/media/vision-tool.test.ts` 覆盖注释与锚点保真(D1-1)、其他命名空间值保真(D1-2)、原子写与无临时文件残留(D1-3)、乐观校验让宿主写入胜出(D1-4);`src/media/vision-modal.test.ts` 覆盖补写生效、幂等、fail-closed、tab 归一化。
|
|
68
|
-
|
|
69
|
-
**遗留(低风险,已评估)**:未使用宿主 `dsh-settings-file` 的跨进程写锁(`withFileLock`),乐观校验只把竞态窗口收窄到「读回比对 → rename」之间;临时文件名固定 `.imqqbot.tmp`,多进程同时首启会互相踩。该路径每模型仅首启触发一次且失败不损坏原文件,暂不引入锁依赖。
|
|
70
|
-
|
|
71
|
-
## 4. 问题 2:会话 id
|
|
72
|
-
|
|
73
|
-
### 4.1 已修复(提交 0a1abbb)
|
|
74
|
-
|
|
75
|
-
`src/session/session-id.ts`:
|
|
76
|
-
|
|
77
|
-
- `mintSessionId()` = `session-${randomUUID()}`,与宿主一致(`packages/host/apiproxy/src/api-proxy.ts:2168/2415`);
|
|
78
|
-
- `legacyDerivedSessionId()` 保留 0.5.x 的 SHA-256 派生算法,**仅用于定位存量会话**。
|
|
79
|
-
|
|
80
|
-
`src/session/session-manager.ts` 用到新 id 的位置:
|
|
81
|
-
|
|
82
|
-
| 场景 | 位置 |
|
|
83
|
-
|---|---|
|
|
84
|
-
| `/model` 切换 fork 子会话 | 328 行 |
|
|
85
|
-
| `/new` | 591 行 |
|
|
86
|
-
| 首次创建 | 536-541 行 |
|
|
87
|
-
| legacy 迁移:resume 命中则沿用并落盘 | 455-465、515、533 行 |
|
|
88
|
-
|
|
89
|
-
### 4.2 已修复:E1 resume 失败按原因分流
|
|
90
|
-
|
|
91
|
-
**原缺陷**:`getOrCreate` 的 `catch {}` 吞掉错误,prefs 已记录 id X 时,`resume(X)` 无论因何失败(日志损坏、IO 错误、HMR 期间同 id 未释放、preset 挂载失败等)都会接着 `create(X)`。宿主自身只在确认磁盘不存在时才 create(`packages/core/agent-loop/src/index.ts` 406-428 行,注释 “corruption and backend failures stay loud”)。
|
|
92
|
-
|
|
93
|
-
**后果**(修复前):跨进程且两个进程 cwd 不同时,jsonl 后端 `link()` 的 EEXIST 保护只覆盖同一 project 目录,同一 id 落在两个目录,之后 `list()` 抛 `duplicate JSONL session id`,**会话列表整体无法打开**——即用户反馈的现象;0.5.x 老会话遇一次瞬时错误即被永久弃用。
|
|
94
|
-
|
|
95
|
-
**修复**:宿主调用收口到 `src/host/adapter.ts`(该文件的定位就是「收口所有版本漂移点」),`session-manager` 不再直接 `ctx.get('sessionPersistence')`。
|
|
96
|
-
|
|
97
|
-
- adapter 新增 `sessionExists(sessionId): Promise<boolean | undefined>`,三种结果语义互不混同:
|
|
98
|
-
| 结果 | 含义 | 调用方动作 |
|
|
99
|
-
|---|---|---|
|
|
100
|
-
| `true` | 会话在盘上 | 拒绝重建,warn 后抛原 resume 错误 |
|
|
101
|
-
| `false` | 宿主报 `SessionPersistenceNotFoundError` | 允许首次创建 |
|
|
102
|
-
| `undefined` | 旧宿主无该服务,无求证手段 | 按 resume 结果创建,warn 留痕 |
|
|
103
|
-
| 抛出 | 求证过程本身失败(后端故障) | 拒绝重建,不能据此断言不存在 |
|
|
104
|
-
- **判定只认错误 `name`**,不做 `cause` 链回溯、不做 `ENOENT`、不做文案猜测。参照 `dsh-im` 的 `isSessionNotFound`(只比对 code)与其注释「never recognize arbitrary internal failures」:resume/load 的报错可能来自别的环节(preset 挂载、工具缺失、同 id 未释放),宽泛的文案匹配会把「工具 not found」误判成「会话不存在」,恰好触发本要防的重建。不 import 宿主错误类——插件未直接依赖 session-persistence 包,跨 realm 的 `instanceof` 也不可靠。
|
|
105
|
-
- 顺带把原先散落的 `resolvePersistedPreset` 的 `ctx.get` 也收到 adapter 的 `sessionHeader`。
|
|
106
|
-
- `mayCreateAfterResumeFailure(key, sessionId, resumeError)` 只负责按上表分流并记日志,返回 false 时由调用方抛原 resume 错误(原错误信息量大于求证错误)。
|
|
107
|
-
|
|
108
|
-
> 比建议的 `list()` 更省:`load` 是单条查询,且只在 create 路径触发一次。
|
|
109
|
-
|
|
110
|
-
**回归用例**:adapter 侧 4 个(load 成功 / NotFound name / 文案含 not found 但 name 不符 → 抛 / 无服务 → undefined);session-manager 侧 E1-1(会话在盘上不重建、prefs 不改写、日志可见)、E1-2(瞬时错误不弃用 legacy,故障恢复后仍能恢复)、E1-3(求证失败按存在处理,抛原 resume 错误)、E1-4(确认缺失 → 即使 resume 报 IO 错误也允许创建)、E1-5(旧宿主降级路径留痕)。
|
|
111
|
-
|
|
112
|
-
### 4.3 已修复:E2 确定性 id 不进入新建路径
|
|
113
|
-
|
|
114
|
-
**原缺陷**:prefs 为空时候选为 legacy id L,`resume(L)` 等待期间 prefs 被并发写入会使 `if (!getSessionId(key))` 不成立,局部 `sessionId` 仍为 L,于是用 0.5.x 确定性 id 新建会话;同时同 key 并发 `getOrCreate` 会各自 create,先建的 agent 被覆盖且未 dispose。
|
|
115
|
-
|
|
116
|
-
并发写入来源未变:`/new` 同步写 prefs,`/compact` 从磁盘拉起会话,斜杠指令位于 `concurrencyGuard` 之前(`src/gateway/middleware-setup.ts`)。
|
|
117
|
-
|
|
118
|
-
**修复**:
|
|
119
|
-
|
|
120
|
-
- `openSession` 进入时记录 `candidateIsLegacy`(prefs 是否 miss),不再以「此刻 prefs 是否为空」作判据;
|
|
121
|
-
- 新增 `resolveCreateId(key, candidate, candidateIsLegacy)`:prefs 在窗口内被改写则采用其最新 id(内存与 prefs 指向同一会话);候选来自 legacy 派生则一律铸造新 id;候选来自 prefs 且确认缺失则沿用该 id;
|
|
122
|
-
- create 成功后统一 `persistSessionId`,内存与 prefs 不再分叉;
|
|
123
|
-
- `getOrCreate` 外层加 per-key singleflight(`inflight` Map):同 key 并发复用同一次 resume/create,后到者只更新回复目标与活跃时间;完成或失败后清理在途记录。
|
|
124
|
-
|
|
125
|
-
**回归用例**:E2-1(`/new` 并发写入 → 采用 prefs 最新 id,不用 legacy)、E2-2(`/compact` 与普通消息并发 → 一次 resume/create、无多余 agent)、E2-3(singleflight 失败时双方收到同一错误且在途记录已清理)。
|
|
126
|
-
|
|
127
|
-
### 4.4 已修复:E3 `model-prefs.json` 并发/崩溃保护(提交 e49dadf)
|
|
128
|
-
|
|
129
|
-
原缺陷:映射只存于全局 `~/.dsh-qqbot/model-prefs.json`,启动读一次、之后全量快照覆盖写(非原子、无锁、写前不重读),读取失败仅在 debug 下打日志。
|
|
130
|
-
|
|
131
|
-
修复后(`src/model/prefs-store.ts`):同目录临时文件(名带 pid + 随机后缀,跨进程互不覆盖)+ rename;`mergeDisk` 写前重读按 key 合并,内存覆盖同 key;引入**删除墓碑**防止「本进程的删除被并发写复活」(建议之外的补充);加载失败经 `onError` 无条件告警;发现损坏先备份到 `.corrupted.<ts>` 再覆盖,保留人工恢复的余地。
|
|
132
|
-
|
|
133
|
-
**回归用例**:`prefs-store.test.ts` 覆盖多实例写前合并、内存覆盖同 key、外部写入新 key 不丢、删除墓碑、原子写与临时文件清理;`session-manager.test.ts` E3-4 钉死「映射丢失留下可见日志」。
|
|
134
|
-
|
|
135
|
-
### 4.5 其他
|
|
136
|
-
|
|
137
|
-
- `session-manager.ts` 头部过时注释(「SessionId 由 sessionKey 确定性派生」)已更新为当前语义:映射存于 prefs,新 id 由 `mintSessionId()` 铸造,确定性 id 仅用于迁移;
|
|
138
|
-
- 宿主调用统一经 `host/adapter.ts`,`session-manager` 内不再出现 `ctx.get`(`agentPresets` 的读取仍在 manager 内,因其返回的是插件自有服务契约而非宿主漂移点)。
|
|
139
|
-
|
|
140
|
-
### 4.6 与 dsh-im 的做法对照
|
|
141
|
-
|
|
142
|
-
`dsh-im` 走 RPC 架构,但同一问题的处理方式可直接借鉴,本次修复据此收紧:
|
|
143
|
-
|
|
144
|
-
| 关注点 | dsh-im | 本插件 |
|
|
145
|
-
|---|---|---|
|
|
146
|
-
| 判定收口 | `shared/session-error.mjs` 导出 `isSessionNotFound(code)`,13 处调用方只问布尔 | `host/adapter.ts` 导出 `sessionExists(id)`,调用方只看三态 |
|
|
147
|
-
| 判定严格度 | 只比对 code(`session-not-found` / `session/not-found`),注释明示不认任意 internal 错误 | 只比对错误 `name`,不做 cause 回溯/文案猜测 |
|
|
148
|
-
| 旧宿主兼容 | 单独的 `isSessionLogCorrupt`,**限定** method 白名单 + 特定文案签名才认 | `sessionExists` 返回 `undefined` 表示无求证手段,不猜 |
|
|
149
|
-
| 存在性求证 | `sessionExists()` 先查归档再读 history,归档算存在(否则会静默绑新会话) | `load` 单条查询,求证失败则抛而非当作不存在 |
|
|
150
|
-
|
|
151
|
-
本次按此修正了初版实现的两处过度设计:删掉 `resume-failure.ts` 的 8 层 `cause` 回溯与 `/not found|no such|does not exist/i` 宽泛正则(该正则会把「工具 not found」误判成「会话不存在」),把宿主访问从 `session-manager` 挪进 adapter。
|
|
152
|
-
|
|
153
|
-
## 5. 误报澄清
|
|
154
|
-
|
|
155
|
-
此前判断「行首 tab 规范化 `/^\t+/gm` 会改写多行文本块(如提示词)内容」**不成立**:
|
|
156
|
-
|
|
157
|
-
- 合法 YAML 中第 0 列 tab 不可能出现在块标量内部(js-yaml 直接报 `tab characters must not be used in indentation`);
|
|
158
|
-
- 块内缩进之后的 tab 不匹配 `/^\t+/m`;
|
|
159
|
-
- 多行引号字符串续行前导空白在折叠时本就被剥离。
|
|
160
|
-
|
|
161
|
-
该规范化只影响宿主本身也无法解析的非法文件。用例「误报澄清」固定该结论。
|
|
162
|
-
|
|
163
|
-
## 6. 验证方法
|
|
164
|
-
|
|
165
|
-
### 6.1 用例约定
|
|
166
|
-
|
|
167
|
-
- 用例现已全部为回归用例,断言**修复后的期望行为**;原「缺陷复现」断言(钉死当时的错误行为)已随修复逐条翻转,编号与分组保留,便于对照本文档追溯;
|
|
168
|
-
- 每组配有「对照组」用例,证明测试装置本身正确(正常路径行为符合预期)。
|
|
169
|
-
|
|
170
|
-
### 6.2 隔离手段
|
|
171
|
-
|
|
172
|
-
| 依赖 | 隔离方式 |
|
|
173
|
-
|---|---|
|
|
174
|
-
| `~/.dsh-qqbot` | `vi.mock('../shared/dirs.ts')` 指向临时目录,不触碰真实插件目录 |
|
|
175
|
-
| `~/.dsh/settings.yaml` | `DSH_HOME` 指向临时目录 |
|
|
176
|
-
| 写入中途失败 / 宿主并发写 | `vi.mock('node:fs')` 包装 `writeFileSync` / `readFileSync` 注入钩子 |
|
|
177
|
-
| 宿主 agent 注册表 | fake `get/resume/create`,用 deferred Promise 精确控制并发时序 |
|
|
178
|
-
| 宿主 persistence | `persistenceCtx(load)` 注入替身,覆盖 `sessionExists` 的四种结果;默认 `absentCtx`(磁盘无会话)对应全新用户,`emptyCtx`(无服务)对应旧宿主降级 |
|
|
179
|
-
|
|
180
|
-
### 6.3 变异检查
|
|
181
|
-
|
|
182
|
-
修复前曾临时为 `getOrCreate` 加最小修复(非「不存在」错误向上抛 + legacy 候选一律铸造)以排除「用例空转」:E1/E2 共 4 个用例全部变红,对照组保持通过。修复落地后这 4 个用例按期望行为重写,仍由同一组装置驱动。
|
|
183
|
-
|
|
184
|
-
### 6.4 运行
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
pnpm install --frozen-lockfile
|
|
188
|
-
pnpm vitest run
|
|
189
|
-
pnpm tsc
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
结果:26 个文件 291 个用例全部通过,`tsc` 无错。项目以 pnpm 管理依赖(`pnpm-lock.yaml`),仓库内的 `package-lock.json` 并非事实源,勿用 `npm ci`。
|
|
193
|
-
|
|
194
|
-
## 7. 覆盖边界
|
|
195
|
-
|
|
196
|
-
- 「会话列表出现重复 id 导致 dsh 无法打开」的最终后果发生在宿主侧,插件单测无法覆盖;单测钉死的是插件侧前提——不再对已存在 id / legacy 固定 id 发起 create,宿主侧行为依据阅读 deepseek-harness 源码;
|
|
197
|
-
- `sessionExists` 在旧宿主(无 `sessionPersistence`)上返回 `undefined`,此时退回「按 resume 结果创建」——等同修复前行为,E1-5 钉死该降级路径会留日志,但真实旧宿主未实测;
|
|
198
|
-
- 项目当前无 ESLint 配置,`pnpm lint` 不可用。
|
|
199
|
-
|
|
200
|
-
## 8. 变更影响评估
|
|
201
|
-
|
|
202
|
-
| 问题 | 回答 |
|
|
203
|
-
|---|---|
|
|
204
|
-
| 影响接口 | 会话创建/恢复(所有入站消息、`/new`、`/compact`、`/model`);启动时视觉配置自检 |
|
|
205
|
-
| 向后兼容 | legacy 迁移语义保持:prefs 未命中时仍探测 legacy 一次,resume 命中则沿用并落盘 |
|
|
206
|
-
| 行为变更 | resume 因非缺失原因失败时不再静默重建,改为向上抛——用户会看到报错而非被切到空会话;故障恢复后原会话历史仍在 |
|
|
207
|
-
| 灰度 | 会话路由变更影响全部用户,建议先在测试 bot 验证老用户(0.5.x 会话)恢复路径 |
|
|
208
|
-
| 数据迁移 | 无 DDL;`model-prefs.json` 格式不变 |
|
|
209
|
-
| 回滚 | 代码回滚即可;E3 修复引入的备份文件不影响旧版本读取 |
|