@michengai/dsh-archive-manager 1.0.20 → 1.1.1
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 +16 -1
- package/CHANGELOG.zh-CN.md +16 -1
- package/README.md +3 -3
- package/README.ru.md +3 -3
- package/README.zh-CN.md +3 -3
- package/cordis.patch.yml +1 -1
- package/lib/archive-experience.js +4 -6
- package/lib/client.js +5 -1063
- package/lib/plugin-updater.js +17 -3
- package/lib/projcache.js +0 -14
- package/lib/release-age.js +164 -0
- package/lib/workspace.js +11 -19
- package/package.json +44 -49
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
Published release notes are retained below; new versions are added without removing earlier entries.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 1.1.1 - 2026-10-18
|
|
8
|
+
|
|
9
|
+
- In the sidebar session menu, "Delete session" confirmation is now a neat floating card anchored right next to that session row instead of a full-screen overlay, matching the native translucent dark blur and lighting of host dropdown menus (#60).
|
|
10
|
+
- Fixed an issue where clicking "Delete session" from the sidebar without first opening the "Archived" settings page caused an unstyled confirmation dialog to drop to the bottom of the window (#59).
|
|
11
|
+
- Fixed punctuation in non-Chinese confirmation dialog titles (English and Russian no longer display a full-width question mark), and ensured dialog contents stay fully visible near screen edges without clipping action buttons.
|
|
12
|
+
- Improved keyboard navigation: opening the delete confirmation card focuses "Cancel" by default, pressing Escape or Tab works seamlessly within the card, and closing returns focus back to the session row.
|
|
13
|
+
|
|
14
|
+
## 1.1.0 - 2026-10-17
|
|
15
|
+
|
|
16
|
+
- Supported hosts are now DeepSeek Harness `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1`, and `0.2.1-rc.2`. Intermediate `0.2.1-alpha.*` releases and hosts before `0.2.0` are rejected by the version gate and this plugin will not run. If you still use a `0.1.x` host, install plugin `1.0.20` instead of `@latest`. Existing archives, favorites, and settings are kept.
|
|
17
|
+
- Archive filter bar stays on two aligned rows at normal widths: dropdowns size to their labels, the search box fills the first row, and the date range fills the second row with both date inputs stretching inside it. Below a 480px container the filter row wraps instead of clipping the dates, and narrow panels no longer stack the bar into five separate rows.
|
|
18
|
+
- Destructive confirmations (delete sessions, stop-and-archive, workspace archive or delete) now use a red outlined button aligned with the host warning pattern instead of a filled primary button. The batch selection bar's delete button uses the same treatment, and its leftover pre-host-button styles are removed. Sidebar dialogs no longer reference the host's hashed delete class, whose name changed across host versions and left those buttons unstyled.
|
|
19
|
+
- Icon-only buttons (favorite, restore or archive, more actions, sidebar card delete) now share one 22×22 outlined style: neutral gray with a blue hover, and always-red for permanent delete. Unused custom button styles are removed.
|
|
20
|
+
- Both "more actions" menus (session rows and project groups) now use the host menu's native icons: restore uses the unarchive glyph, delete the trash glyph, and the session menu gains icons for preview, copy ID, and copy path. The custom icon-label wrapper is removed.
|
|
21
|
+
- Self-update still bypasses the one-day release-age gate. After a successful install, the exact version is merged into that package's existing allowlist entry so later installs and uninstalls in the profile are not blocked.
|
|
22
|
+
- Removed client fallbacks that existed only for `0.1.x`: `client-runtime`, the plugin remote restore fallback, projection-cache `putSoft`, and replacing the official sidebar when it has no session menu slot.
|
|
8
23
|
|
|
9
24
|
## 1.0.20 - 2026-10-16
|
|
10
25
|
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -4,7 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
以下发布说明会持续保留;新增版本时不再删除较早记录。
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 1.1.1 - 2026-10-18
|
|
8
|
+
|
|
9
|
+
- 侧边栏右键菜单里的「删除会话」确认框改为贴在当前会话旁的小卡片,不再用全屏居中大弹窗遮挡界面,质感与原生下拉菜单保持一致的暗色毛玻璃与微光阴影(#60)。
|
|
10
|
+
- 修复在启动后尚未打开过「已归档」设置页时,直接在侧边栏删除会话导致确认弹窗无样式掉落到页面最底部的界面错乱问题(#59)。
|
|
11
|
+
- 修复英文与俄文确认标题后误带中文全角问号的问题,并优化卡片贴靠边缘时的排版,防止长标题或多行说明导致底部确认按钮被遮挡。
|
|
12
|
+
- 优化键盘操作体验:打开确认卡片默认高亮「取消」按钮防误触,支持使用 Escape 或 Tab 键在卡片内切换,关闭后焦点准确回到刚才点击的会话行。
|
|
13
|
+
|
|
14
|
+
## 1.1.0 - 2026-10-17
|
|
15
|
+
|
|
16
|
+
- 支持的宿主改为 DeepSeek Harness `0.2.0-rc.1`、`0.2.0-rc.2`、`0.2.1-rc.1`、`0.2.1-rc.2`。中间的 `0.2.1-alpha.*` 和 `0.2.0` 之前的宿主会被版本门拒绝,插件不会运行。仍在使用 `0.1.x` 的,请安装插件 `1.0.20`,不要装 `@latest`。已有归档、收藏和设置会保留。
|
|
17
|
+
- 归档筛选栏在常规宽度下保持两行对齐:下拉按文字宽度,搜索框铺满第一行,日期范围铺满第二行且内部两个日期输入一起撑满。容器窄于 480px 时筛选行改为换行,避免日期被裁掉末尾,也不会再折成五行。
|
|
18
|
+
- 危险操作确认(删除会话、停止并归档、归档/删除整个项目)统一为红色描边按钮,对齐宿主警告样式,不再用蓝色主按钮。批量选择栏的删除按钮用同一套样式,并清掉它改用宿主按钮之前留下的死样式。侧栏弹窗不再引用宿主带哈希的删除类名——该类名随宿主版本变化,此前已经悄悄失效。
|
|
19
|
+
- 纯图标按钮(收藏、恢复/归档、更多操作、侧栏卡片删除)统一为 22×22 描边样式:默认灰色、悬停变蓝,永久删除始终红色。顺带清掉不再使用的自绘按钮样式。
|
|
20
|
+
- 两个「更多」菜单(会话行和项目组)统一用宿主菜单的原生图标:恢复用取消归档图标,删除用垃圾桶图标,会话菜单的预览、复制 ID、复制路径也补上图标。自绘的图标+文字包装已删除。
|
|
21
|
+
- 自更新仍会绕过一天的发布年龄限制。安装成功后,把刚装上的精确版本并进该包已有的白名单第一条,避免之后整个 profile 无法安装或卸载插件。
|
|
22
|
+
- 去掉只为 `0.1.x` 准备的客户端回退:`client-runtime`、官方恢复缺失时的插件 remote 回退、投影缓存 `putSoft`,以及没有会话菜单插槽时整页替换官方侧栏。
|
|
8
23
|
|
|
9
24
|
## 1.0.20 - 2026-10-16
|
|
10
25
|
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
15
15
|
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
16
16
|
[](https://github.com/MichengAI/dsh-archive-manager)
|
|
17
|
-
[](#prerequisites)
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
> DSH Archive Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
|
|
@@ -67,7 +67,7 @@ Switch to **Unarchived** for the same filters, idle cleanup previews, and projec
|
|
|
67
67
|
## Prerequisites
|
|
68
68
|
|
|
69
69
|
- A working [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web installation with `dsh` available in your terminal.
|
|
70
|
-
- Supported DSH versions: `0.
|
|
70
|
+
- Supported DSH versions: `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1`, and `0.2.1-rc.2`. Intermediate `0.2.1-alpha.*` releases and earlier hosts are rejected by the version gate and this plugin will not run. Existing archives and favorites are kept. Install `1.0.20` if you still use a `0.1.x` host.
|
|
71
71
|
- Node.js matching `^22.19.0 || >=24.0.0`. Source installation also requires pnpm.
|
|
72
72
|
|
|
73
73
|
## Installation
|
|
@@ -117,7 +117,7 @@ The page opens on **Archived**, with **Unarchived** on the right. Switching tabs
|
|
|
117
117
|
|
|
118
118
|
**Select all filtered results** selects matching sessions, including collapsed groups. Project-wide actions still apply to the whole project regardless of search filters. Unarchived excludes subagents and blank placeholders.
|
|
119
119
|
|
|
120
|
-
Settings and sidebar batch archive/restore call the single-session APIs
|
|
120
|
+
Settings and sidebar batch archive/restore call the official single-session APIs `ctx.workspaces.archiveSession` and `ctx.workspaces.unarchiveSession` serially.
|
|
121
121
|
|
|
122
122
|
### Favorites and idle cleanup
|
|
123
123
|
|
package/README.ru.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
15
15
|
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
16
16
|
[](https://github.com/MichengAI/dsh-archive-manager)
|
|
17
|
-
[](#предварительные-требования)
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
> DSH Archive Manager — это поддерживаемый сообществом плагин для DeepSeek Harness (DSH), а не официальный продукт DeepSeek AI.
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
## Предварительные требования
|
|
68
68
|
|
|
69
69
|
- Рабочая установка [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web с доступным `dsh` в терминале.
|
|
70
|
-
- Поддерживаемые версии DSH: `0.
|
|
70
|
+
- Поддерживаемые версии DSH: `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1` и `0.2.1-rc.2`. Промежуточные выпуски `0.2.1-alpha.*` и более ранние хосты отклоняются проверкой версии, и плагин не запускается. Существующие архивы и избранное сохраняются. Для `0.1.x` установите `1.0.20`.
|
|
71
71
|
- Node.js версии `^22.19.0 || >=24.0.0`. Для установки из исходников также требуется pnpm.
|
|
72
72
|
|
|
73
73
|
## Установка
|
|
@@ -117,7 +117,7 @@ dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=ht
|
|
|
117
117
|
|
|
118
118
|
**Выбрать все результаты** выбирает подходящие сессии, включая свёрнутые группы. Действия по всему проекту по-прежнему применяются ко всему проекту независимо от фильтров поиска. Вкладка **Незаархивированные** исключает субагентов и пустые заглушки.
|
|
119
119
|
|
|
120
|
-
Массовое
|
|
120
|
+
Массовое архивирование и восстановление из настроек и боковой панели последовательно вызывают официальные API `ctx.workspaces.archiveSession` и `ctx.workspaces.unarchiveSession`.
|
|
121
121
|
|
|
122
122
|
### Избранное и очистка неактивных
|
|
123
123
|
|
package/README.zh-CN.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
15
15
|
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
16
16
|
[](https://github.com/MichengAI/dsh-archive-manager)
|
|
17
|
-
[](#前置条件)
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
20
|
> DSH Archive Manager 是社区维护的 DeepSeek Harness(DSH)插件,并非 DeepSeek AI 官方产品。
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
## 前置条件
|
|
72
72
|
|
|
73
73
|
- 已能正常使用 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web,并可在终端运行 `dsh`。
|
|
74
|
-
- 当前支持 DSH `0.
|
|
74
|
+
- 当前支持 DSH `0.2.0-rc.1`、`0.2.0-rc.2`、`0.2.1-rc.1`、`0.2.1-rc.2`。中间的 `0.2.1-alpha.*` 和更早宿主会被版本门拒绝,插件不会运行;已有归档和收藏仍保留。仍在使用 `0.1.x` 的,请安装 `1.0.20`。
|
|
75
75
|
- Node.js 版本需满足 `^22.19.0 || >=24.0.0`;从源码安装还需要 pnpm。
|
|
76
76
|
|
|
77
77
|
## 安装
|
|
@@ -131,7 +131,7 @@ dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=ht
|
|
|
131
131
|
|
|
132
132
|
「全选当前筛选结果」只选择符合当前条件的会话。项目菜单的整体操作仍作用于该项目全部会话,不受搜索筛选影响。未归档页排除子代理和空白占位会话。
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
设置页与侧栏的批量归档、批量恢复均串行调用官方单条接口 `ctx.workspaces.archiveSession` 和 `ctx.workspaces.unarchiveSession`。
|
|
135
135
|
|
|
136
136
|
### 查看并继续归档对话
|
|
137
137
|
|
package/cordis.patch.yml
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# 自定义侧栏通过优先级覆盖插槽;发布后的安装命令:
|
|
8
8
|
# dsh plugin --profile web add @michengai/dsh-archive-manager
|
|
9
9
|
#
|
|
10
|
-
# DSH 0.2.1-
|
|
10
|
+
# DSH 0.2.1-rc.1 起官方已无 ui-settings-unarchive-sessions 入口;
|
|
11
11
|
# 再 disable 会在 dump-config 告警「entry not found」,故不再写入该补丁。
|
|
12
12
|
- id: ui-workspace
|
|
13
13
|
disabled: false
|
|
@@ -27,13 +27,13 @@ function mainViewSessionId(list) {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
function currentSessionId(list) {
|
|
30
|
-
return mainViewSessionId(list)
|
|
30
|
+
return mainViewSessionId(list);
|
|
31
31
|
}
|
|
32
32
|
function sessionIsCurrent(list, id, sessions) {
|
|
33
33
|
if (id === void 0 || id === "") return false;
|
|
34
34
|
if ((list?.byId?.[id]?.retainedBy?.mainView ?? 0) > 0) return true;
|
|
35
35
|
if ((retainInfoSnapshot(sessions, id)?.retainedBy?.mainView ?? 0) > 0) return true;
|
|
36
|
-
return
|
|
36
|
+
return false;
|
|
37
37
|
}
|
|
38
38
|
async function openArchivedConversation(actions, sessionId, restore, isActive = () => true) {
|
|
39
39
|
if (restore) {
|
|
@@ -72,13 +72,11 @@ function allowArchivedNavigation(navigation, sessions, workspaces, { onOpened =
|
|
|
72
72
|
throw new ArchiveNavigationError("navigationUnavailable");
|
|
73
73
|
}
|
|
74
74
|
beginNavigation?.();
|
|
75
|
-
if (typeof
|
|
76
|
-
else if (typeof sessions.open === "function") sessions.open(id);
|
|
77
|
-
else if (typeof navigation?.openSession === "function") navigation.openSession(id);
|
|
78
|
-
else {
|
|
75
|
+
if (typeof navigation?.openSession !== "function") {
|
|
79
76
|
warn("archive-manager: \u5BBF\u4E3B\u672A\u63D0\u4F9B\u4F1A\u8BDD\u6253\u5F00\u63A5\u53E3\u3002");
|
|
80
77
|
throw new ArchiveNavigationError("navigationUnavailable");
|
|
81
78
|
}
|
|
79
|
+
navigation.openSession(id);
|
|
82
80
|
if (!viewing(id)) {
|
|
83
81
|
warn("archive-manager: \u5BBF\u4E3B\u672A\u4FDD\u7559\u76EE\u6807\u4F1A\u8BDD\u3002", { cleanupAvailable: typeof original === "function" });
|
|
84
82
|
throw new ArchiveNavigationError("sessionNotRetained");
|