@chaoset/session-archive 0.3.9-alpha.0 → 0.3.9-alpha.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/CHANGELOG.md +47 -0
- package/lib/index.d.ts +59 -40
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +188 -87
- package/lib/index.js.map +1 -1
- package/package.json +10 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.9-alpha.2 (2026-09-09)
|
|
4
|
+
|
|
5
|
+
### Changes
|
|
6
|
+
|
|
7
|
+
* 全面接入官方契约类型:`dsh.d.ts` 不再手写任何宿主方法形状,改为映射
|
|
8
|
+
`@deepseek-ai/dsh-workspace` / `dsh-session` / `dsh-session-persistence` /
|
|
9
|
+
`dsh-session-title` 官方 d.ts(新增 devDependencies,自带 cordis Context
|
|
10
|
+
增强)——宿主契约漂移从此在 typecheck 期暴露,而非运行时
|
|
11
|
+
* host 逻辑仅走官方契约路径并移除全部旧宿主版本兼容分支:读事件流用
|
|
12
|
+
`open(id,'read')` 句柄(官方 `SessionHandle`);标题折叠改用官方
|
|
13
|
+
`foldSessionTitle`(`dsh-session-title` 纯函数,行为与宿主逐字一致,
|
|
14
|
+
含 `ignorable`/来源语义),替代手写折叠;assistant 消息文本按官方
|
|
15
|
+
`SessionEventMap` 从 `data.message.content` 提取
|
|
16
|
+
* 归档集合移除通道(官方无 unarchive API)显式标注为宿主内部形状依赖
|
|
17
|
+
(官方 d.ts 上 `enqueueOperation`/`requireState`/`setState` 为 private),
|
|
18
|
+
运行时探测可用性,形状变化自动降级
|
|
19
|
+
* 测试夹具重写为官方契约形状(快照 + 句柄 + 官方事件 data),title 事件
|
|
20
|
+
data 补全官方 `SessionTitleEventData` 必备字段(`messageSeqs`/`source`)
|
|
21
|
+
* 已在 DSH 0.1.5-alpha.1 隔离测试实例真实验证:列表/标题/详情/恢复全通过,
|
|
22
|
+
控制台零报错
|
|
23
|
+
|
|
24
|
+
## 0.3.9-alpha.1 (2026-09-09)
|
|
25
|
+
|
|
26
|
+
### Fixes
|
|
27
|
+
|
|
28
|
+
* 修复归档面板恒空:DSH 0.1.3 起 `sessionPersistence.list()` 返回
|
|
29
|
+
`SessionPersistenceSnapshot[]`(header 在 `.header` 上),旧代码直接读
|
|
30
|
+
`item.id` 全为 undefined,归档 id 一个也匹配不上,列表永远为空。现按
|
|
31
|
+
快照形状取 header,同时兼容 0.1.2 的 header 数组形状
|
|
32
|
+
* 修复详情/标题读取:`readFrom` 已从持久化契约移除,改为 `open(id,'read')`
|
|
33
|
+
句柄读事件流(用完 close),旧 `readFrom` 仍在时优先复用
|
|
34
|
+
* 修复恢复/删除对历史会话失效:`locate()` 只按当前格式版本拼日志文件名,
|
|
35
|
+
历史代际文件(`session.jsonl[.zstd]`、`session.v1.jsonl` 等)stat 落空,
|
|
36
|
+
恢复被判「文件不存在」全部拒绝(「已恢复 0 个」)、删除谎报成功但文件
|
|
37
|
+
还在。现按会话目录扫描实际代际文件(一会话一目录,目录路径不随代际
|
|
38
|
+
变化);同目录的 `session*` 同名族文件视为本会话历史代际而非他者日志
|
|
39
|
+
* 新增失败语义 `unlocatable`:文件存在但宿主后端无 `locate` 定位钩子时,
|
|
40
|
+
删除不谎报成功也不误删,按失败上报并保留文件
|
|
41
|
+
|
|
42
|
+
### Changes
|
|
43
|
+
|
|
44
|
+
* 适配 DSH 0.1.5-alpha.1:`@deepseek-ai/dsh-typert-protocol` 依赖升至
|
|
45
|
+
`^0.1.5-alpha.1`,`dsh.host` 更新为 `0.1.5-alpha.1`
|
|
46
|
+
* 测试夹具重写为双线形状(0.1.3+ 快照 + open 句柄为默认,0.1.2 header
|
|
47
|
+
数组 + readFrom 为兼容锁),新增快照形状、旧代际文件名、无 locate 降级
|
|
48
|
+
三组回归用例;测试与 DSH 0.1.5-alpha.1 真实测试实例验证通过
|
|
49
|
+
|
|
3
50
|
## 0.3.9-alpha.0 (2026-09-08)
|
|
4
51
|
|
|
5
52
|
### Changes
|
package/lib/index.d.ts
CHANGED
|
@@ -1,29 +1,42 @@
|
|
|
1
1
|
// ── dsh.d.ts augmentations (appended by scripts/build.mjs) ──
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* 宿主 service 面的类型接线。全部映射官方包发布的契约类型——官方包自带
|
|
4
|
+
* `declare module '@deepseek-ai/cordis'` 的 Context 增强(sessionPersistence /
|
|
5
|
+
* workspaceRegistry / sessions 三包均有),这里只需让插件编译期看到它们:
|
|
6
|
+
* 本文件 import 各官方包触发其模块增强,并把官方契约导出为插件内部别名。
|
|
7
|
+
*
|
|
8
|
+
* 不手写任何方法形状:宿主契约漂移(如 0.1.2→0.1.3 的 list() 快照化、
|
|
9
|
+
* readFrom 移除)由官方 d.ts 直接体现在 typecheck,而不是运行时才炸。
|
|
10
|
+
*/
|
|
11
|
+
import '@deepseek-ai/dsh-session-persistence';
|
|
12
|
+
import '@deepseek-ai/dsh-workspace';
|
|
13
|
+
import '@deepseek-ai/dsh-session';
|
|
14
|
+
import type { SessionPersistenceSnapshot, SessionHandle, SessionLocation } from '@deepseek-ai/dsh-session-persistence';
|
|
15
|
+
import type { Workspace, WorkspaceRegistry } from '@deepseek-ai/dsh-workspace';
|
|
16
|
+
import type { Session, SessionEvent, SessionHeader, SessionId, SessionStore } from '@deepseek-ai/dsh-session';
|
|
17
|
+
import type { SessionTitleEventData } from '@deepseek-ai/dsh-session-title';
|
|
3
18
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
}
|
|
19
|
+
export type {
|
|
20
|
+
SessionPersistenceSnapshot,
|
|
21
|
+
SessionHandle,
|
|
22
|
+
SessionLocation,
|
|
23
|
+
Workspace,
|
|
24
|
+
WorkspaceRegistry,
|
|
25
|
+
Session,
|
|
26
|
+
SessionEvent,
|
|
27
|
+
SessionHeader,
|
|
28
|
+
SessionId,
|
|
29
|
+
SessionStore,
|
|
30
|
+
SessionTitleEventData,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* jsonl 后端的 `locate` 诊断钩子:按会话头返回当前代际工件路径。它不在
|
|
35
|
+
* `SessionPersistence` 抽象契约上(0.1.3 起从基类移除),删除/恢复的物理
|
|
36
|
+
* 定位运行时探测它,缺失时降级为「不可定位」而非失败。
|
|
37
|
+
*/
|
|
38
|
+
export interface LocatableSessionPersistence {
|
|
39
|
+
locate?(meta: SessionHeader): SessionLocation | undefined;
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
/**
|
|
@@ -33,16 +46,18 @@ declare module "@deepseek-ai/cordis" {
|
|
|
33
46
|
* 会话(列表 + 会话内容只读浏览)、一次多选批量恢复归档(unarchive,
|
|
34
47
|
* 会话回到会话树原位置)或彻底删除归档(删除持久化文件与归档记录)。
|
|
35
48
|
*
|
|
36
|
-
* host 端全部逻辑基于官方 service
|
|
37
|
-
*
|
|
49
|
+
* host 端全部逻辑基于官方 service 契约类型(@deepseek-ai/dsh-workspace /
|
|
50
|
+
* dsh-session / dsh-session-persistence / dsh-session-title 的官方 d.ts),
|
|
51
|
+
* 面向 DSH 0.1.5-alpha 宿主线,不保留旧宿主版本兼容:
|
|
38
52
|
* 1. list() — archivedSessionIds ∩ sessionPersistence.list(),
|
|
39
|
-
*
|
|
53
|
+
* 每条附带标题(官方 foldSessionTitle 折叠)、目录、
|
|
40
54
|
* 创建时间、最后修改时间(文件 mtime)、体积与
|
|
41
55
|
* live 状态(会话仍在内存中运行时禁止删除)。
|
|
42
|
-
* 2. detail(id) —
|
|
43
|
-
*
|
|
56
|
+
* 2. detail(id) — open(id,'read') 句柄只读会话事件流(标题 + 文本
|
|
57
|
+
* 消息 user/assistant),供面板"查看"展开。
|
|
44
58
|
* 3. delete(ids) — 批量彻底删除:live 会话拒绝;逐个删除持久化文件
|
|
45
|
-
* (locate()
|
|
59
|
+
* (jsonl 后端的 locate() 定位,落空时按会话目录扫
|
|
60
|
+
* 实际代际文件)+ 会话目录。删除后**保留**该会话在
|
|
46
61
|
* 归档集合中的 ghost id(不调用移除):宿主的
|
|
47
62
|
* archiveSession 只改归档注册表、不停止内存会话,web
|
|
48
63
|
* 客户端重连还会把旧 tab 恢复进内存——删除时若把 id
|
|
@@ -54,14 +69,18 @@ declare module "@deepseek-ai/cordis" {
|
|
|
54
69
|
* 会话 id(文件已删的 ghost id 拒绝恢复,防止已彻底
|
|
55
70
|
* 删除的会话"复活"回侧边栏);会话数据不动。
|
|
56
71
|
*
|
|
57
|
-
* 归档集合(workspaceRegistry.archivedSessionIds
|
|
58
|
-
*
|
|
59
|
-
* → setState,与 archiveSession
|
|
60
|
-
*
|
|
72
|
+
* 归档集合(workspaceRegistry.archivedSessionIds)的移除没有官方 API
|
|
73
|
+
* (官方只有 archiveSession 方向),这里复用 registry 自身的串行化写入
|
|
74
|
+
* 通道(enqueueOperation → requireState → setState,与 archiveSession
|
|
75
|
+
* 相同的路径;官方 d.ts 上为 private,运行时探测);若 registry 内部形状
|
|
76
|
+
* 变化,自动降级为"仅删文件",归档列表会以存在性过滤幽灵 id,功能仍正确。
|
|
61
77
|
*
|
|
62
|
-
*
|
|
78
|
+
* 本文件运行时不依赖任何 dsh 内部包(纯 ESM + ctx.* service + 官方
|
|
79
|
+
* foldSessionTitle 纯函数),可独立安装;官方包仅作为 devDependency 提供
|
|
80
|
+
* 契约类型。
|
|
63
81
|
*/
|
|
64
82
|
import type { Context } from '@deepseek-ai/cordis';
|
|
83
|
+
import type { SessionId } from '@deepseek-ai/dsh-session';
|
|
65
84
|
export declare const name = "session-archive";
|
|
66
85
|
/** sessions 参与 inject:删除前必须能查询 live 会话(存在即拒绝删除)。 */
|
|
67
86
|
export declare const inject: string[];
|
|
@@ -93,10 +112,10 @@ export declare function createArchiveHost(ctx: Context, cfg: Record<string, any>
|
|
|
93
112
|
detail(sessionId: string): Promise<{
|
|
94
113
|
sessionId: string;
|
|
95
114
|
header: {
|
|
96
|
-
cwd:
|
|
97
|
-
createdAt:
|
|
98
|
-
parentSession:
|
|
99
|
-
agentPreset:
|
|
115
|
+
cwd: string | null;
|
|
116
|
+
createdAt: number;
|
|
117
|
+
parentSession: SessionId | null;
|
|
118
|
+
agentPreset: string | null;
|
|
100
119
|
};
|
|
101
120
|
title: string | null;
|
|
102
121
|
messageCount: number;
|
|
@@ -105,7 +124,7 @@ export declare function createArchiveHost(ctx: Context, cfg: Record<string, any>
|
|
|
105
124
|
messages: {
|
|
106
125
|
role: string;
|
|
107
126
|
text: string;
|
|
108
|
-
time:
|
|
127
|
+
time: number;
|
|
109
128
|
}[];
|
|
110
129
|
live: boolean;
|
|
111
130
|
}>;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAGV,SAAS,EACV,MAAM,0BAA0B,CAAC;AAgBlC,eAAO,MAAM,IAAI,oBAAoB,CAAC;AAEtC,oDAAoD;AACpD,eAAO,MAAM,MAAM,UAA0D,CAAC;AA2D9E,eAAO,MAAM,MAAM;IARjB,iCAAiC;;IAEjC,8BAA8B;;IAE9B,4BAA4B;;CAIa,CAAC;AAyE5C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAgNpE;;0BAEsB;IAChB,KAAK;;;IAUX,sCAAsC;IAChC,IAAI;;;IAeV;+CAC2C;IACrC,MAAM,YAAY,MAAM;;;YAkCxB,GAAG;YACH,SAAS;YACT,aAAa;YACb,WAAW;;;;;;;;;;;;;IAWjB;;;;;;;;;;;;OAYG;IACG,cAAc,aAAa,MAAM,EAAE;;;;;;;;IA8FzC;;;;OAIG;IACG,SAAS,aAAa,MAAM,EAAE;;;;EAwBvC;AAED,iCAAiC;AACjC,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAmBrD"}
|
package/lib/index.js
CHANGED
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
* 会话(列表 + 会话内容只读浏览)、一次多选批量恢复归档(unarchive,
|
|
6
6
|
* 会话回到会话树原位置)或彻底删除归档(删除持久化文件与归档记录)。
|
|
7
7
|
*
|
|
8
|
-
* host 端全部逻辑基于官方 service
|
|
9
|
-
*
|
|
8
|
+
* host 端全部逻辑基于官方 service 契约类型(@deepseek-ai/dsh-workspace /
|
|
9
|
+
* dsh-session / dsh-session-persistence / dsh-session-title 的官方 d.ts),
|
|
10
|
+
* 面向 DSH 0.1.5-alpha 宿主线,不保留旧宿主版本兼容:
|
|
10
11
|
* 1. list() — archivedSessionIds ∩ sessionPersistence.list(),
|
|
11
|
-
*
|
|
12
|
+
* 每条附带标题(官方 foldSessionTitle 折叠)、目录、
|
|
12
13
|
* 创建时间、最后修改时间(文件 mtime)、体积与
|
|
13
14
|
* live 状态(会话仍在内存中运行时禁止删除)。
|
|
14
|
-
* 2. detail(id) —
|
|
15
|
-
*
|
|
15
|
+
* 2. detail(id) — open(id,'read') 句柄只读会话事件流(标题 + 文本
|
|
16
|
+
* 消息 user/assistant),供面板"查看"展开。
|
|
16
17
|
* 3. delete(ids) — 批量彻底删除:live 会话拒绝;逐个删除持久化文件
|
|
17
|
-
* (locate()
|
|
18
|
+
* (jsonl 后端的 locate() 定位,落空时按会话目录扫
|
|
19
|
+
* 实际代际文件)+ 会话目录。删除后**保留**该会话在
|
|
18
20
|
* 归档集合中的 ghost id(不调用移除):宿主的
|
|
19
21
|
* archiveSession 只改归档注册表、不停止内存会话,web
|
|
20
22
|
* 客户端重连还会把旧 tab 恢复进内存——删除时若把 id
|
|
@@ -26,15 +28,19 @@
|
|
|
26
28
|
* 会话 id(文件已删的 ghost id 拒绝恢复,防止已彻底
|
|
27
29
|
* 删除的会话"复活"回侧边栏);会话数据不动。
|
|
28
30
|
*
|
|
29
|
-
* 归档集合(workspaceRegistry.archivedSessionIds
|
|
30
|
-
*
|
|
31
|
-
* → setState,与 archiveSession
|
|
32
|
-
*
|
|
31
|
+
* 归档集合(workspaceRegistry.archivedSessionIds)的移除没有官方 API
|
|
32
|
+
* (官方只有 archiveSession 方向),这里复用 registry 自身的串行化写入
|
|
33
|
+
* 通道(enqueueOperation → requireState → setState,与 archiveSession
|
|
34
|
+
* 相同的路径;官方 d.ts 上为 private,运行时探测);若 registry 内部形状
|
|
35
|
+
* 变化,自动降级为"仅删文件",归档列表会以存在性过滤幽灵 id,功能仍正确。
|
|
33
36
|
*
|
|
34
|
-
*
|
|
37
|
+
* 本文件运行时不依赖任何 dsh 内部包(纯 ESM + ctx.* service + 官方
|
|
38
|
+
* foldSessionTitle 纯函数),可独立安装;官方包仅作为 devDependency 提供
|
|
39
|
+
* 契约类型。
|
|
35
40
|
*/
|
|
36
41
|
import { readdir, stat, rm } from 'node:fs/promises';
|
|
37
|
-
import { basename, dirname } from 'node:path';
|
|
42
|
+
import { basename, dirname, join } from 'node:path';
|
|
43
|
+
import { foldSessionTitle } from '@deepseek-ai/dsh-session-title';
|
|
38
44
|
import { createConfigStore } from './config-store.js';
|
|
39
45
|
// remote 服务(侧边栏面板 UI 的读写)可选:typert-protocol 不可用时
|
|
40
46
|
// 动态 import 失败,仅面板不可用,host 逻辑不注册(无其他消费者)。
|
|
@@ -85,6 +91,11 @@ async function removeSessionDirIfOwned(sessionId, filePath, warn) {
|
|
|
85
91
|
for (const entry of entries) {
|
|
86
92
|
if (entry === ownFile)
|
|
87
93
|
continue;
|
|
94
|
+
// session*.jsonl(.zstd) 是本会话自己的历史代际(官方代际命名 session[.vN]
|
|
95
|
+
// .jsonl[.zstd],目录归属校验已确认整个目录属于该会话),不算他者日志;
|
|
96
|
+
// 其余 .jsonl 一律视为他者。
|
|
97
|
+
if (entry.startsWith('session.') && (entry.endsWith('.jsonl') || entry.endsWith('.jsonl.zstd')))
|
|
98
|
+
continue;
|
|
88
99
|
if (entry.endsWith('.jsonl') || entry.endsWith('.jsonl.zstd')) {
|
|
89
100
|
warn(`session-archive: session directory "${base}" holds other session logs; keeping it`);
|
|
90
101
|
return;
|
|
@@ -124,6 +135,24 @@ function normalizeConfig(source, defaults = DEFAULT_CONFIG) {
|
|
|
124
135
|
titleReadConcurrency: positiveInt(merged.titleReadConcurrency, defaults.titleReadConcurrency),
|
|
125
136
|
};
|
|
126
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* 读取一个会话的完整事件流与头(官方契约路径:open 一个 read 句柄再
|
|
140
|
+
* read(0),用完 close——不 close 会漏句柄;头从句柄上取)。
|
|
141
|
+
*/
|
|
142
|
+
async function readSession(persistence, sessionId) {
|
|
143
|
+
const handle = await persistence.open(sessionId, 'read');
|
|
144
|
+
try {
|
|
145
|
+
const { events } = await handle.read(0);
|
|
146
|
+
return { header: handle.header, events: [...events] };
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
await handle.close();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** 从快照列表里取某会话的头(ghost 分支拿 cwd 供 locate 兜底用)。 */
|
|
153
|
+
function headerFromList(snapshots, sessionId) {
|
|
154
|
+
return snapshots.find((snapshot) => snapshot.header.id === sessionId)?.header;
|
|
155
|
+
}
|
|
127
156
|
/** 并发限制器:最多 N 个任务并行,其余排队。 */
|
|
128
157
|
function limitedConcurrency(limit, tasks) {
|
|
129
158
|
const results = new Array(tasks.length);
|
|
@@ -137,24 +166,14 @@ function limitedConcurrency(limit, tasks) {
|
|
|
137
166
|
});
|
|
138
167
|
return Promise.all(workers).then(() => results);
|
|
139
168
|
}
|
|
140
|
-
/**
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
if (event && event.type === 'session/title') {
|
|
145
|
-
const title = event.data && typeof event.data.title === 'string' ? event.data.title.trim() : '';
|
|
146
|
-
return title.length > 0 ? title : null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
/** 从一条消息(Message 结构)提取纯文本(text 块拼接,忽略图片/工具块)。 */
|
|
152
|
-
function messageText(message, maxChars) {
|
|
153
|
-
if (!message || !Array.isArray(message.content))
|
|
169
|
+
/** 从一条消息提取纯文本(text 块拼接,忽略图片/工具块)。
|
|
170
|
+
* 官方 Message.content 是 ContentBlock[],这里只取 type:'text' 的块。 */
|
|
171
|
+
function messageText(content, maxChars) {
|
|
172
|
+
if (!Array.isArray(content))
|
|
154
173
|
return '';
|
|
155
174
|
let text = '';
|
|
156
|
-
for (const block of
|
|
157
|
-
if (block && block.type === 'text' && typeof block.text === 'string') {
|
|
175
|
+
for (const block of content) {
|
|
176
|
+
if (block && typeof block === 'object' && block.type === 'text' && typeof block.text === 'string') {
|
|
158
177
|
text += block.text;
|
|
159
178
|
if (text.length > maxChars)
|
|
160
179
|
break;
|
|
@@ -169,10 +188,8 @@ function messageText(message, maxChars) {
|
|
|
169
188
|
export function createArchiveHost(ctx, cfg) {
|
|
170
189
|
const registry = ctx.workspaceRegistry;
|
|
171
190
|
const persistence = ctx.sessionPersistence;
|
|
172
|
-
/**
|
|
173
|
-
const archivedSet = () => new Set(
|
|
174
|
-
? registry.archivedSessionIds()
|
|
175
|
-
: (Array.isArray(registry.archivedSessionIds) ? registry.archivedSessionIds : []));
|
|
191
|
+
/** 当前归档集合快照(官方契约:getter 返回只读 SessionId 数组)。 */
|
|
192
|
+
const archivedSet = () => new Set(registry.archivedSessionIds);
|
|
176
193
|
/** 会话是否"活跃"(不能安全删除)。
|
|
177
194
|
* 宿主的 archiveSession 只改归档注册表、不停止内存会话,web 客户端
|
|
178
195
|
* 重连还会把旧 tab 恢复进内存——归档会话因此长期"内存存在"。但归档
|
|
@@ -183,23 +200,34 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
183
200
|
const isLive = (sessionId) => ctx.sessions.get(sessionId) !== undefined && !archivedSet().has(sessionId);
|
|
184
201
|
/** 归档瞬间的生成流兜底:会话仍在内存且文件最近有写入(60s 内)时
|
|
185
202
|
* 视为忙碌——删除文件后进行中的请求会把半截日志 append 回来。 */
|
|
186
|
-
const isBusy = (sessionId, file) =>
|
|
187
|
-
/**
|
|
203
|
+
const isBusy = (sessionId, file) => ctx.sessions.get(sessionId) !== undefined && Date.now() - file.mtimeMs < BUSY_WRITE_WINDOW_MS;
|
|
204
|
+
/**
|
|
205
|
+
* 从归档集合移除若干 id(恢复用;删除不调用——见 deleteArchived),返回实际移除的 id。
|
|
206
|
+
*
|
|
207
|
+
* 归档集合的移除没有官方 API(官方只有 archiveSession 方向),这里复用
|
|
208
|
+
* registry 自身的串行化写入通道 enqueueOperation → requireState → setState
|
|
209
|
+
* (与官方 archiveSession 相同的路径)。三者在 0.1.5 官方 d.ts 上是 private
|
|
210
|
+
* ——宿主内部形状,这里以显式断言收窄并在运行时探测可用性:形状一旦
|
|
211
|
+
* 变化自动降级为"仅删文件",归档列表按存在性过滤幽灵 id,功能仍正确。
|
|
212
|
+
*
|
|
188
213
|
* confirm 在 registry 写锁临界区内逐个复核 id 是否仍可恢复(文件仍存在):
|
|
189
214
|
* 存在性检查放在锁外的话,并发 deleteArchived 可在检查与移除之间删掉文件,
|
|
190
|
-
* 结果"文件没了、归档标记也没了",内存中的会话立刻重回侧边栏。
|
|
215
|
+
* 结果"文件没了、归档标记也没了",内存中的会话立刻重回侧边栏。
|
|
216
|
+
*/
|
|
191
217
|
async function removeFromArchiveSet(ids, confirm) {
|
|
192
218
|
const set = new Set(ids);
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
219
|
+
// 显式断言:私有写入通道的形状(官方 d.ts 未承诺),运行时探测兜底。
|
|
220
|
+
// 用索引签名绕开 private 成员的交叉归约——这是对宿主内部形状的受控依赖。
|
|
221
|
+
const writable = registry;
|
|
222
|
+
const canWrite = typeof writable.enqueueOperation === 'function' &&
|
|
223
|
+
typeof writable.requireState === 'function' &&
|
|
224
|
+
typeof writable.setState === 'function';
|
|
197
225
|
if (!canWrite)
|
|
198
226
|
return []; // 降级:仅删文件,列表按存在性过滤幽灵 id
|
|
199
227
|
let removedIds = [];
|
|
200
|
-
await
|
|
201
|
-
const state =
|
|
202
|
-
const current =
|
|
228
|
+
await writable.enqueueOperation(async () => {
|
|
229
|
+
const state = writable.requireState();
|
|
230
|
+
const current = [...state.archivedSessionIds];
|
|
203
231
|
let eligible = current.filter((id) => set.has(id));
|
|
204
232
|
if (confirm !== undefined) {
|
|
205
233
|
const confirmed = [];
|
|
@@ -218,37 +246,92 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
218
246
|
const removedSet = new Set(removedIds);
|
|
219
247
|
const remaining = current.filter((id) => !removedSet.has(id));
|
|
220
248
|
if (removedIds.length > 0)
|
|
221
|
-
await
|
|
249
|
+
await writable.setState({ ...state, archivedSessionIds: remaining });
|
|
222
250
|
});
|
|
223
251
|
return removedIds;
|
|
224
252
|
}
|
|
225
|
-
/**
|
|
253
|
+
/**
|
|
254
|
+
* 解析会话目录里的实际日志文件。locate() 只按当前格式版本拼文件名
|
|
255
|
+
* (如 session.v2.jsonl.zstd),而历史上落盘的可能是旧代际名
|
|
256
|
+
* (session.jsonl / session.v1.jsonl…,0.1.5 的代际解析把 v0 起全部
|
|
257
|
+
* 视为合法代际)——stat 落空不等于会话不存在。官方布局是"一会话一
|
|
258
|
+
* 目录",目录路径不随代际变化,因此在 locate 给出的目录里扫描
|
|
259
|
+
* session*.jsonl(.zstd) 取实际文件(多个代际并存时取最新 mtime)。
|
|
260
|
+
* 扫描结果为空才认定文件不存在。
|
|
261
|
+
*/
|
|
262
|
+
async function resolveGenerationFile(dir) {
|
|
263
|
+
let entries;
|
|
264
|
+
try {
|
|
265
|
+
entries = await readdir(dir);
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
return null; // 目录不存在:无任何代际文件
|
|
269
|
+
}
|
|
270
|
+
let latest = null;
|
|
271
|
+
for (const entry of entries) {
|
|
272
|
+
if (!entry.startsWith('session.') || !(entry.endsWith('.jsonl') || entry.endsWith('.jsonl.zstd')))
|
|
273
|
+
continue;
|
|
274
|
+
const candidate = join(dir, entry);
|
|
275
|
+
try {
|
|
276
|
+
const info = await stat(candidate);
|
|
277
|
+
if (latest === null || info.mtimeMs > latest.mtimeMs)
|
|
278
|
+
latest = { path: candidate, mtimeMs: info.mtimeMs };
|
|
279
|
+
}
|
|
280
|
+
catch { } // 竞态消失的条目跳过
|
|
281
|
+
}
|
|
282
|
+
return latest?.path ?? null;
|
|
283
|
+
}
|
|
226
284
|
async function fileInfo(header) {
|
|
227
285
|
try {
|
|
286
|
+
if (typeof persistence.locate !== 'function')
|
|
287
|
+
return { state: 'unknown' };
|
|
228
288
|
const location = persistence.locate(header);
|
|
229
|
-
if (location === undefined || typeof location.path !== 'string' || location.path.length === 0)
|
|
230
|
-
return
|
|
231
|
-
|
|
232
|
-
|
|
289
|
+
if (location === undefined || typeof location.path !== 'string' || location.path.length === 0) {
|
|
290
|
+
return { state: 'unknown' };
|
|
291
|
+
}
|
|
292
|
+
// 先试 locate 的当前代际路径,落空再扫会话目录里的实际代际文件。
|
|
293
|
+
const candidatePaths = [location.path];
|
|
294
|
+
const generation = await resolveGenerationFile(dirname(location.path));
|
|
295
|
+
if (generation !== null)
|
|
296
|
+
candidatePaths.unshift(generation);
|
|
297
|
+
for (const candidate of candidatePaths) {
|
|
298
|
+
try {
|
|
299
|
+
const info = await stat(candidate);
|
|
300
|
+
return { state: 'located', path: candidate, size: info.size, mtimeMs: info.mtimeMs };
|
|
301
|
+
}
|
|
302
|
+
catch { } // ENOENT 或竞态:试下一个候选
|
|
303
|
+
}
|
|
304
|
+
return { state: 'absent' };
|
|
233
305
|
}
|
|
234
306
|
catch {
|
|
235
|
-
return
|
|
307
|
+
return { state: 'absent' };
|
|
236
308
|
}
|
|
237
309
|
}
|
|
238
|
-
/** ghost 分支的孤儿探测:不经持久化枚举,直接 locate(
|
|
310
|
+
/** ghost 分支的孤儿探测:不经持久化枚举,直接 locate(header) + stat 判断文件
|
|
239
311
|
* 是否实际存在(persistence.list() 会静默跳过首行损坏的日志,"枚举不到"
|
|
240
312
|
* 不等于"文件不存在")。cwd 未知的 ghost id 只能探到缺省位置(_no-cwd 一类),
|
|
241
|
-
*
|
|
242
|
-
|
|
313
|
+
* 尽力而为;locate 指向的当前代际名落空时同样扫目录里的实际代际文件。
|
|
314
|
+
* 返回存在的路径;'absent' 确认不存在;无法定位返回 'unknown'。 */
|
|
315
|
+
async function probeOrphanFile(sessionId, cwd) {
|
|
243
316
|
try {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
317
|
+
if (typeof persistence.locate !== 'function')
|
|
318
|
+
return 'unknown';
|
|
319
|
+
// ghost 探测没有完整 header(cwd 未知时只能探到缺省位置一类)。
|
|
320
|
+
// 合成最小头:version 用官方 SESSION_FORMAT_VERSION 的当前字面(3),
|
|
321
|
+
// locate 只消费 id/cwd 两个字段。
|
|
322
|
+
const location = persistence.locate({ id: sessionId, cwd, createdAt: 0, version: 3, isSeeded: false });
|
|
323
|
+
if (location === undefined || typeof location.path !== 'string' || location.path.length === 0) {
|
|
324
|
+
return 'unknown';
|
|
325
|
+
}
|
|
326
|
+
try {
|
|
327
|
+
await stat(location.path);
|
|
328
|
+
return location.path;
|
|
329
|
+
}
|
|
330
|
+
catch { }
|
|
331
|
+
return await resolveGenerationFile(dirname(location.path)) ?? 'absent';
|
|
249
332
|
}
|
|
250
333
|
catch {
|
|
251
|
-
return
|
|
334
|
+
return 'absent';
|
|
252
335
|
}
|
|
253
336
|
}
|
|
254
337
|
/** 删除后的复验:先等 settleMs 给进行中的写入留出落盘时间,再确认文件没有
|
|
@@ -266,34 +349,41 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
266
349
|
}
|
|
267
350
|
}
|
|
268
351
|
/** 单个归档会话的展示行。标题读取失败回退 null(面板显示目录名)。
|
|
269
|
-
* 标题按 mtime 缓存:
|
|
270
|
-
*
|
|
271
|
-
*
|
|
352
|
+
* 标题按 mtime 缓存:readSession 会解析整条事件流,而面板关闭态的徽标
|
|
353
|
+
* 轮询每 5 秒打一次 list——不缓存的话就是"读整本会话只为取一行标题"的
|
|
354
|
+
* 持续开销。mtime 不变即命中缓存;文件不可定位(无 locate 的宿主后端)
|
|
355
|
+
* 时跳过缓存直接读,标题仍然可得。折叠用官方 foldSessionTitle。 */
|
|
272
356
|
const titleCache = new Map();
|
|
273
357
|
async function rowFor(sessionId, header) {
|
|
274
358
|
const file = await fileInfo(header);
|
|
359
|
+
const located = file.state === 'located' ? file : null;
|
|
275
360
|
let title = null;
|
|
276
|
-
if (
|
|
361
|
+
if (located !== null) {
|
|
277
362
|
const cached = titleCache.get(sessionId);
|
|
278
|
-
if (cached !== undefined && cached.mtimeMs ===
|
|
363
|
+
if (cached !== undefined && cached.mtimeMs === located.mtimeMs) {
|
|
279
364
|
title = cached.title;
|
|
280
365
|
}
|
|
281
366
|
else {
|
|
282
367
|
try {
|
|
283
|
-
|
|
284
|
-
title = foldTitle(events);
|
|
368
|
+
title = foldSessionTitle((await readSession(persistence, sessionId)).events)?.title ?? null;
|
|
285
369
|
}
|
|
286
370
|
catch { }
|
|
287
|
-
titleCache.set(sessionId, { mtimeMs:
|
|
371
|
+
titleCache.set(sessionId, { mtimeMs: located.mtimeMs, title });
|
|
288
372
|
}
|
|
289
373
|
}
|
|
374
|
+
else {
|
|
375
|
+
try {
|
|
376
|
+
title = foldSessionTitle((await readSession(persistence, sessionId)).events)?.title ?? null;
|
|
377
|
+
}
|
|
378
|
+
catch { }
|
|
379
|
+
}
|
|
290
380
|
return {
|
|
291
381
|
sessionId,
|
|
292
382
|
title,
|
|
293
383
|
cwd: header.cwd ?? null,
|
|
294
384
|
createdAt: header.createdAt,
|
|
295
|
-
updatedAt:
|
|
296
|
-
size:
|
|
385
|
+
updatedAt: located !== null ? located.mtimeMs : header.createdAt,
|
|
386
|
+
size: located !== null ? located.size : 0,
|
|
297
387
|
live: isLive(sessionId),
|
|
298
388
|
};
|
|
299
389
|
}
|
|
@@ -305,8 +395,8 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
305
395
|
const archived = [...archivedSet()];
|
|
306
396
|
if (archived.length === 0)
|
|
307
397
|
return { count: 0 };
|
|
308
|
-
const
|
|
309
|
-
const persisted = new Set(
|
|
398
|
+
const snapshots = await persistence.list();
|
|
399
|
+
const persisted = new Set(snapshots.map((snapshot) => snapshot.header.id));
|
|
310
400
|
let count = 0;
|
|
311
401
|
for (const sessionId of archived)
|
|
312
402
|
if (persisted.has(sessionId))
|
|
@@ -318,8 +408,8 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
318
408
|
const archived = [...archivedSet()];
|
|
319
409
|
if (archived.length === 0)
|
|
320
410
|
return { items: [] };
|
|
321
|
-
const
|
|
322
|
-
const byId = new Map(
|
|
411
|
+
const snapshots = await persistence.list();
|
|
412
|
+
const byId = new Map(snapshots.map((snapshot) => [snapshot.header.id, snapshot.header]));
|
|
323
413
|
const rows = [];
|
|
324
414
|
for (const sessionId of archived) {
|
|
325
415
|
const header = byId.get(sessionId);
|
|
@@ -336,8 +426,9 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
336
426
|
if (!archivedSet().has(sessionId)) {
|
|
337
427
|
throw Object.assign(new Error('session not archived: ' + sessionId), { code: 'NOT_ARCHIVED' });
|
|
338
428
|
}
|
|
339
|
-
const
|
|
340
|
-
const
|
|
429
|
+
const id = sessionId;
|
|
430
|
+
const { header: meta, events } = await readSession(persistence, id);
|
|
431
|
+
const title = foldSessionTitle(events)?.title ?? null;
|
|
341
432
|
const messages = [];
|
|
342
433
|
let totalMessageCount = 0;
|
|
343
434
|
for (const event of events) {
|
|
@@ -349,7 +440,9 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
349
440
|
totalMessageCount++;
|
|
350
441
|
continue;
|
|
351
442
|
}
|
|
352
|
-
|
|
443
|
+
// 官方事件 data:user/message 是 UserMessage 本体(content 在自身),
|
|
444
|
+
// assistant/message 是包装对象(content 在 .message.content)。
|
|
445
|
+
const text = messageText(event.type === 'user/message' ? event.data.content : event.data.message.content, cfg.messagePreviewChars);
|
|
353
446
|
if (text.length === 0)
|
|
354
447
|
continue;
|
|
355
448
|
messages.push({
|
|
@@ -372,7 +465,7 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
372
465
|
totalMessageCount,
|
|
373
466
|
truncated: totalMessageCount > messages.length,
|
|
374
467
|
messages,
|
|
375
|
-
live: isLive(
|
|
468
|
+
live: isLive(id),
|
|
376
469
|
};
|
|
377
470
|
},
|
|
378
471
|
/**
|
|
@@ -396,14 +489,15 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
396
489
|
// 会话,不校验的话任何"未归档、不在内存"的会话 id 都会绕过 live/busy
|
|
397
490
|
// 两道保护被不可逆物理删除。
|
|
398
491
|
const archived = archivedSet();
|
|
399
|
-
const
|
|
400
|
-
const headersById = new Map(
|
|
492
|
+
const snapshots = await persistence.list();
|
|
493
|
+
const headersById = new Map(snapshots.map((snapshot) => [snapshot.header.id, snapshot.header]));
|
|
401
494
|
for (const sessionId of unique) {
|
|
495
|
+
const id = sessionId;
|
|
402
496
|
if (!archived.has(sessionId)) {
|
|
403
497
|
failed.push({ sessionId, reason: 'not-archived' });
|
|
404
498
|
continue;
|
|
405
499
|
}
|
|
406
|
-
if (isLive(
|
|
500
|
+
if (isLive(id)) {
|
|
407
501
|
failed.push({ sessionId, reason: 'live' });
|
|
408
502
|
continue;
|
|
409
503
|
}
|
|
@@ -411,9 +505,11 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
411
505
|
if (header === undefined) {
|
|
412
506
|
// ghost id(枚举不到)。但"枚举不到 ≠ 文件不存在":首行损坏的日志
|
|
413
507
|
// 会被 persistence.list() 静默跳过,直接当 ghost 报成功会把永远
|
|
414
|
-
// 删不掉的孤儿文件留在磁盘上。先 locate(
|
|
415
|
-
// "有文件但不可枚举",计入 failed
|
|
416
|
-
|
|
508
|
+
// 删不掉的孤儿文件留在磁盘上。先 locate(header) 探测,探到文件即
|
|
509
|
+
// "有文件但不可枚举",计入 failed 而非谎报成功;定位钩子缺失
|
|
510
|
+
// (unknown)同样不能确认缺失,按不可枚举兜底。
|
|
511
|
+
const orphan = await probeOrphanFile(id, headerFromList(snapshots, sessionId)?.cwd);
|
|
512
|
+
if (orphan !== 'absent') {
|
|
417
513
|
failed.push({ sessionId, reason: 'unenumerable' });
|
|
418
514
|
continue;
|
|
419
515
|
}
|
|
@@ -422,11 +518,16 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
422
518
|
continue;
|
|
423
519
|
}
|
|
424
520
|
const file = await fileInfo(header);
|
|
425
|
-
if (file ===
|
|
521
|
+
if (file.state === 'unknown') {
|
|
522
|
+
// 文件存在(枚举得到)但无法定位路径:删不得也不该谎报成功。
|
|
523
|
+
failed.push({ sessionId, reason: 'unlocatable' });
|
|
524
|
+
continue;
|
|
525
|
+
}
|
|
526
|
+
if (file.state === 'absent') {
|
|
426
527
|
deleted.push(sessionId);
|
|
427
528
|
continue;
|
|
428
529
|
}
|
|
429
|
-
if (isBusy(
|
|
530
|
+
if (isBusy(id, file)) {
|
|
430
531
|
failed.push({ sessionId, reason: 'busy' });
|
|
431
532
|
continue;
|
|
432
533
|
}
|
|
@@ -485,8 +586,8 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
485
586
|
*/
|
|
486
587
|
async unarchive(sessionIds) {
|
|
487
588
|
const unique = [...new Set(sessionIds)];
|
|
488
|
-
const
|
|
489
|
-
const headersById = new Map(
|
|
589
|
+
const snapshots = await persistence.list();
|
|
590
|
+
const headersById = new Map(snapshots.map((snapshot) => [snapshot.header.id, snapshot.header]));
|
|
490
591
|
// 锁外先做一遍廉价过滤(明显不可恢复的直接淘汰),锁内由 confirm 复核,
|
|
491
592
|
// 消除与并发 deleteArchived 的检查-移除窗口。
|
|
492
593
|
const candidates = [];
|
|
@@ -501,7 +602,7 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
501
602
|
if (header === undefined)
|
|
502
603
|
return false;
|
|
503
604
|
const file = await fileInfo(header);
|
|
504
|
-
return file
|
|
605
|
+
return file.state === 'located'; // located 才确认文件在:absent 拒绝,unknown 谨慎拒绝
|
|
505
606
|
});
|
|
506
607
|
return { restored, removedFromArchive: restored.length };
|
|
507
608
|
},
|
package/lib/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": "@chaoset/session-archive",
|
|
3
|
-
"version": "0.3.9-alpha.
|
|
3
|
+
"version": "0.3.9-alpha.2",
|
|
4
4
|
"description": "DSH plugin: browse archived sessions, inspect their content, batch-restore or permanently delete them with multi-select",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22.19.0"
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"./package.json": "./package.json"
|
|
24
24
|
},
|
|
25
25
|
"dsh": {
|
|
26
|
-
"host": "0.1.
|
|
26
|
+
"host": "0.1.5-alpha.1",
|
|
27
27
|
"bundle": {
|
|
28
28
|
"patch": "./cordis.patch.yml"
|
|
29
29
|
},
|
|
@@ -37,7 +37,14 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"optionalDependencies": {
|
|
40
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
40
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.5-alpha.1"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@deepseek-ai/dsh-scope": "^0.1.5-alpha.1",
|
|
44
|
+
"@deepseek-ai/dsh-session": "^0.1.5-alpha.1",
|
|
45
|
+
"@deepseek-ai/dsh-session-persistence": "^0.1.5-alpha.1",
|
|
46
|
+
"@deepseek-ai/dsh-session-title": "^0.1.5-alpha.1",
|
|
47
|
+
"@deepseek-ai/dsh-workspace": "^0.1.5-alpha.1"
|
|
41
48
|
},
|
|
42
49
|
"repository": {
|
|
43
50
|
"type": "git",
|