@chaoset/session-archive 0.2.4 → 0.3.0
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 +21 -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/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.0](https://github.com/winliyou/dsh-plugins) (2026-08-25)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **实时徽标与列表**:订阅宿主 workspaces 服务的归档集合 store——会话菜单点「归档」、其它标签页变更、宿主推送 `host/archived-sessions-changed` 都即时反映到侧边栏徽标与打开中的面板,不再等 5s 轮询;集合含 ghost id 与 `count()` 口径不同,故仅作触发信号、数目仍以 `count()` 为准;store 不可用时经 `ctx.get` 探测降级为纯轮询(不写 inject,插件不因等待挂起)
|
|
8
|
+
* `count()` 调用失败自动退回一次 `list()` 取数并同步徽标:任何 host 版本组合(如宿主进程旧于 lib、端点缺失)下徽标都能自我纠正,不再卡在过期值
|
|
9
|
+
* **徽标 hover 与「设置」入口对齐**:几何与官方侧边栏设置触发按钮逐字一致(`calc(100% + 4px)` 宽 / 42px 高 / 负外边距 / 非对称内边距 / 12px 圆角 / 同一 hover 变量;收起态 36×36 圆形、图标 18px)。根因修复:`.sa_root` 是 `footerActions`(flex 容器)的直接 flex 项会收缩到内容宽,显式 `width:100%` 撑满后 hover 命中面积与设置入口完全一致
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* `deleteArchived` 冷文件快速路径:不在内存且 60s 内无写入的归档删除跳过固定 2×300ms settle 复验(重现只可能来自内存生成流或刚写过的 tab),批量清理陈旧归档从 ~12s/20 个降到 <1s;可能活跃的会话维持原两段复验与 `reappeared` 语义
|
|
14
|
+
* 徽标关闭态轮询在标签页隐藏时暂停 interval,恢复可见立即刷一次并重启(隐藏页轮询是纯浪费);面板打开期间新增 30s 静默刷新(`sameItems` 比较,数据不变不重渲染、不打断勾选)
|
|
15
|
+
* 批量删除成功后清理 `details`/`expanded` 缓存:内存不再随操作缓慢增长,展开态不再指向已删除的行
|
|
16
|
+
|
|
17
|
+
### Accessibility / UI
|
|
18
|
+
|
|
19
|
+
* 面板焦点管理:打开时焦点移入面板、关闭时归还徽标按钮(`prevOpen` 防首次挂载误触发)
|
|
20
|
+
* 徽标按钮补回 `aria-label`(icon-only 场景 accessible name 自带语义与数量,不依赖 `title`)
|
|
21
|
+
* warn 级通知独立 warn 色(`state-warn-primary`),不再与错误同红
|
|
22
|
+
* 面板 150ms 入场动画(淡入 + 轻微上移,respect `prefers-reduced-motion`);z-index 层级来源注释
|
|
23
|
+
|
|
3
24
|
## [0.2.4](https://github.com/winliyou/dsh-plugins) (2026-08-23)
|
|
4
25
|
|
|
5
26
|
### 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":"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"}
|
package/package.json
CHANGED