@chaoset/session-archive 0.2.4 → 0.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/CHANGELOG.md +38 -0
- package/client/client.cjs +127 -22
- package/client/index.tsx +148 -28
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +14 -6
- package/lib/index.js.map +1 -1
- package/lib/remote.d.ts.map +1 -1
- package/lib/remote.js +21 -0
- package/lib/remote.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.2](https://github.com/winliyou/dsh-plugins) (2026-08-28)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **支持从源码运行的 DSH**:typert-protocol 解析链首插安装闭包共享 fallback
|
|
8
|
+
`$DSH_HOME/profiles/node_modules/<pkg>`(harness 启动时 heal 的依赖闭包
|
|
9
|
+
symlink 镜像,npm 安装与源码运行都会建立),以 realpath 导入保证与
|
|
10
|
+
harness 同一模块实例;失败回落原有解析链。已对照 dsh 源码 0.1.2-alpha.1
|
|
11
|
+
复核 workspaceRegistry/sessionPersistence 契约与事件形状无变化
|
|
12
|
+
|
|
13
|
+
## [0.3.1](https://github.com/winliyou/dsh-plugins) (2026-08-28)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **适配 DSH 0.1.1-rc.2**:`@deepseek-ai/dsh-typert-protocol` 依赖 range 从 `^0.1.0-rc.8` 升到 `^0.1.1-rc.2`。npm semver 的 prerelease 规则下旧 range 无法匹配 `0.1.1-rc.2`,新版宿主下面板远程服务会因官方包解析到旧版本而不可用
|
|
18
|
+
* 已对照 0.1.1-rc.2 复核 workspaceRegistry / sessionPersistence / sessions 契约与 `session/title`、`user/message`、`assistant/message` 事件形状:无变化,host 逻辑无需调整
|
|
19
|
+
|
|
20
|
+
## [0.3.0](https://github.com/winliyou/dsh-plugins) (2026-08-25)
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* **实时徽标与列表**:订阅宿主 workspaces 服务的归档集合 store——会话菜单点「归档」、其它标签页变更、宿主推送 `host/archived-sessions-changed` 都即时反映到侧边栏徽标与打开中的面板,不再等 5s 轮询;集合含 ghost id 与 `count()` 口径不同,故仅作触发信号、数目仍以 `count()` 为准;store 不可用时经 `ctx.get` 探测降级为纯轮询(不写 inject,插件不因等待挂起)
|
|
25
|
+
* `count()` 调用失败自动退回一次 `list()` 取数并同步徽标:任何 host 版本组合(如宿主进程旧于 lib、端点缺失)下徽标都能自我纠正,不再卡在过期值
|
|
26
|
+
* **徽标 hover 与「设置」入口对齐**:几何与官方侧边栏设置触发按钮逐字一致(`calc(100% + 4px)` 宽 / 42px 高 / 负外边距 / 非对称内边距 / 12px 圆角 / 同一 hover 变量;收起态 36×36 圆形、图标 18px)。根因修复:`.sa_root` 是 `footerActions`(flex 容器)的直接 flex 项会收缩到内容宽,显式 `width:100%` 撑满后 hover 命中面积与设置入口完全一致
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* `deleteArchived` 冷文件快速路径:不在内存且 60s 内无写入的归档删除跳过固定 2×300ms settle 复验(重现只可能来自内存生成流或刚写过的 tab),批量清理陈旧归档从 ~12s/20 个降到 <1s;可能活跃的会话维持原两段复验与 `reappeared` 语义
|
|
31
|
+
* 徽标关闭态轮询在标签页隐藏时暂停 interval,恢复可见立即刷一次并重启(隐藏页轮询是纯浪费);面板打开期间新增 30s 静默刷新(`sameItems` 比较,数据不变不重渲染、不打断勾选)
|
|
32
|
+
* 批量删除成功后清理 `details`/`expanded` 缓存:内存不再随操作缓慢增长,展开态不再指向已删除的行
|
|
33
|
+
|
|
34
|
+
### Accessibility / UI
|
|
35
|
+
|
|
36
|
+
* 面板焦点管理:打开时焦点移入面板、关闭时归还徽标按钮(`prevOpen` 防首次挂载误触发)
|
|
37
|
+
* 徽标按钮补回 `aria-label`(icon-only 场景 accessible name 自带语义与数量,不依赖 `title`)
|
|
38
|
+
* warn 级通知独立 warn 色(`state-warn-primary`),不再与错误同红
|
|
39
|
+
* 面板 150ms 入场动画(淡入 + 轻微上移,respect `prefers-reduced-motion`);z-index 层级来源注释
|
|
40
|
+
|
|
3
41
|
## [0.2.4](https://github.com/winliyou/dsh-plugins) (2026-08-23)
|
|
4
42
|
|
|
5
43
|
### Bug Fixes
|
package/client/client.cjs
CHANGED
|
@@ -41,15 +41,33 @@ window.__ModuleLoader__.load({
|
|
|
41
41
|
module.exports = __toCommonJS(index_exports);
|
|
42
42
|
var React = __toESM(require("react"), 1);
|
|
43
43
|
var css = [
|
|
44
|
-
|
|
44
|
+
// sa_root 是 footerActions(display:flex)的直接 flex 项(slot 出口为
|
|
45
|
+
// display:contents 不参与布局):不设宽度的话 flex 项收缩到内容宽,
|
|
46
|
+
// 徽标的 width:calc(100% + 4px) 只等于内容宽,hover 高亮比「设置」
|
|
47
|
+
// 入口窄一圈。显式撑满 + min-width:0,与 settingsArea 块级容器里的
|
|
48
|
+
// 设置按钮获得同样的整行命中面积。
|
|
49
|
+
".sa_root{display:flex;min-width:0;width:100%}",
|
|
50
|
+
// 徽标几何与官方侧边栏「设置」触发按钮(dsh-client-ui-settings-general
|
|
51
|
+
// 的 .trigger / .rail)逐字对齐:同样的 calc(+4px) 宽度、42px 高、负外边距、
|
|
52
|
+
// 非对称内边距、12px 圆角与同一 hover 变量——保证归档入口的 hover 命中
|
|
53
|
+
// 面积与视觉节奏和设置入口完全一致(收起态同为 36×36 圆形)。
|
|
54
|
+
".sa_badge{box-sizing:border-box;cursor:pointer;width:calc(100% + 4px);height:42px;color:var(--dsw-alias-label-primary);background:0 0;border:none;border-radius:12px;flex:none;align-items:center;gap:8px;margin:4px -2px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}",
|
|
45
55
|
".sa_badge:hover{background:var(--dsw-alias-interactive-bg-hover)}",
|
|
46
|
-
".sa_badgeIcon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:
|
|
47
|
-
".sa_badgeIcon svg{width:
|
|
56
|
+
".sa_badgeIcon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--dsw-alias-label-primary)}",
|
|
57
|
+
".sa_badgeIcon svg{width:16px;height:16px;display:block}",
|
|
48
58
|
".sa_badgeLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}",
|
|
49
59
|
".sa_badgeCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12px;line-height:16px}",
|
|
50
|
-
".sa_badge--collapsed{
|
|
60
|
+
".sa_badge--collapsed{border-radius:50%;justify-content:center;gap:0;width:36px;height:36px;margin:8px 0 10px;padding:0}",
|
|
51
61
|
".sa_badge--collapsed .sa_badgeLabel,.sa_badge--collapsed .sa_badgeCount{display:none}",
|
|
62
|
+
".sa_badge--collapsed .sa_badgeIcon,.sa_badge--collapsed .sa_badgeIcon svg{width:18px;height:18px}",
|
|
63
|
+
// z-index 30:仅高于侧边栏内容层、低于宿主模态遮罩(如设置面板 overlay),
|
|
64
|
+
// 与"从侧边栏弹出的浮层"层级预期一致;调整前先核对宿主浮层层级表。
|
|
52
65
|
".sa_panel{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:440px;max-width:calc(100vw - 24px);max-height:62vh;box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;display:flex;position:fixed;bottom:128px;left:12px;overflow:hidden}",
|
|
66
|
+
// 入场动画:150ms 淡入 + 轻微上移(退出直接卸载,不做退场动画);
|
|
67
|
+
// 系统开启「减少动态效果」时完全禁用。
|
|
68
|
+
"@media (prefers-reduced-motion:no-preference){.sa_panel{animation:sa-panel-in .15s ease-out}}",
|
|
69
|
+
"@keyframes sa-panel-in{from{opacity:0;transform:translateY(4px)}}",
|
|
70
|
+
".sa_panel:focus{outline:none}",
|
|
53
71
|
".sa_header{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:8px 12px;display:flex}",
|
|
54
72
|
".sa_title{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}",
|
|
55
73
|
".sa_iconBtn{font:inherit;cursor:pointer;border:0;border-radius:8px;width:36px;height:36px;color:var(--dsw-alias-label-secondary,#666);background:0 0;display:inline-flex;align-items:center;justify-content:center;font-size:18px}",
|
|
@@ -75,6 +93,8 @@ window.__ModuleLoader__.load({
|
|
|
75
93
|
".sa_empty{color:var(--dsw-alias-label-tertiary);margin:24px 0;text-align:center;font-size:12px;line-height:18px}",
|
|
76
94
|
".sa_error{color:var(--dsw-alias-state-error-primary);margin:8px 0;font-size:12px;line-height:18px}",
|
|
77
95
|
".sa_ok{color:var(--dsw-alias-state-success-primary);margin:8px 0;font-size:12px;line-height:18px}",
|
|
96
|
+
// 提示级通知(如「请先勾选会话」)不该与错误同色:用 warn 色区分严重度。
|
|
97
|
+
".sa_warn{color:var(--dsw-alias-state-warn-primary);margin:8px 0;font-size:12px;line-height:18px}",
|
|
78
98
|
".sa_rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}",
|
|
79
99
|
".sa_row{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}",
|
|
80
100
|
".sa_rowHead{align-items:center;gap:8px;display:flex}",
|
|
@@ -226,51 +246,118 @@ window.__ModuleLoader__.load({
|
|
|
226
246
|
const [busy, setBusy] = React.useState(false);
|
|
227
247
|
const [confirmingDelete, setConfirmingDelete] = React.useState(false);
|
|
228
248
|
const [notice, setNotice] = React.useState(null);
|
|
249
|
+
const [badgeCount, setBadgeCount] = React.useState(0);
|
|
250
|
+
const applyItems = React.useCallback((next) => {
|
|
251
|
+
setItems((current) => sameItems(current, next) ? current : next);
|
|
252
|
+
setBadgeCount(next.length);
|
|
253
|
+
const nextIds = new Set(next.map((item) => item.sessionId));
|
|
254
|
+
setSelected((currentSelected) => {
|
|
255
|
+
const pruned = [...currentSelected].filter((id) => nextIds.has(id));
|
|
256
|
+
return pruned.length === currentSelected.size ? currentSelected : new Set(pruned);
|
|
257
|
+
});
|
|
258
|
+
}, []);
|
|
229
259
|
const load = React.useCallback(async () => {
|
|
230
260
|
setLoading(true);
|
|
231
261
|
setError(null);
|
|
232
262
|
try {
|
|
233
263
|
const result = await call("list");
|
|
234
|
-
|
|
235
|
-
setItems((current) => sameItems(current, next) ? current : next);
|
|
236
|
-
const nextIds = new Set(next.map((item) => item.sessionId));
|
|
237
|
-
setSelected((currentSelected) => {
|
|
238
|
-
const pruned = [...currentSelected].filter((id) => nextIds.has(id));
|
|
239
|
-
return pruned.length === currentSelected.size ? currentSelected : new Set(pruned);
|
|
240
|
-
});
|
|
264
|
+
applyItems(Array.isArray(result.items) ? result.items : []);
|
|
241
265
|
} catch (loadError) {
|
|
242
266
|
setError(t("loadFailed") + ": " + (loadError && loadError.message || loadError));
|
|
243
267
|
} finally {
|
|
244
268
|
setLoading(false);
|
|
245
269
|
}
|
|
246
|
-
}, [call, t]);
|
|
270
|
+
}, [call, applyItems, t]);
|
|
271
|
+
const silentList = React.useCallback(async () => {
|
|
272
|
+
try {
|
|
273
|
+
const result = await call("list");
|
|
274
|
+
applyItems(Array.isArray(result.items) ? result.items : []);
|
|
275
|
+
} catch {
|
|
276
|
+
}
|
|
277
|
+
}, [call, applyItems]);
|
|
247
278
|
React.useEffect(() => {
|
|
248
279
|
if (open) {
|
|
249
280
|
setNotice(null);
|
|
250
281
|
load();
|
|
251
282
|
}
|
|
252
283
|
}, [open, load]);
|
|
253
|
-
const [badgeCount, setBadgeCount] = React.useState(0);
|
|
254
284
|
const refreshSilently = React.useCallback(async () => {
|
|
255
285
|
try {
|
|
256
286
|
const result = await call("count");
|
|
257
287
|
setBadgeCount(typeof result.count === "number" ? result.count : 0);
|
|
258
288
|
} catch {
|
|
289
|
+
try {
|
|
290
|
+
const result = await call("list");
|
|
291
|
+
applyItems(Array.isArray(result.items) ? result.items : []);
|
|
292
|
+
} catch {
|
|
293
|
+
}
|
|
259
294
|
}
|
|
260
|
-
}, [call]);
|
|
295
|
+
}, [call, applyItems]);
|
|
261
296
|
React.useEffect(() => {
|
|
262
297
|
if (open) return;
|
|
263
|
-
|
|
264
|
-
const
|
|
298
|
+
let id = 0;
|
|
299
|
+
const start = () => {
|
|
300
|
+
if (id === 0) id = globalThis.setInterval(refreshSilently, 5e3);
|
|
301
|
+
};
|
|
302
|
+
const stop = () => {
|
|
303
|
+
if (id !== 0) {
|
|
304
|
+
globalThis.clearInterval(id);
|
|
305
|
+
id = 0;
|
|
306
|
+
}
|
|
307
|
+
};
|
|
265
308
|
const onVis = () => {
|
|
266
|
-
if (document.visibilityState === "visible")
|
|
309
|
+
if (document.visibilityState === "visible") {
|
|
310
|
+
refreshSilently();
|
|
311
|
+
start();
|
|
312
|
+
} else stop();
|
|
267
313
|
};
|
|
314
|
+
if (document.visibilityState === "visible") {
|
|
315
|
+
refreshSilently();
|
|
316
|
+
start();
|
|
317
|
+
}
|
|
268
318
|
document.addEventListener("visibilitychange", onVis);
|
|
269
319
|
return () => {
|
|
270
|
-
|
|
320
|
+
stop();
|
|
271
321
|
document.removeEventListener("visibilitychange", onVis);
|
|
272
322
|
};
|
|
273
323
|
}, [open, refreshSilently]);
|
|
324
|
+
React.useEffect(() => {
|
|
325
|
+
if (!open) return;
|
|
326
|
+
const id = globalThis.setInterval(silentList, 3e4);
|
|
327
|
+
const onVis = () => {
|
|
328
|
+
if (document.visibilityState === "visible") silentList();
|
|
329
|
+
};
|
|
330
|
+
document.addEventListener("visibilitychange", onVis);
|
|
331
|
+
return () => {
|
|
332
|
+
globalThis.clearInterval(id);
|
|
333
|
+
document.removeEventListener("visibilitychange", onVis);
|
|
334
|
+
};
|
|
335
|
+
}, [open, silentList]);
|
|
336
|
+
const openRef = React.useRef(open);
|
|
337
|
+
React.useEffect(() => {
|
|
338
|
+
openRef.current = open;
|
|
339
|
+
}, [open]);
|
|
340
|
+
React.useEffect(() => {
|
|
341
|
+
const subscribeArchived = props.subscribeArchived;
|
|
342
|
+
const archivedCountOf = props.archivedCountOf;
|
|
343
|
+
if (typeof subscribeArchived !== "function" || typeof archivedCountOf !== "function") return;
|
|
344
|
+
let lastCount = archivedCountOf();
|
|
345
|
+
const unsubscribe = subscribeArchived(() => {
|
|
346
|
+
const n = archivedCountOf();
|
|
347
|
+
if (typeof n !== "number" || n < 0 || n === lastCount) return;
|
|
348
|
+
lastCount = n;
|
|
349
|
+
refreshSilently();
|
|
350
|
+
if (openRef.current) silentList();
|
|
351
|
+
});
|
|
352
|
+
return unsubscribe;
|
|
353
|
+
}, [props.subscribeArchived, props.archivedCountOf, refreshSilently, silentList]);
|
|
354
|
+
const panelRef = React.useRef(null);
|
|
355
|
+
const prevOpenRef = React.useRef(false);
|
|
356
|
+
React.useEffect(() => {
|
|
357
|
+
if (open && !prevOpenRef.current) panelRef.current?.focus?.();
|
|
358
|
+
else if (!open && prevOpenRef.current) badgeRef.current?.focus?.();
|
|
359
|
+
prevOpenRef.current = open;
|
|
360
|
+
}, [open]);
|
|
274
361
|
React.useEffect(() => {
|
|
275
362
|
if (notice === null) return;
|
|
276
363
|
const id = globalThis.setTimeout(() => setNotice(null), 4e3);
|
|
@@ -360,6 +447,12 @@ window.__ModuleLoader__.load({
|
|
|
360
447
|
if (doneIds.length > 0) {
|
|
361
448
|
const done = new Set(doneIds);
|
|
362
449
|
setItems((current) => current.filter((item) => !done.has(item.sessionId)));
|
|
450
|
+
setDetails((current) => {
|
|
451
|
+
const next = new Map(current);
|
|
452
|
+
for (const id of done) next.delete(id);
|
|
453
|
+
return next.size === current.size ? current : next;
|
|
454
|
+
});
|
|
455
|
+
setExpanded((current) => current !== null && done.has(current) ? null : current);
|
|
363
456
|
}
|
|
364
457
|
setSelected(/* @__PURE__ */ new Set());
|
|
365
458
|
setConfirmingDelete(false);
|
|
@@ -380,6 +473,8 @@ window.__ModuleLoader__.load({
|
|
|
380
473
|
runBatch("delete", "deleteDone", "deleteFailed");
|
|
381
474
|
};
|
|
382
475
|
const hasSelection = selected.size > 0;
|
|
476
|
+
const shownCount = open ? items.length : badgeCount;
|
|
477
|
+
const badgeTitle = t("badge") + (shownCount > 0 ? " (" + String(shownCount) + ")" : "");
|
|
383
478
|
return React.createElement(
|
|
384
479
|
"div",
|
|
385
480
|
{ className: "sa_root", ref: rootRef },
|
|
@@ -391,7 +486,8 @@ window.__ModuleLoader__.load({
|
|
|
391
486
|
type: "button",
|
|
392
487
|
onClick: () => setOpen(!open),
|
|
393
488
|
"aria-expanded": open,
|
|
394
|
-
|
|
489
|
+
"aria-label": badgeTitle,
|
|
490
|
+
title: badgeTitle
|
|
395
491
|
},
|
|
396
492
|
React.createElement(
|
|
397
493
|
"span",
|
|
@@ -409,7 +505,7 @@ window.__ModuleLoader__.load({
|
|
|
409
505
|
),
|
|
410
506
|
open ? React.createElement(
|
|
411
507
|
"div",
|
|
412
|
-
{ className: "sa_panel", role: "dialog", "aria-label": t("panelTitle") },
|
|
508
|
+
{ className: "sa_panel", role: "dialog", "aria-label": t("panelTitle"), tabIndex: -1, ref: panelRef },
|
|
413
509
|
React.createElement(
|
|
414
510
|
"div",
|
|
415
511
|
{ className: "sa_header" },
|
|
@@ -453,7 +549,7 @@ window.__ModuleLoader__.load({
|
|
|
453
549
|
React.createElement(
|
|
454
550
|
"div",
|
|
455
551
|
{ className: "sa_body" },
|
|
456
|
-
notice !== null ? React.createElement("p", { className: notice.kind === "ok" ? "sa_ok" : "sa_error", role: "status" }, notice.text) : null,
|
|
552
|
+
notice !== null ? React.createElement("p", { className: notice.kind === "ok" ? "sa_ok" : notice.kind === "warn" ? "sa_warn" : "sa_error", role: "status" }, notice.text) : null,
|
|
457
553
|
error !== null ? React.createElement("p", { className: "sa_error", role: "alert" }, error) : null,
|
|
458
554
|
loading && items.length === 0 ? React.createElement("p", { className: "sa_empty" }, "\u2026") : null,
|
|
459
555
|
!loading && items.length === 0 && error === null ? React.createElement("p", { className: "sa_empty" }, t("empty")) : null,
|
|
@@ -553,12 +649,21 @@ window.__ModuleLoader__.load({
|
|
|
553
649
|
if (!result.ok) throw new Error(method + " failed: " + result.error.code + ": " + result.error.message);
|
|
554
650
|
return result.value;
|
|
555
651
|
});
|
|
652
|
+
const workspaces = ctx.get("workspaces");
|
|
653
|
+
const archivedStore = workspaces !== null && typeof workspaces === "object" && workspaces.list !== void 0 && typeof workspaces.list.subscribe === "function" && typeof workspaces.list.getSnapshot === "function" ? workspaces.list : void 0;
|
|
556
654
|
ctx.slots.inject("sidebar.footer.action", () => ctx.slots.register({
|
|
557
655
|
name: "sidebar.footer.action",
|
|
558
656
|
id: "session-archive",
|
|
559
657
|
order: 20,
|
|
560
658
|
locale: NS,
|
|
561
|
-
inject: () => ({
|
|
659
|
+
inject: () => ({
|
|
660
|
+
call,
|
|
661
|
+
subscribeArchived: archivedStore !== void 0 ? (fn) => archivedStore.subscribe(fn) : void 0,
|
|
662
|
+
archivedCountOf: archivedStore !== void 0 ? () => {
|
|
663
|
+
const snapshot = archivedStore.getSnapshot();
|
|
664
|
+
return Array.isArray(snapshot?.archivedSessionIds) ? snapshot.archivedSessionIds.length : -1;
|
|
665
|
+
} : void 0
|
|
666
|
+
})
|
|
562
667
|
}, ArchivePanel));
|
|
563
668
|
}
|
|
564
669
|
|
package/client/index.tsx
CHANGED
|
@@ -3,15 +3,33 @@ import type { TypertRemoteContribution } from "@deepseek-ai/dsh-typert-protocol"
|
|
|
3
3
|
|
|
4
4
|
// ── 样式(注入 style 标签,复用 DSH 设计变量)────────────────────────
|
|
5
5
|
var css = [
|
|
6
|
-
|
|
6
|
+
// sa_root 是 footerActions(display:flex)的直接 flex 项(slot 出口为
|
|
7
|
+
// display:contents 不参与布局):不设宽度的话 flex 项收缩到内容宽,
|
|
8
|
+
// 徽标的 width:calc(100% + 4px) 只等于内容宽,hover 高亮比「设置」
|
|
9
|
+
// 入口窄一圈。显式撑满 + min-width:0,与 settingsArea 块级容器里的
|
|
10
|
+
// 设置按钮获得同样的整行命中面积。
|
|
11
|
+
".sa_root{display:flex;min-width:0;width:100%}",
|
|
12
|
+
// 徽标几何与官方侧边栏「设置」触发按钮(dsh-client-ui-settings-general
|
|
13
|
+
// 的 .trigger / .rail)逐字对齐:同样的 calc(+4px) 宽度、42px 高、负外边距、
|
|
14
|
+
// 非对称内边距、12px 圆角与同一 hover 变量——保证归档入口的 hover 命中
|
|
15
|
+
// 面积与视觉节奏和设置入口完全一致(收起态同为 36×36 圆形)。
|
|
16
|
+
".sa_badge{box-sizing:border-box;cursor:pointer;width:calc(100% + 4px);height:42px;color:var(--dsw-alias-label-primary);background:0 0;border:none;border-radius:12px;flex:none;align-items:center;gap:8px;margin:4px -2px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}",
|
|
7
17
|
".sa_badge:hover{background:var(--dsw-alias-interactive-bg-hover)}",
|
|
8
|
-
".sa_badgeIcon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:
|
|
9
|
-
".sa_badgeIcon svg{width:
|
|
18
|
+
".sa_badgeIcon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--dsw-alias-label-primary)}",
|
|
19
|
+
".sa_badgeIcon svg{width:16px;height:16px;display:block}",
|
|
10
20
|
".sa_badgeLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}",
|
|
11
21
|
".sa_badgeCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12px;line-height:16px}",
|
|
12
|
-
".sa_badge--collapsed{
|
|
22
|
+
".sa_badge--collapsed{border-radius:50%;justify-content:center;gap:0;width:36px;height:36px;margin:8px 0 10px;padding:0}",
|
|
13
23
|
".sa_badge--collapsed .sa_badgeLabel,.sa_badge--collapsed .sa_badgeCount{display:none}",
|
|
24
|
+
".sa_badge--collapsed .sa_badgeIcon,.sa_badge--collapsed .sa_badgeIcon svg{width:18px;height:18px}",
|
|
25
|
+
// z-index 30:仅高于侧边栏内容层、低于宿主模态遮罩(如设置面板 overlay),
|
|
26
|
+
// 与"从侧边栏弹出的浮层"层级预期一致;调整前先核对宿主浮层层级表。
|
|
14
27
|
".sa_panel{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:440px;max-width:calc(100vw - 24px);max-height:62vh;box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;display:flex;position:fixed;bottom:128px;left:12px;overflow:hidden}",
|
|
28
|
+
// 入场动画:150ms 淡入 + 轻微上移(退出直接卸载,不做退场动画);
|
|
29
|
+
// 系统开启「减少动态效果」时完全禁用。
|
|
30
|
+
"@media (prefers-reduced-motion:no-preference){.sa_panel{animation:sa-panel-in .15s ease-out}}",
|
|
31
|
+
"@keyframes sa-panel-in{from{opacity:0;transform:translateY(4px)}}",
|
|
32
|
+
".sa_panel:focus{outline:none}",
|
|
15
33
|
".sa_header{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:8px 12px;display:flex}",
|
|
16
34
|
".sa_title{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}",
|
|
17
35
|
".sa_iconBtn{font:inherit;cursor:pointer;border:0;border-radius:8px;width:36px;height:36px;color:var(--dsw-alias-label-secondary,#666);background:0 0;display:inline-flex;align-items:center;justify-content:center;font-size:18px}",
|
|
@@ -37,6 +55,8 @@ var css = [
|
|
|
37
55
|
".sa_empty{color:var(--dsw-alias-label-tertiary);margin:24px 0;text-align:center;font-size:12px;line-height:18px}",
|
|
38
56
|
".sa_error{color:var(--dsw-alias-state-error-primary);margin:8px 0;font-size:12px;line-height:18px}",
|
|
39
57
|
".sa_ok{color:var(--dsw-alias-state-success-primary);margin:8px 0;font-size:12px;line-height:18px}",
|
|
58
|
+
// 提示级通知(如「请先勾选会话」)不该与错误同色:用 warn 色区分严重度。
|
|
59
|
+
".sa_warn{color:var(--dsw-alias-state-warn-primary);margin:8px 0;font-size:12px;line-height:18px}",
|
|
40
60
|
".sa_rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}",
|
|
41
61
|
".sa_row{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);border-radius:12px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}",
|
|
42
62
|
".sa_rowHead{align-items:center;gap:8px;display:flex}",
|
|
@@ -197,27 +217,43 @@ function ArchivePanel(props: any) {
|
|
|
197
217
|
const [busy, setBusy] = React.useState(false);
|
|
198
218
|
const [confirmingDelete, setConfirmingDelete] = React.useState(false);
|
|
199
219
|
const [notice, setNotice] = React.useState<any>(null);
|
|
220
|
+
// 关闭态徽标计数(由 count() 轻端点轮询维护;列表落地时也会同步)。
|
|
221
|
+
const [badgeCount, setBadgeCount] = React.useState(0);
|
|
200
222
|
|
|
223
|
+
// 列表落地(加载与静默刷新共用):sameItems 比较避免无变化时整表
|
|
224
|
+
// reconcile;同时剔除已消失 id 的残留勾选——否则"已选 N 项"虚高,
|
|
225
|
+
// 还可能把幽灵 id 发给批量操作(host 有幂等兜底,但不该依赖它)。
|
|
226
|
+
// 顺手用列表长度同步徽标计数:count() 端点不可用(host 旧进程未重启、
|
|
227
|
+
// RPC 失败被吞)时,开/关一次面板徽标也能自我纠正,不会卡在 0。
|
|
228
|
+
const applyItems = React.useCallback((next: any[]) => {
|
|
229
|
+
setItems((current) => (sameItems(current, next) ? current : next));
|
|
230
|
+
setBadgeCount(next.length);
|
|
231
|
+
const nextIds = new Set(next.map((item: any) => item.sessionId));
|
|
232
|
+
setSelected((currentSelected) => {
|
|
233
|
+
const pruned = [...currentSelected].filter((id) => nextIds.has(id));
|
|
234
|
+
return pruned.length === currentSelected.size ? currentSelected : new Set(pruned);
|
|
235
|
+
});
|
|
236
|
+
}, []);
|
|
201
237
|
const load = React.useCallback(async () => {
|
|
202
238
|
setLoading(true);
|
|
203
239
|
setError(null);
|
|
204
240
|
try {
|
|
205
241
|
const result = await call("list");
|
|
206
|
-
|
|
207
|
-
setItems((current) => (sameItems(current, next) ? current : next));
|
|
208
|
-
// 选择集剔除已从列表消失的 id:残留勾选会让"已选 N 项"虚高,
|
|
209
|
-
// 还可能把幽灵 id 发给批量操作(host 有幂等兜底,但不该依赖它)。
|
|
210
|
-
const nextIds = new Set(next.map((item: any) => item.sessionId));
|
|
211
|
-
setSelected((currentSelected) => {
|
|
212
|
-
const pruned = [...currentSelected].filter((id) => nextIds.has(id));
|
|
213
|
-
return pruned.length === currentSelected.size ? currentSelected : new Set(pruned);
|
|
214
|
-
});
|
|
242
|
+
applyItems(Array.isArray(result.items) ? result.items : []);
|
|
215
243
|
} catch (loadError: any) {
|
|
216
244
|
setError(t("loadFailed") + ": " + (loadError && loadError.message || loadError));
|
|
217
245
|
} finally {
|
|
218
246
|
setLoading(false);
|
|
219
247
|
}
|
|
220
|
-
}, [call, t]);
|
|
248
|
+
}, [call, applyItems, t]);
|
|
249
|
+
// 打开态的静默刷新:不碰 loading/error,长开面板的列表不再陈旧;
|
|
250
|
+
// sameItems 比较保证数据没变时不触发任何重渲染,不打断勾选。
|
|
251
|
+
const silentList = React.useCallback(async () => {
|
|
252
|
+
try {
|
|
253
|
+
const result = await call("list");
|
|
254
|
+
applyItems(Array.isArray(result.items) ? result.items : []);
|
|
255
|
+
} catch {}
|
|
256
|
+
}, [call, applyItems]);
|
|
221
257
|
|
|
222
258
|
React.useEffect(() => {
|
|
223
259
|
if (open) { setNotice(null); load(); }
|
|
@@ -225,25 +261,79 @@ function ArchivePanel(props: any) {
|
|
|
225
261
|
|
|
226
262
|
// 后台静默刷新归档计数:侧边栏徽标要在「聊天列表里出现归档」时就同步显示数量,
|
|
227
263
|
// 而不是等到打开弹窗才更新。面板打开时由上面的 load() 负责,这里只在关闭态轮询,
|
|
228
|
-
//
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
const [badgeCount, setBadgeCount] = React.useState(0);
|
|
264
|
+
// 避免刷新打断用户在面板里的勾选/操作。关闭态走 count() 轻端点:list() 要解析
|
|
265
|
+
// 每个归档会话的完整事件流,5 秒一次的徽标轮询用它是持续的性能债。
|
|
266
|
+
// 标签页隐藏时暂停 interval(隐藏页的轮询是纯浪费),恢复可见时立即刷一次并重启。
|
|
232
267
|
const refreshSilently = React.useCallback(async () => {
|
|
233
268
|
try {
|
|
234
269
|
const result = await call("count");
|
|
235
270
|
setBadgeCount(typeof result.count === "number" ? result.count : 0);
|
|
236
|
-
} catch {
|
|
237
|
-
|
|
271
|
+
} catch {
|
|
272
|
+
// count() 不可用(host 进程旧于 lib、端点缺失等):退回一次 list(),
|
|
273
|
+
// applyItems 会同步徽标计数——宁可贵一点也不让徽标卡在过期值。
|
|
274
|
+
try {
|
|
275
|
+
const result = await call("list");
|
|
276
|
+
applyItems(Array.isArray(result.items) ? result.items : []);
|
|
277
|
+
} catch {}
|
|
278
|
+
}
|
|
279
|
+
}, [call, applyItems]);
|
|
238
280
|
React.useEffect(() => {
|
|
239
281
|
if (open) return;
|
|
240
|
-
|
|
241
|
-
const id = globalThis.setInterval(refreshSilently, 5000);
|
|
242
|
-
const
|
|
282
|
+
let id: any = 0;
|
|
283
|
+
const start = () => { if (id === 0) id = globalThis.setInterval(refreshSilently, 5000); };
|
|
284
|
+
const stop = () => { if (id !== 0) { globalThis.clearInterval(id); id = 0; } };
|
|
285
|
+
const onVis = () => {
|
|
286
|
+
if (document.visibilityState === "visible") { refreshSilently(); start(); }
|
|
287
|
+
else stop();
|
|
288
|
+
};
|
|
289
|
+
if (document.visibilityState === "visible") { refreshSilently(); start(); }
|
|
243
290
|
document.addEventListener("visibilitychange", onVis);
|
|
244
|
-
return () => {
|
|
291
|
+
return () => { stop(); document.removeEventListener("visibilitychange", onVis); };
|
|
245
292
|
}, [open, refreshSilently]);
|
|
246
293
|
|
|
294
|
+
// 打开态低频兜底刷新(30s)+ 恢复可见立即刷:面板长开时列表保持新鲜,
|
|
295
|
+
// 且不与关闭态徽标轮询叠加。
|
|
296
|
+
React.useEffect(() => {
|
|
297
|
+
if (!open) return;
|
|
298
|
+
const id = globalThis.setInterval(silentList, 30000);
|
|
299
|
+
const onVis = () => { if (document.visibilityState === "visible") silentList(); };
|
|
300
|
+
document.addEventListener("visibilitychange", onVis);
|
|
301
|
+
return () => { globalThis.clearInterval(id); document.removeEventListener("visibilitychange", onVis); };
|
|
302
|
+
}, [open, silentList]);
|
|
303
|
+
|
|
304
|
+
// 实时同步:订阅宿主 workspaces 服务的归档集合 store。用户在会话列表点
|
|
305
|
+
// 「归档」、其它标签页变更、或宿主推送 host/archived-sessions-changed 时,
|
|
306
|
+
// installArchived 都会触发 store 通知——这里立即重取 count(面板打开时
|
|
307
|
+
// 顺带刷新列表),不必等 5 秒轮询。store 不可用时静默退回纯轮询。
|
|
308
|
+
// 归档集合含 ghost id(已删除仍占位的记录),与 count() 的存在性过滤
|
|
309
|
+
// 口径不同,因此只把集合变化当信号,数目仍以 count() 结果为准。
|
|
310
|
+
const openRef = React.useRef(open);
|
|
311
|
+
React.useEffect(() => { openRef.current = open; }, [open]);
|
|
312
|
+
React.useEffect(() => {
|
|
313
|
+
const subscribeArchived = props.subscribeArchived;
|
|
314
|
+
const archivedCountOf = props.archivedCountOf;
|
|
315
|
+
if (typeof subscribeArchived !== "function" || typeof archivedCountOf !== "function") return;
|
|
316
|
+
let lastCount = archivedCountOf();
|
|
317
|
+
const unsubscribe = subscribeArchived(() => {
|
|
318
|
+
const n = archivedCountOf();
|
|
319
|
+
if (typeof n !== "number" || n < 0 || n === lastCount) return;
|
|
320
|
+
lastCount = n;
|
|
321
|
+
refreshSilently();
|
|
322
|
+
if (openRef.current) silentList();
|
|
323
|
+
});
|
|
324
|
+
return unsubscribe;
|
|
325
|
+
}, [props.subscribeArchived, props.archivedCountOf, refreshSilently, silentList]);
|
|
326
|
+
|
|
327
|
+
// 对话框焦点管理:打开时把焦点移入面板(键盘/读屏用户不必 Tab 瞎找),
|
|
328
|
+
// 关闭时归还给徽标按钮;prevOpen 避免首次挂载(open=false)误触发归还。
|
|
329
|
+
const panelRef = React.useRef<any>(null);
|
|
330
|
+
const prevOpenRef = React.useRef(false);
|
|
331
|
+
React.useEffect(() => {
|
|
332
|
+
if (open && !prevOpenRef.current) panelRef.current?.focus?.();
|
|
333
|
+
else if (!open && prevOpenRef.current) badgeRef.current?.focus?.();
|
|
334
|
+
prevOpenRef.current = open;
|
|
335
|
+
}, [open]);
|
|
336
|
+
|
|
247
337
|
// 提示(如「已恢复/已删除 N 个会话」)几秒后自动消失,避免残留误导用户,
|
|
248
338
|
// 也避免删除全部归档后仍挂着上一条提示。
|
|
249
339
|
React.useEffect(() => {
|
|
@@ -350,6 +440,14 @@ function ArchivePanel(props: any) {
|
|
|
350
440
|
if (doneIds.length > 0) {
|
|
351
441
|
const done = new Set(doneIds);
|
|
352
442
|
setItems((current) => current.filter((item) => !done.has(item.sessionId)));
|
|
443
|
+
// 已删除会话的详情/展开态一并清掉:Map 残留会让内存缓慢增长,
|
|
444
|
+
// 展开态残留则指向一个已不存在的行。
|
|
445
|
+
setDetails((current: any) => {
|
|
446
|
+
const next = new Map(current);
|
|
447
|
+
for (const id of done) next.delete(id);
|
|
448
|
+
return next.size === current.size ? current : next;
|
|
449
|
+
});
|
|
450
|
+
setExpanded((current: any) => (current !== null && done.has(current) ? null : current));
|
|
353
451
|
}
|
|
354
452
|
setSelected(new Set());
|
|
355
453
|
setConfirmingDelete(false);
|
|
@@ -372,6 +470,10 @@ function ArchivePanel(props: any) {
|
|
|
372
470
|
};
|
|
373
471
|
|
|
374
472
|
const hasSelection = selected.size > 0;
|
|
473
|
+
// 徽标的 accessible name:icon-only(侧边栏收起)时没有可见文本,
|
|
474
|
+
// aria-label 必须自带语义与数量,不能只依赖 title。
|
|
475
|
+
const shownCount = open ? items.length : badgeCount;
|
|
476
|
+
const badgeTitle = t("badge") + (shownCount > 0 ? " (" + String(shownCount) + ")" : "");
|
|
375
477
|
|
|
376
478
|
return React.createElement(
|
|
377
479
|
"div",
|
|
@@ -384,7 +486,8 @@ function ArchivePanel(props: any) {
|
|
|
384
486
|
type: "button",
|
|
385
487
|
onClick: () => setOpen(!open),
|
|
386
488
|
"aria-expanded": open,
|
|
387
|
-
|
|
489
|
+
"aria-label": badgeTitle,
|
|
490
|
+
title: badgeTitle
|
|
388
491
|
},
|
|
389
492
|
React.createElement("span", { className: "sa_badgeIcon", "aria-hidden": true },
|
|
390
493
|
React.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" },
|
|
@@ -398,7 +501,7 @@ function ArchivePanel(props: any) {
|
|
|
398
501
|
),
|
|
399
502
|
open ? React.createElement(
|
|
400
503
|
"div",
|
|
401
|
-
{ className: "sa_panel", role: "dialog", "aria-label": t("panelTitle") },
|
|
504
|
+
{ className: "sa_panel", role: "dialog", "aria-label": t("panelTitle"), tabIndex: -1, ref: panelRef },
|
|
402
505
|
React.createElement(
|
|
403
506
|
"div",
|
|
404
507
|
{ className: "sa_header" },
|
|
@@ -442,7 +545,7 @@ function ArchivePanel(props: any) {
|
|
|
442
545
|
React.createElement(
|
|
443
546
|
"div",
|
|
444
547
|
{ className: "sa_body" },
|
|
445
|
-
notice !== null ? React.createElement("p", { className: notice.kind === "ok" ? "sa_ok" : "sa_error", role: "status" }, notice.text) : null,
|
|
548
|
+
notice !== null ? React.createElement("p", { className: notice.kind === "ok" ? "sa_ok" : notice.kind === "warn" ? "sa_warn" : "sa_error", role: "status" }, notice.text) : null,
|
|
446
549
|
error !== null ? React.createElement("p", { className: "sa_error", role: "alert" }, error) : null,
|
|
447
550
|
loading && items.length === 0 ? React.createElement("p", { className: "sa_empty" }, "…") : null,
|
|
448
551
|
!loading && items.length === 0 && error === null ? React.createElement("p", { className: "sa_empty" }, t("empty")) : null,
|
|
@@ -550,12 +653,29 @@ async function apply(ctx: any) {
|
|
|
550
653
|
if (!result.ok) throw new Error(method + " failed: " + result.error.code + ": " + result.error.message);
|
|
551
654
|
return result.value;
|
|
552
655
|
});
|
|
656
|
+
// 宿主 workspaces 服务的归档集合 store(实时信号的来源):归档/恢复/
|
|
657
|
+
// 宿主推送都会经过 installArchived 触发 store 通知。用 ctx.get 而非
|
|
658
|
+
// inject——服务缺失时插件照常激活,面板退回 5s 轮询,不因等待挂起。
|
|
659
|
+
const workspaces = ctx.get("workspaces");
|
|
660
|
+
const archivedStore = workspaces !== null && typeof workspaces === "object"
|
|
661
|
+
&& workspaces.list !== void 0
|
|
662
|
+
&& typeof workspaces.list.subscribe === "function"
|
|
663
|
+
&& typeof workspaces.list.getSnapshot === "function"
|
|
664
|
+
? workspaces.list
|
|
665
|
+
: void 0;
|
|
553
666
|
ctx.slots.inject("sidebar.footer.action", () => ctx.slots.register({
|
|
554
667
|
name: "sidebar.footer.action",
|
|
555
668
|
id: "session-archive",
|
|
556
669
|
order: 20,
|
|
557
670
|
locale: NS,
|
|
558
|
-
inject: () => ({
|
|
671
|
+
inject: () => ({
|
|
672
|
+
call,
|
|
673
|
+
subscribeArchived: archivedStore !== void 0 ? (fn: any) => archivedStore.subscribe(fn) : void 0,
|
|
674
|
+
archivedCountOf: archivedStore !== void 0 ? () => {
|
|
675
|
+
const snapshot = archivedStore.getSnapshot();
|
|
676
|
+
return Array.isArray(snapshot?.archivedSessionIds) ? snapshot.archivedSessionIds.length : -1;
|
|
677
|
+
} : void 0,
|
|
678
|
+
})
|
|
559
679
|
}, ArchivePanel));
|
|
560
680
|
}
|
|
561
681
|
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAYnD,eAAO,MAAM,IAAI,oBAAoB,CAAC;AAEtC,oDAAoD;AACpD,eAAO,MAAM,MAAM,UAA0D,CAAC;AAY9E,eAAO,MAAM,MAAM;IARjB,iCAAiC;;IAEjC,8BAA8B;;IAE9B,4BAA4B;;CAIa,CAAC;AAiE5C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoIpE;;0BAEsB;IAChB,KAAK;;;IAUX,sCAAsC;IAChC,IAAI;;;IAeV;+CAC2C;IACrC,MAAM,YAAY,MAAM;;;YA4BxB,GAAG;YACH,SAAS;YACT,aAAa;YACb,WAAW;;;;;;;;;;;;;IAWjB;;;;;;;;;;;;OAYG;IACG,cAAc,aAAa,MAAM,EAAE;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAYnD,eAAO,MAAM,IAAI,oBAAoB,CAAC;AAEtC,oDAAoD;AACpD,eAAO,MAAM,MAAM,UAA0D,CAAC;AAY9E,eAAO,MAAM,MAAM;IARjB,iCAAiC;;IAEjC,8BAA8B;;IAE9B,4BAA4B;;CAIa,CAAC;AAiE5C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoIpE;;0BAEsB;IAChB,KAAK;;;IAUX,sCAAsC;IAChC,IAAI;;;IAeV;+CAC2C;IACrC,MAAM,YAAY,MAAM;;;YA4BxB,GAAG;YACH,SAAS;YACT,aAAa;YACb,WAAW;;;;;;;;;;;;;IAWjB;;;;;;;;;;;;OAYG;IACG,cAAc,aAAa,MAAM,EAAE;;;;;;;;IAsFzC;;;;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
|
@@ -398,22 +398,30 @@ export function createArchiveHost(ctx, cfg) {
|
|
|
398
398
|
deleted.push(sessionId);
|
|
399
399
|
continue;
|
|
400
400
|
}
|
|
401
|
-
|
|
401
|
+
const inMemory = ctx.sessions.get(sessionId) !== undefined;
|
|
402
|
+
if (inMemory && Date.now() - fresh.mtimeMs < 60_000) {
|
|
402
403
|
failed.push({ sessionId, reason: 'busy' });
|
|
403
404
|
continue;
|
|
404
405
|
}
|
|
405
406
|
await rm(file.path, { force: true });
|
|
406
407
|
await rm(dirname(file.path), { recursive: true, force: true });
|
|
407
|
-
// rm
|
|
408
|
-
//
|
|
409
|
-
//
|
|
410
|
-
|
|
408
|
+
// rm 后复验:防宿主 materialize 的 mkdir -p 把路径在删除窗口内重建。
|
|
409
|
+
// 重现只可能来自活跃写入方(内存中的生成流,或刚写完不久、客户端
|
|
410
|
+
// 重连即恢复的 tab)。据此分两档:
|
|
411
|
+
// - 可能活跃(内存存在 或 60s 内有写入):维持原 300ms settle 两段
|
|
412
|
+
// 复验;重现则再删一次,仍未删掉计入 failed('reappeared')。
|
|
413
|
+
// - 冷文件(不在内存且超过 60s 无写入):未来写入需要用户主动继续
|
|
414
|
+
// 对话,不会落在删除窗口内——做零等待的即时复验即可。批量清理
|
|
415
|
+
// 陈旧归档不再为每个文件白付 2×300ms。
|
|
416
|
+
const plausiblyActive = inMemory || Date.now() - fresh.mtimeMs < 60_000;
|
|
417
|
+
const settleMs = plausiblyActive ? 300 : 0;
|
|
418
|
+
if (await filePresentAfterSettle(file.path, settleMs)) {
|
|
411
419
|
try {
|
|
412
420
|
await rm(file.path, { force: true });
|
|
413
421
|
await rm(dirname(file.path), { recursive: true, force: true });
|
|
414
422
|
}
|
|
415
423
|
catch { }
|
|
416
|
-
if (await filePresentAfterSettle(file.path,
|
|
424
|
+
if (await filePresentAfterSettle(file.path, settleMs)) {
|
|
417
425
|
failed.push({ sessionId, reason: 'reappeared' });
|
|
418
426
|
continue;
|
|
419
427
|
}
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,iDAAiD;AACjD,0CAA0C;AAC1C,IAAI,qBAAqB,GAAQ,IAAI,CAAC;AACtC,IAAI,CAAC;IACH,CAAC,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAE,KAAe,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAEtC,oDAAoD;AACpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;AAE9E,gEAAgE;AAChE,MAAM,cAAc,GAAG;IACrB,iCAAiC;IACjC,iBAAiB,EAAE,GAAG;IACtB,8BAA8B;IAC9B,mBAAmB,EAAE,IAAI;IACzB,4BAA4B;IAC5B,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;AAE5C,sCAAsC;AACtC,SAAS,cAAc,CAAC,OAAY;IAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,EAAE,CAAC;QACvF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,SAAS,CAAC,iCAAiC,GAAG,8BAA8B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,SAAS,eAAe,CAAC,MAAW,EAAE,QAAQ,GAAQ,cAAc;IAClE,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3G,OAAO;QACL,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QACpF,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QAC1F,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,CAAC;KAC9F,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,SAAS,kBAAkB,CAAC,KAAa,EAAE,KAAgC;IACzE,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC/E,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC;YACxB,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,iDAAiD;AACjD,SAAS,SAAS,CAAC,MAAa;IAC9B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iDAAiD;AACjD,SAAS,WAAW,CAAC,OAAY,EAAE,QAAgB;IACjD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;gBAAE,MAAM;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,GAAwB;IACtE,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,kBAAkB,CAAC;IAE3C,gBAAgB;IAChB,MAAM,WAAW,GAAG,GAAgB,EAAE,CAAC,IAAI,GAAG,CAC5C,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU;QAC/C,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE;QAC/B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CACpF,CAAC;IAEF;;;;;;wBAMoB;IACpB,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,EAAE,CACnC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE7E;4CACwC;IACxC,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,IAA4D,EAAE,EAAE,CACjG,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAEnG;;;yCAGqC;IACrC,KAAK,UAAU,oBAAoB,CAAC,GAAa,EAAE,OAAiD;QAClG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,QAAQ,GACZ,QAAQ,KAAK,SAAS;YACtB,OAAO,QAAQ,CAAC,gBAAgB,KAAK,UAAU;YAC/C,OAAO,QAAQ,CAAC,YAAY,KAAK,UAAU;YAC3C,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC,CAAC,wBAAwB;QAClD,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBAAC,IAAI,MAAM,OAAO,CAAC,EAAE,CAAC;4BAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBAC7D,CAAC;gBACD,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,UAAU,GAAG,QAAQ,CAAC;YACtB,yCAAyC;YACzC,uBAAuB;YACvB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,2CAA2C;IAC3C,KAAK,UAAU,QAAQ,CAAC,MAAW;QACjC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;uCAGmC;IACnC,KAAK,UAAU,eAAe,CAAC,SAAiB;QAC9C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3G,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;oCAEgC;IAChC,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,QAAgB;QAClE,IAAI,QAAQ,GAAG,CAAC;YAAE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;8CAG0C;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqD,CAAC;IAChF,KAAK,UAAU,MAAM,CAAC,SAAiB,EAAE,MAAW;QAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC5D,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,OAAO;YACL,SAAS;YACT,KAAK;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;YAC1D,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;QACL;;8BAEsB;QACtB,KAAK,CAAC,KAAK;YACT,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC;YACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,SAAS,IAAI,QAAQ;gBAAE,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,KAAK,EAAE,CAAC;YACxE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAED,sCAAsC;QACtC,KAAK,CAAC,IAAI;YACR,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC;YACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAc,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAkB,CAAC,CAAC,CAAC;YACjG,MAAM,IAAI,GAA8C,EAAE,CAAC;YAC3D,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS,CAAC,iBAAiB;gBACrD,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACvI,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAED;mDAC2C;QAC3C,KAAK,CAAC,MAAM,CAAC,SAAiB;YAC5B,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YACjG,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;oBAAE,SAAS;gBAClF,oCAAoC;gBACpC,uBAAuB;gBACvB,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;oBAC7C,iBAAiB,EAAE,CAAC;oBACpB,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAChC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;oBAC1D,IAAI;oBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC,CAAC;gBACH,iBAAiB,EAAE,CAAC;YACtB,CAAC;YACD,OAAO;gBACL,SAAS;gBACT,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;oBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;oBACzC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;iBACtC;gBACD,KAAK;gBACL,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,iBAAiB;gBACjB,SAAS,EAAE,iBAAiB,GAAG,QAAQ,CAAC,MAAM;gBAC9C,QAAQ;gBACR,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;aACxB,CAAC;QACJ,CAAC;QAED;;;;;;;;;;;;WAYG;QACH,KAAK,CAAC,cAAc,CAAC,UAAoB;YACvC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,4CAA4C;YAC5C,4CAA4C;YAC5C,gBAAgB;YAChB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpE,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;oBACnD,SAAS;gBACX,CAAC;gBACD,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,yCAAyC;oBACzC,+CAA+C;oBAC/C,wCAAwC;oBACxC,+BAA+B;oBAC/B,IAAI,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;wBAChD,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;wBACnD,SAAS;oBACX,CAAC;oBACD,gCAAgC;oBAChC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,8CAA8C;oBAC9C,+BAA+B;oBAC/B,IAAI,KAAK,GAA+B,IAAI,CAAC;oBAC7C,IAAI,CAAC;wBAAC,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBAC/C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACxB,SAAS;oBACX,CAAC;oBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;oBAC3D,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;wBACpD,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC3C,SAAS;oBACX,CAAC;oBACD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC/D,iDAAiD;oBACjD,kCAAkC;oBAClC,qBAAqB;oBACrB,gDAAgD;oBAChD,8CAA8C;oBAC9C,wCAAwC;oBACxC,qCAAqC;oBACrC,6BAA6B;oBAC7B,MAAM,eAAe,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;oBACxE,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,MAAM,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACtD,IAAI,CAAC;4BACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;4BACrC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACjE,CAAC;wBAAC,MAAM,CAAC,CAAA,CAAC;wBACV,IAAI,MAAM,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;4BACtD,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;4BACjD,SAAS;wBACX,CAAC;oBACH,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAG,KAAe,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACpD,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,SAAS,CAAC,UAAoB;YAClC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpE,0CAA0C;YAC1C,iCAAiC;YACjC,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS,CAAC,eAAe;gBACnD,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAC5C,KAAK,EAAE,SAAS,EAAE,EAAE;gBAClB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,cAAc;YACtC,CAAC,CACF,CAAC;YACF,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAY;IAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAC9B,IAAI;QACJ,QAAQ,EAAE,cAAc;QACxB,WAAW;QACX,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;KACF,CAAC,CAAC;IACH,sCAAsC;IACtC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAEvD,IAAI,qBAAqB,KAAK,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/lib/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA4CnD,QAAA,MAAgB,mBAAmB,uEAAuB,CAAC;AA2B3D;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB;IAC5D,OAAO,CAAC,IAAI,CAAM;IAClB,YAAY,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAIlE;IACD,IAAI,QAEH;IACD,KAAK,QAEJ;IACD,MAAM,CAAC,SAAS,EAAE,MAAM,OAKvB;IACD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAK1B;IACD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAK7B;CACF"}
|
package/lib/remote.js
CHANGED
|
@@ -12,13 +12,34 @@
|
|
|
12
12
|
* 仅侧边栏面板的远程读写不可用。
|
|
13
13
|
*/
|
|
14
14
|
import { createRequire } from "node:module";
|
|
15
|
+
import { realpathSync } from "node:fs";
|
|
15
16
|
import { homedir } from "node:os";
|
|
16
17
|
import { join, resolve } from "node:path";
|
|
17
18
|
import { pathToFileURL } from "node:url";
|
|
19
|
+
// 安装闭包共享 fallback:$DSH_HOME/profiles/node_modules 由 harness 启动时
|
|
20
|
+
// heal 出来(symlink 镜像 harness 实际使用的依赖闭包,npm 安装与源码运行
|
|
21
|
+
// 都会建立)。优先从这里解析,保证插件与 harness 用同一模块实例;Node ESM
|
|
22
|
+
// 不支持目录导入,用包目录的 package.json 作 require 锚解析入口文件
|
|
23
|
+
// (require.resolve 默认 realpath 化,得到 harness 同源实体路径)。
|
|
24
|
+
// 失败返回 null,由调用方 fall through 原有解析链。
|
|
25
|
+
function loadInstallFallback(specifier) {
|
|
26
|
+
try {
|
|
27
|
+
const dshHome = process.env.DSH_HOME?.trim() ? resolve(process.env.DSH_HOME) : join(homedir(), ".dsh");
|
|
28
|
+
const anchor = join(dshHome, "profiles", "node_modules", specifier, "package.json");
|
|
29
|
+
const real = realpathSync(createRequire(anchor).resolve(specifier));
|
|
30
|
+
return import(pathToFileURL(real).href);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
18
36
|
// @deepseek-ai/dsh-typert-protocol 是 ESM 包。Node 20 早期版本尚不支持
|
|
19
37
|
// require(ESM),因此统一用 import() 加载;fallback 时先用 createRequire
|
|
20
38
|
// 解析出实际文件,再以 file URL 导入。
|
|
21
39
|
async function loadTypert() {
|
|
40
|
+
const fromFallback = loadInstallFallback("@deepseek-ai/dsh-typert-protocol");
|
|
41
|
+
if (fromFallback !== null)
|
|
42
|
+
return fromFallback;
|
|
22
43
|
try {
|
|
23
44
|
return await import("@deepseek-ai/dsh-typert-protocol");
|
|
24
45
|
}
|
package/lib/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.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.2
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "DSH plugin: browse archived sessions, inspect their content, batch-restore or permanently delete them with multi-select",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"optionalDependencies": {
|
|
36
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
36
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.1-rc.2"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "bun ../../scripts/build.mjs",
|