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 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
  [![npm version](https://img.shields.io/npm/v/dsh-session-manager)](https://www.npmjs.com/package/dsh-session-manager)
6
+ [![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-upstream-1082ff)](https://github.com/deepseek-ai/deepseek-harness)
6
7
  [![GitHub](https://img.shields.io/badge/GitHub-repository-blue)](https://github.com/hkkz9522/dsh-session-manager)
7
8
  [![CI](https://github.com/hkkz9522/dsh-session-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/hkkz9522/dsh-session-manager/actions/workflows/ci.yml)
8
9
  [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](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**: A 🐋 (Whale) icon button 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.
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 (new in v0.7.0)
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 Session manager panel
71
+ ### 2.2 Sessions and workspaces management entry and interface
71
72
 
72
- Open the **Session manager** panel from the bottom of DSH's sidebar to browse every session, switch workspaces, search by title or ID, apply filters and sorting, and run **Open / Archive / Unarchive / Tags / Notes / Move / Migrate preset / Delete** on any row. The panel header carries the workspace selector, archive filter, favorites / review flags, tag and priority filters, sort order, and matching / total counts plus a reset action.
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
- DSH versions are shown above plugin versions; each column represents a tested version combination.
144
-
145
- > Verification note: from 0.6.3 on, this plugin is verified with the official DSH Desktop client only (the Web UI shares the same Host/client code but is no longer covered by the verification matrix).
146
-
147
- | v0.2.0-rc.2 | v0.1.7-rc.2 | v0.1.7-rc.1 |
148
- | --- | --- | --- |
149
- | 0.7.1, 0.7.0, 0.6.4, 0.6.3, 0.6.2, 0.5.4 | 0.5.3 | 0.5.2 |
150
-
151
- | v0.1.6-alpha.2 | v0.1.5-rc.2 | v0.1.5-rc.1 |
152
- | --- | --- | --- |
153
- | 0.5.1 | 0.4.11 | 0.4.10, 0.4.9, 0.4.7 |
154
-
155
- | v0.1.3-alpha.2 | v0.1.2-rc.1 | v0.1.0-rc.7 |
156
- | --- | --- | --- |
157
- | 0.4.6, 0.4.4, 0.4.1 | 0.4.0 | 0.1.2, 0.1.1, 0.1.0 |
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
  [![npm version](https://img.shields.io/npm/v/dsh-session-manager)](https://www.npmjs.com/package/dsh-session-manager)
6
+ [![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-宿主-1082ff)](https://github.com/deepseek-ai/deepseek-harness)
6
7
  [![GitHub](https://img.shields.io/badge/GitHub-仓库-blue)](https://github.com/hkkz9522/dsh-session-manager)
7
8
  [![CI](https://github.com/hkkz9522/dsh-session-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/hkkz9522/dsh-session-manager/actions/workflows/ci.yml)
8
9
  [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com)
@@ -26,7 +27,7 @@ DSH 会话与工作区管理——工作区:归档与显示。会话:跨工
26
27
 
27
28
  - **收藏 / 待回看**:长期标记和手动提醒;不会随归档或会话结束自动清除。
28
29
  - **搜索**:按标题、会话 ID、备注、标签不区分大小写匹配,自动去除首尾空格,不读取聊天历史。
29
- - **筛选与排序**:工作区(全部 / 未分组 / 具体)与归档状态(全部 / 未归档 / 已归档)可叠加;可叠加收藏 / 待回看、标签和优先级筛选;排序支持最近更新(默认)、最早更新、最新创建、最早创建以及**优先级(1 → 5)**。
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 工作区归档与管理(v0.7.0 新增)
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
- > 版本验证说明:自 0.6.3 起,本插件仅在官方 DSH Desktop 客户端上进行验证(Web UI 与本插件共用同一套 Host / 客户端代码,但不再纳入验证范围)。
144
-
145
- | v0.2.0-rc.2 | v0.1.7-rc.2 | v0.1.7-rc.1 |
146
- | --- | --- | --- |
147
- | 0.7.1, 0.7.0, 0.6.4, 0.6.3, 0.6.2, 0.5.4 | 0.5.3 | 0.5.2 |
148
-
149
- | v0.1.6-alpha.2 | v0.1.5-rc.2 | v0.1.5-rc.1 |
150
- | --- | --- | --- |
151
- | 0.5.1 | 0.4.11 | 0.4.10, 0.4.9, 0.4.7 |
152
-
153
- | v0.1.3-alpha.2 | v0.1.2-rc.1 | v0.1.0-rc.7 |
154
- | --- | --- | --- |
155
- | 0.4.6, 0.4.4, 0.4.1 | 0.4.0 | 0.1.2, 0.1.1, 0.1.0 |
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