dsh-session-manager 0.7.1 → 0.7.3
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 +19 -0
- package/README.md +22 -20
- package/README.zh.md +20 -18
- package/lib/client.js +429 -95
- package/lib/compat/dsh-adapter.js +177 -7
- package/lib/index.js +946 -39
- package/lib/session-files.js +73 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.7.3 — 2026-10-18
|
|
6
|
+
|
|
7
|
+
- **fix(update)**: Fix built-in one-click update and resolve `cannot get property "remote" without inject` by routing update requests through the plugin's own Host API instead of client-side `remote.pluginManager`.
|
|
8
|
+
- **feat(update)**: Implement completely independent one-click self-update without relying on `dsh-market`. Support both HMR (`removeBundle` -> `installBundle` sequence with automatic rollback to previous version on failure) and non-HMR environments.
|
|
9
|
+
- **feat(update)**: Add persistent update status tracking (`.dsh-session-manager-update.json` in profile directory) and `GET /update/status` polling recovery, ensuring seamless result delivery even if the client connection is temporarily interrupted during HMR reload.
|
|
10
|
+
- **feat(update)**: Install source protection: automatically identify `linked` (local development) and `github` install sources to refuse npm package overwrites and protect local workspaces.
|
|
11
|
+
- **fix(update)**: Prevent accidental version downgrades with `400 not-upgrade` checks, properly handle `application: "failed"` responses from the bundle installer, and add post-install disk file/entry point verification.
|
|
12
|
+
- **fix(ui)**: Fix button hover contrast in light and dark themes: ensure `.sm-nativeDialogConfirm` retain blue background and white text when hovered.
|
|
13
|
+
- **test**: Add comprehensive regression tests covering update checking, install source protection, HMR safe self-update and automatic rollback, status polling recovery, and button hover styling.
|
|
14
|
+
- **compat**: Compatible with DSH Desktop V0.2.1-rc.2 (and V0.2.0-rc.2).
|
|
15
|
+
|
|
16
|
+
## 0.7.2 — 2026-10-17
|
|
17
|
+
|
|
18
|
+
- **fix(encoding)**: Correct session directory encoding and candidate matching for IM and non-UUID sessions (`encodeFsSessionSegment` matching DSH `encodeSegment` with `~XXXX` hex escapes). Support colons and non-alphanumeric characters in session IDs without directory traversal risks, distinguish project keys from session directory segments, and maintain multi-candidate fallback compatibility for existing sessions (#39).
|
|
19
|
+
- **fix(ui)**: Scope custom dropdown interceptor to Session Manager elements only (`getTargetSmSelect`), preventing global interception of third-party plugin selects and DSH native dropdowns and eliminating unwanted `preventDefault` / `stopPropagation` calls (#36).
|
|
20
|
+
- **fix(ui)**: Prevent scrolling within the custom select menu from closing the menu, enabling smooth wheel scrolling and scrollbar dragging across long option lists (PR #37).
|
|
21
|
+
- **fix(ui)**: Improve sidebar footer layout compatibility when multiple plugins inject actions into `sidebar.footer.action`. Apply scoped `flex-wrap: wrap` on the footer actions container and update `.sm-footerBtn-wide` to `flex: 1 1 100%`, preventing overlapping buttons and horizontal squishing without fragile CSS module hashes or targeting other plugins' private classes (#38).
|
|
22
|
+
- **compat**: Compatible with DSH Desktop V0.2.1-rc.2 (and V0.2.0-rc.2).
|
|
23
|
+
|
|
5
24
|
## 0.7.1 — 2026-10-15
|
|
6
25
|
|
|
7
26
|
- **fix(cache)**: Decouple boot-time workspace session membership reconciliation from projection cache reconstruction, preventing background event-loop blocking and watchdog recovery timeouts on large session libraries (#32).
|
package/README.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
English | [中文](README.zh.md)
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-session-manager)
|
|
6
|
+
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
6
7
|
[](https://github.com/hkkz9522/dsh-session-manager)
|
|
7
8
|
[](https://github.com/hkkz9522/dsh-session-manager/actions/workflows/ci.yml)
|
|
8
9
|
[](https://awesome-dsh-plugin.com)
|
|
@@ -26,7 +27,7 @@ Verified with the official DSH Desktop client; see [5 Compatibility](#5-compatib
|
|
|
26
27
|
|
|
27
28
|
- **Favorites / Review-later** are manual flags that survive archive and session end; neither is cleared automatically.
|
|
28
29
|
- **Search** matches title, session ID, note and tags case-insensitively, trims whitespace, and never reads chat history.
|
|
29
|
-
- **Filters and sorting** combine a workspace selector (All / Ungrouped / specific) with an archive filter (All / Active / Archived), then layer favorites / review, tag and priority filters on top. Sort by recently updated (default), least recently updated, newest created, oldest created, or **priority (1 → 5)**.
|
|
30
|
+
- **Filters and sorting** combine a workspace selector (All / Ungrouped / specific) with an archive filter (All / Active / Archived), then layer favorites / review, tag and priority filters on top. Sort by recently updated (default), least recently updated, newest created, oldest created, name ascending (A-Z), name descending (Z-A), or **priority (1 → 5)**.
|
|
30
31
|
- **Priority** is a dropdown **1 Highest, 2 High, 3 Normal, 4 Low, 5 Lowest**, default **3 (Normal)**; legacy `null` priorities are normalized to 3.
|
|
31
32
|
- **Tags / Notes**: up to 20 tags per session (≤ 32 characters each) and a 2000-character note. Both English `,` and Chinese `,` are separators, whitespace is trimmed, duplicate tags are merged case-insensitively.
|
|
32
33
|
- **AI-assisted tagging** is manual and opt-in: **Copy Prompt** writes a structured prompt (Chinese or English, matched to the active UI) to the clipboard; **Import** parses the clipboard JSON (tolerating Markdown fences, conversational wrappers, smart quotes, stray backslashes and a leading BOM), validates it against the same limits, and populates the editor fields. Neither button calls a model automatically.
|
|
@@ -44,14 +45,14 @@ Verified with the official DSH Desktop client; see [5 Compatibility](#5-compatib
|
|
|
44
45
|
|
|
45
46
|
### 1.4 Plugin updates and settings
|
|
46
47
|
|
|
47
|
-
- **Self-update check**:
|
|
48
|
+
- **Self-update check**: An **npm icon button** (Check for updates) in the session manager panel header checks for updates and displays a notification dot when a new version is available. Click to open the update dialog with current and latest versions, and one-click update via the DSH Plugin Manager with support for both HMR and non-HMR environments, persistent status tracking, automatic rollback on failure, and restart/refresh prompts.
|
|
48
49
|
- **Settings Card**: Registered under DSH Settings (`settings.plugin.item`). Displays current version, latest version, inline check/update buttons, an auto-check toggle, and GitHub repository link.
|
|
49
50
|
- **Install Source (Registry)**: Select between **npm official registry** (`registry.npmjs.org`, default) and **China mainland mirror** (`registry.npmmirror.com`) in the Settings Card. Check for updates and download packages directly from the selected registry.
|
|
50
51
|
- **Dialog opacity**: A 50%–100% slider (5% steps, default 100%) with a "Reset to default" button in the Settings Card's preferences section. Adjusts the background fill opacity of plugin dialogs in real time while keeping text, buttons, inputs, tags, and borders fully opaque.
|
|
51
52
|
- **Theme**: Automatically follows the active DSH theme (including third-party theme plugins). Dialogs, settings cards, title-bar buttons, menus, inputs, and all other UI elements seamlessly adapt to light and dark themes.
|
|
52
53
|
- **Unified dropdown styling**: All select dropdowns (sort, filter, priority) use unified shadow-free rounded custom floating menus matching active themes, strictly aligned with trigger widths, eliminating Chromium duplicate native popups.
|
|
53
54
|
|
|
54
|
-
### 1.5 Workspace Archiving and Management
|
|
55
|
+
### 1.5 Workspace Archiving and Management
|
|
55
56
|
|
|
56
57
|
- **Two-page tab switching**: Seamlessly switch between "Session Management" and "Workspace Management" in the dialog header, preserving each page's distinct search, filter, and sort states.
|
|
57
58
|
- **Workspace list**: Displays all registered workspaces with title/name, physical path, session count, latest activity timestamp computed from member sessions, and right-side toggle switch.
|
|
@@ -67,9 +68,9 @@ Verified with the official DSH Desktop client; see [5 Compatibility](#5-compatib
|
|
|
67
68
|
|
|
68
69
|
The right side of the title area exposes actions for the **current session**: **Archive / Unarchive**, **Tags / Notes**, **Move to workspace**, **Delete session**.
|
|
69
70
|
|
|
70
|
-
### 2.2
|
|
71
|
+
### 2.2 Sessions and workspaces management entry and interface
|
|
71
72
|
|
|
72
|
-
Open
|
|
73
|
+
Open **Sessions & Workspaces** from the bottom of DSH's sidebar to browse all sessions and workspaces: the session management tab supports switching workspaces, searching by title / ID / notes / tags, applying filters and sorting, and running **Open / Archive / Unarchive / Tags / Notes / Move / Migrate preset / Delete** on any session row; the workspace management tab supports searching, sorting, bulk actions, and visibility toggling.
|
|
73
74
|
|
|
74
75
|
### 2.3 Bulk management
|
|
75
76
|
|
|
@@ -140,21 +141,22 @@ After changing plugin dependencies, `package.json`, bundle configuration, or oth
|
|
|
140
141
|
|
|
141
142
|
## 5 Compatibility
|
|
142
143
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
> Verification note
|
|
146
|
-
|
|
147
|
-
|
|
|
148
|
-
|
|
|
149
|
-
|
|
|
150
|
-
|
|
151
|
-
| v0.1.
|
|
152
|
-
|
|
|
153
|
-
|
|
|
154
|
-
|
|
155
|
-
| v0.1.
|
|
156
|
-
|
|
|
157
|
-
|
|
|
144
|
+
The table below lists verified version combinations between DeepSeek Harness (DSH) and `dsh-session-manager`.
|
|
145
|
+
|
|
146
|
+
> **Verification note**: From version 0.6.3 onwards, this plugin is verified with the official DSH Desktop client only (the Web UI shares the same Host/client codebase but is no longer covered by the verification matrix).
|
|
147
|
+
|
|
148
|
+
| DeepSeek Harness (DSH) | dsh-session-manager | Verified Environment |
|
|
149
|
+
| :--- | :--- | :--- |
|
|
150
|
+
| **v0.2.1-rc.2** | `0.7.3`, `0.7.2` | Desktop |
|
|
151
|
+
| **v0.2.0-rc.2** | `0.7.1`, `0.7.0`, `0.6.4`, `0.6.3`, `0.6.2`, `0.5.4` | Desktop |
|
|
152
|
+
| **v0.1.7-rc.2** | `0.5.3` | Desktop / Web UI |
|
|
153
|
+
| **v0.1.7-rc.1** | `0.5.2` | Desktop / Web UI |
|
|
154
|
+
| **v0.1.6-alpha.2** | `0.5.1` | Web UI |
|
|
155
|
+
| **v0.1.5-rc.2** | `0.4.11` | Web UI |
|
|
156
|
+
| **v0.1.5-rc.1** | `0.4.10`, `0.4.9`, `0.4.7` | Web UI |
|
|
157
|
+
| **v0.1.3-alpha.2** | `0.4.6`, `0.4.4`, `0.4.1` | Web UI |
|
|
158
|
+
| **v0.1.2-rc.1** | `0.4.0` | Web UI |
|
|
159
|
+
| **v0.1.0-rc.7** | `0.1.2`, `0.1.1`, `0.1.0` | Web UI |
|
|
158
160
|
|
|
159
161
|
The version combinations above have been tested with either the official Web UI or Desktop app. Other version combinations may also work but have not been individually verified.
|
|
160
162
|
|
package/README.zh.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
[English](README.md) | 中文
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-session-manager)
|
|
6
|
+
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
6
7
|
[](https://github.com/hkkz9522/dsh-session-manager)
|
|
7
8
|
[](https://github.com/hkkz9522/dsh-session-manager/actions/workflows/ci.yml)
|
|
8
9
|
[](https://awesome-dsh-plugin.com)
|
|
@@ -26,7 +27,7 @@ DSH 会话与工作区管理——工作区:归档与显示。会话:跨工
|
|
|
26
27
|
|
|
27
28
|
- **收藏 / 待回看**:长期标记和手动提醒;不会随归档或会话结束自动清除。
|
|
28
29
|
- **搜索**:按标题、会话 ID、备注、标签不区分大小写匹配,自动去除首尾空格,不读取聊天历史。
|
|
29
|
-
- **筛选与排序**:工作区(全部 / 未分组 / 具体)与归档状态(全部 / 未归档 / 已归档)可叠加;可叠加收藏 /
|
|
30
|
+
- **筛选与排序**:工作区(全部 / 未分组 / 具体)与归档状态(全部 / 未归档 / 已归档)可叠加;可叠加收藏 / 待回看、标签和优先级筛选;排序支持最近更新(默认)、最早更新、最新创建、最早创建、名称升序(A → Z)、名称降序(Z → A)以及**优先级(1 → 5)**。
|
|
30
31
|
- **优先级**:下拉 **1 最高、2 高、3 普通、4 低、5 最低**,**默认 3(普通)**;旧数据中的 `null` 归一化为 3。
|
|
31
32
|
- **标签 / 备注**:每会话最多 20 个标签(每个 ≤ 32 字符)、备注最多 2000 字符。英文 `,` 与中文 `,` 都是分隔符,首尾空白被去除,重复标签按大小写不敏感合并。
|
|
32
33
|
- **AI 整理(手动、可选)**:标签 / 备注编辑窗口内的 **复制 Prompt** 把结构化提示复制到剪贴板,**导入** 解析剪贴板 JSON(可识别 Markdown 代码块、对话包裹、智能引号、孤立反斜杠和开头 BOM),按相同规则校验后填入字段;两者都不会自动调用模型。
|
|
@@ -42,14 +43,14 @@ DSH 会话与工作区管理——工作区:归档与显示。会话:跨工
|
|
|
42
43
|
|
|
43
44
|
### 1.4 插件更新与设置卡片
|
|
44
45
|
|
|
45
|
-
-
|
|
46
|
+
- **检查更新**:会话管理窗口顶部提供 **npm 图标按钮**(检查更新),点击可检查新版本并在有更新时展示小红点提示;点击弹出更新窗口,展示当前版本与最新版本,支持完全独立的一键自动更新,内置安装源保护、HMR 与非 HMR 环境自适应协调、更新状态持久化校验、失败自动回滚和重启/刷新提示。
|
|
46
47
|
- **设置卡片**:注册在 DSH 设置的插件配置页(`settings.plugin.item`)。展示当前安装版本、最新版本状态、卡片内检查更新与更新按钮、自动检查偏好开关以及 GitHub 仓库链接。
|
|
47
48
|
- **安装源选择**:在设置卡片中可随时切换安装源,可选 **npm 官方源**(`registry.npmjs.org`,默认)与 **中国大陆镜像源**(`registry.npmmirror.com`);检查更新与版本下载将直接请求所选源。
|
|
48
49
|
- **弹窗透明度**:设置卡片「偏好设置」区域提供 50%–100% 滑块(步长 5%,默认 100%)与「恢复默认」按钮,支持调节插件弹窗的背景填充透明度,文字、按钮、输入框、标签与边框等内容保持不透明并即时生效。
|
|
49
50
|
- **主题**:全面跟随 DSH 当前主题(包含第三方主题插件),弹窗、设置卡片、标题栏按钮、下拉菜单、输入框等界面元素自动适配浅色与深色主题。
|
|
50
51
|
- **统一下拉样式**:所有下拉选择框(排序、筛选、优先级等)采用无四周阴影的统一圆角自定义浮层,严格对齐触发框宽度,并解决 Chromium 原生系统弹层与自定义浮层重叠的双层问题。
|
|
51
52
|
|
|
52
|
-
### 1.5
|
|
53
|
+
### 1.5 工作区归档与管理
|
|
53
54
|
|
|
54
55
|
- **双页面切换**:在管理弹窗顶部可在「会话管理」与「工作区管理」之间无缝切换,保留各自的搜索与筛选状态。
|
|
55
56
|
- **工作区列表**:完整展示全部已注册工作区,包含工作区名称、物理路径、所属会话数、基于所属会话计算的最近更新时间及状态开关。
|
|
@@ -138,21 +139,22 @@ dsh plugin --profile web add <本仓库路径>
|
|
|
138
139
|
|
|
139
140
|
## 5 兼容性
|
|
140
141
|
|
|
141
|
-
DSH
|
|
142
|
-
|
|
143
|
-
>
|
|
144
|
-
|
|
145
|
-
|
|
|
146
|
-
|
|
|
147
|
-
|
|
|
148
|
-
|
|
149
|
-
| v0.1.
|
|
150
|
-
|
|
|
151
|
-
|
|
|
152
|
-
|
|
153
|
-
| v0.1.
|
|
154
|
-
|
|
|
155
|
-
|
|
|
142
|
+
下表列出 DeepSeek Harness(DSH)与 `dsh-session-manager` 已验证的版本组合。
|
|
143
|
+
|
|
144
|
+
> **版本验证说明**:自 0.6.3 起,本插件仅在官方 DSH Desktop 客户端上进行验证(Web UI 与本插件共用同一套 Host / 客户端代码,但不再纳入常规验证范围)。
|
|
145
|
+
|
|
146
|
+
| DeepSeek Harness (DSH) | dsh-session-manager | 验证环境 |
|
|
147
|
+
| :--- | :--- | :--- |
|
|
148
|
+
| **v0.2.1-rc.2** | `0.7.3`, `0.7.2` | Desktop |
|
|
149
|
+
| **v0.2.0-rc.2** | `0.7.1`, `0.7.0`, `0.6.4`, `0.6.3`, `0.6.2`, `0.5.4` | Desktop |
|
|
150
|
+
| **v0.1.7-rc.2** | `0.5.3` | Desktop / Web UI |
|
|
151
|
+
| **v0.1.7-rc.1** | `0.5.2` | Desktop / Web UI |
|
|
152
|
+
| **v0.1.6-alpha.2** | `0.5.1` | Web UI |
|
|
153
|
+
| **v0.1.5-rc.2** | `0.4.11` | Web UI |
|
|
154
|
+
| **v0.1.5-rc.1** | `0.4.10`, `0.4.9`, `0.4.7` | Web UI |
|
|
155
|
+
| **v0.1.3-alpha.2** | `0.4.6`, `0.4.4`, `0.4.1` | Web UI |
|
|
156
|
+
| **v0.1.2-rc.1** | `0.4.0` | Web UI |
|
|
157
|
+
| **v0.1.0-rc.7** | `0.1.2`, `0.1.1`, `0.1.0` | Web UI |
|
|
156
158
|
|
|
157
159
|
以上版本组合已在官方 Web UI 或 Desktop 客户端中完成测试。其他版本组合可能同样兼容,但未逐一验证。
|
|
158
160
|
|