dsh-native-session-delete 1.1.0 → 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/AGENTS.md CHANGED
@@ -6,7 +6,7 @@ or remove `dsh-native-session-delete` in a selected DeepSeek Harness profile.
6
6
  ## Safety and responsibility boundary
7
7
 
8
8
  - Confirm the target DSH installation and profile. Use `web` only when it is the user's target.
9
- - Use the fixed v1.1.0 package below; never substitute a moving branch or an unreviewed source.
9
+ - Use the fixed v1.1.1 package below; never substitute a moving branch or an unreviewed source.
10
10
  - Do not print session contents, full profile files, transcript paths, credentials, or other private data.
11
11
  - Do not start, stop, or restart DSH without explicit permission.
12
12
  - Preserve all sessions, unrelated plugins, and user-owned profile changes.
@@ -22,16 +22,16 @@ requirements. A cancelled confirmation is the safe default and must not send a d
22
22
 
23
23
  ## Fixed package and standard bundle
24
24
 
25
- The v1.1.0 package is a standard DSH bundle with a `dsh.bundle` profile patch. Its exact package spec is:
25
+ The v1.1.1 package is a standard DSH bundle with a `dsh.bundle` profile patch. Its exact package spec is:
26
26
 
27
27
  ```text
28
- dsh-native-session-delete@1.1.0
28
+ dsh-native-session-delete@1.1.1
29
29
  ```
30
30
 
31
31
  The bundle disables the official workspace row while installed and inserts a uniquely identified native
32
32
  workspace row. Removing `dsh-native-session-delete` removes that layer, allowing DSH to restore the official
33
33
  workspace row. Do not install the tarball under `@deepseek-ai/dsh-client-ui-workspace`; that old aliasing
34
- approach is not the v1.1.0 contract. The product is shown to users as **DSH Native Session Manager** while
34
+ approach is not the v1.1.1 contract. The product is shown to users as **DSH Native Session Manager** while
35
35
  retaining the existing npm package identity for safe upgrades.
36
36
 
37
37
  ## Detect the target DSH
@@ -57,13 +57,13 @@ record the selected profile's relevant metadata before invoking it, without prin
57
57
  With an existing `dsh` command, run exactly:
58
58
 
59
59
  ```sh
60
- dsh plugin --profile web add dsh-native-session-delete@1.1.0
60
+ dsh plugin --profile web add dsh-native-session-delete@1.1.1
61
61
  ```
62
62
 
63
63
  With DSH-Portable, run from its root:
64
64
 
65
65
  ```powershell
66
- .\dsh.exe plugin --profile web add dsh-native-session-delete@1.1.0
66
+ .\dsh.exe plugin --profile web add dsh-native-session-delete@1.1.1
67
67
  ```
68
68
 
69
69
  Use the same `add` command to update or repair. On Windows, `install.ps1` from the same fixed Release may
@@ -87,7 +87,7 @@ dsh plugin --profile web list dsh-native-session-delete --depth 0
87
87
  Use `.\dsh.exe` in place of `dsh` for DSH-Portable. Static acceptance requires:
88
88
 
89
89
  1. The `dsh-native-session-delete` bundle appears exactly once in the requested profile.
90
- 2. Its direct package spec is the fixed `dsh-native-session-delete@1.1.0` npm version above.
90
+ 2. Its direct package spec is the fixed `dsh-native-session-delete@1.1.1` npm version above.
91
91
  3. The profile contains the bundle patch and no duplicate official workspace row from this plugin.
92
92
  4. No unrelated dependency, profile patch, or session data was changed by the operation.
93
93
 
package/README.md CHANGED
@@ -2,138 +2,154 @@
2
2
 
3
3
  # DSH Native Session Manager
4
4
 
5
- **在 DeepSeek Harness 原生侧边栏中搜索、恢复和安全清理会话。**
5
+ **Manage DeepSeek Harness chat history from the native sidebar: search archives, restore sessions, and delete safely.**
6
6
 
7
- 归档管理 · 聊天记录搜索 · 一键恢复 · 安全永久删除
7
+ Archive manager · Conversation search · One-click restore · Safe permanent deletion
8
8
 
9
- [![Release](https://img.shields.io/github/v/release/WSL043/dsh-native-session-delete?display_name=tag&style=flat-square)](https://github.com/WSL043/dsh-native-session-delete/releases/latest)
10
- [![Checks](https://img.shields.io/github/actions/workflow/status/WSL043/dsh-native-session-delete/ci.yml?branch=main&label=checks&style=flat-square)](https://github.com/WSL043/dsh-native-session-delete/actions/workflows/ci.yml)
9
+ [![Release](https://img.shields.io/github/v/release/WSL043/dsh-native-session-manager?display_name=tag&style=flat-square)](https://github.com/WSL043/dsh-native-session-manager/releases/latest)
10
+ [![Checks](https://img.shields.io/github/actions/workflow/status/WSL043/dsh-native-session-manager/ci.yml?branch=main&label=checks&style=flat-square)](https://github.com/WSL043/dsh-native-session-manager/actions/workflows/ci.yml)
11
11
  [![npm](https://img.shields.io/npm/v/dsh-native-session-delete?style=flat-square)](https://www.npmjs.com/package/dsh-native-session-delete)
12
- [![DSH](https://img.shields.io/badge/DSH-compatible-2f81f7?style=flat-square)](#兼容性)
13
- [![License](https://img.shields.io/github/license/WSL043/dsh-native-session-delete?style=flat-square)](LICENSE)
12
+ [![npm downloads](https://img.shields.io/npm/dm/dsh-native-session-delete?style=flat-square)](https://www.npmjs.com/package/dsh-native-session-delete)
13
+ [![DSH](https://img.shields.io/badge/DSH-compatible-2f81f7?style=flat-square)](#compatibility)
14
+ [![License](https://img.shields.io/github/license/WSL043/dsh-native-session-manager?style=flat-square)](LICENSE)
15
+ [![Stars](https://img.shields.io/github/stars/WSL043/dsh-native-session-manager?style=flat-square&label=stars)](https://github.com/WSL043/dsh-native-session-manager/stargazers)
16
+ [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com)
14
17
 
15
- [English](README.en.md) · [安装](#安装) · [使用](#使用) · [安全边界](#安全边界)
18
+ [中文](README.zh-CN.md) · [Install](#install) · [Use](#use) · [Safety boundary](#safety-boundary)
16
19
 
17
20
  </div>
18
21
 
19
22
  <p align="center">
20
- <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/docs/assets/hero.png" alt="DeepSeek Harness 原生会话管理与永久删除功能">
23
+ <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/main/docs/assets/hero.en.png" alt="DeepSeek Harness chat history and archived session manager with search, restore, and safe permanent deletion">
21
24
  </p>
22
25
 
23
- | 归档可找回 | 聊天可搜索 | 删除更稳妥 |
26
+ | Recover archives | Search conversations | Delete safely |
24
27
  | --- | --- | --- |
25
- | 从侧边栏打开归档管理器,查看并恢复隐藏的会话 | 按会话名、工作区或用户与助手的聊天内容搜索归档 | 原生菜单保留二次确认;运行中的任务先安全停止,再删除本机会话记录 |
28
+ | Open the archive manager from the sidebar and restore hidden sessions | Search archived names, workspaces, and user/assistant conversation content | Keep native second confirmation; running work is stopped safely before local records are removed |
26
29
 
27
30
  <p align="center">
28
- <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/docs/assets/archive-manager.png" width="382" alt="DSH 原生归档会话管理器,包含搜索、恢复和永久删除">
29
- <br><sub>DeepSeek Harness 0.1.1-rc.2 中的原生界面</sub>
31
+ <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/main/docs/assets/archive-manager.en.png" width="414" alt="Native DeepSeek Harness archived conversation manager with history search, restore, and permanent deletion">
32
+ <br><sub>Native interface on DeepSeek Harness 0.1.1-rc.2</sub>
30
33
  </p>
31
34
 
32
- ## 安装
35
+ ## Install
33
36
 
34
- ### Windows 快速安装(推荐)
37
+ ### Windows quick install (recommended)
35
38
 
36
- 打开 PowerShell,复制这一行:
39
+ Open PowerShell and paste one line:
37
40
 
38
41
  ```powershell
39
- irm 'https://github.com/WSL043/dsh-native-session-delete/releases/download/v1.1.0/install.ps1' | iex
42
+ irm 'https://github.com/WSL043/dsh-native-session-manager/releases/download/v1.1.1/install.ps1' | iex
40
43
  ```
41
44
 
42
- 助手依次检查当前目录、PATH、`DSH_PORTABLE_ROOT`、下载/桌面/文档目录,以及这些目录和
43
- `LocalAppData\Temp` 下最多三层的 Portable 解压目录;找到后立即调用一次 DSH 官方 `plugin add`。
44
- 它不会递归扫盘、安装包管理器、保存 profile 快照、创建常驻命令或重复下载插件。普通 DSH
45
- [DSH-Portable](https://github.com/WSL043/DSH-Portable) 的便携版、Windows 安装版都可以作为目标。若同时发现一个长期安装和 Temp
46
- 中的测试/解压副本,会自动选择长期安装;若存在多个长期安装,助手会列出真实路径并让你输入编号,
47
- 不需要改命令或填写示例路径。若仍未找到,请先进入实际的 DSH-Portable 文件夹再运行同一条命令。
45
+ The helper checks the current directory, PATH, `DSH_PORTABLE_ROOT`, Downloads/Desktop/Documents, and up to
46
+ three nested levels below those folders and `LocalAppData\Temp`, then calls the official DSH `plugin add`
47
+ command once. It does not recursively scan disks, install a package manager, snapshot profiles, create a
48
+ resident command, or download the plugin twice. It supports regular DSH and both the portable edition and
49
+ Windows installer edition of [DSH-Portable](https://github.com/WSL043/DSH-Portable) as targets. If it finds one durable installation plus disposable
50
+ copies under Temp, it chooses the durable installation automatically. If several durable installations exist,
51
+ the helper displays their real paths and asks for a number; no command editing or placeholder path is needed.
52
+ If it still finds nothing, enter the actual DSH-Portable folder and rerun the same one-line command.
48
53
 
49
- ### 官方 CLImacOSLinux 或希望直接审阅命令)
54
+ ### Official CLI (macOS, Linux, or direct review)
50
55
 
51
56
  ```sh
52
- dsh plugin --profile web add dsh-native-session-delete@1.1.0
57
+ dsh plugin --profile web add dsh-native-session-delete@1.1.1
53
58
  ```
54
59
 
55
- 助手和这条命令使用的是同一个标准 bundle 安装机制;助手只是 Windows 入口,不接管安装事务。
60
+ The helper and direct command use the same standard bundle mechanism. The helper is only a Windows entry
61
+ point; DSH still owns the installation transaction.
56
62
 
57
- 安装完成后,保存工作并按 DSH 的正常方式重启一次,使新的 bundle 配置生效。
63
+ When the command finishes, save your work and restart DSH once through its normal workflow so the new
64
+ bundle configuration becomes active.
58
65
 
59
- ### 交给 Agent
66
+ ### Agent installation
60
67
 
61
- 请使用固定版本的 [AGENTS.md](https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/AGENTS.md)
62
- 其中写明了安装、更新、验收、卸载和安全边界。不要把 `main` 分支文档当作安装依据。
68
+ Use the fixed-version [AGENTS.md](https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/v1.1.1/AGENTS.md).
69
+ It defines installation, update, acceptance, uninstall, and safety boundaries. Do not use the `main`
70
+ branch document as an installation contract.
63
71
 
64
- ## 使用
72
+ ## Use
65
73
 
66
- ### 管理归档
74
+ ### Manage archives
67
75
 
68
- 1. 点击侧边栏标题区域的归档图标,打开 **归档会话**。
69
- 2. 直接浏览全部归档,或按会话名、工作区和用户/助手聊天内容搜索。
70
- 3. 点击 **恢复** 让会话回到原来的工作区位置;需要彻底清理时,可从同一列表进入永久删除确认。
76
+ 1. Select the archive icon in the sidebar header to open **Archived sessions**.
77
+ 2. Browse every archive or search by session name, workspace, and user/assistant conversation content.
78
+ 3. Select **Restore** to return a session to its original workspace position. To remove it completely,
79
+ start the permanent-delete confirmation from the same list.
71
80
 
72
- 归档和恢复只改变 DSH 的隐藏状态,不删除聊天记录。搜索范围仅限已归档会话中的当前用户与助手消息,
73
- 不会把其他会话或插件数据混入结果。
81
+ Archive and restore only change DSH's hidden state; they do not delete conversation history. Content search
82
+ is limited to current user and assistant messages inside archived sessions.
74
83
 
75
- ### 永久删除
84
+ ### Delete permanently
76
85
 
77
- 1. 打开侧边栏中目标会话右侧的原生操作菜单。
78
- 2. 选择红色的 **删除会话**。
79
- 3. 在确认弹窗中核对会话名称并再次确认 **永久删除**;也可以随时点击 **取消**。
86
+ 1. Open the native actions menu beside the target session in the sidebar.
87
+ 2. Choose the red **Delete session** action.
88
+ 3. Check the session name and select **Delete permanently** in the confirmation dialog, or select
89
+ **Cancel** to leave it unchanged.
80
90
 
81
91
  <p align="center">
82
- <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/docs/assets/confirm-delete.png" width="560" alt="中文深色模式永久删除二次确认弹窗">
83
- <br><sub>永久删除无法撤销,确认弹窗会明确显示目标会话</sub>
92
+ <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/main/docs/assets/confirm-delete.en.png" width="414" alt="DeepSeek Harness safe permanent session deletion confirmation dialog">
93
+ <br><sub>Permanent deletion cannot be undone; the dialog identifies the target session.</sub>
84
94
  </p>
85
95
 
86
- 插件生效后,删除逻辑复用 DSH 的生命周期和会话存储能力。正在运行的任务会先停止并等待
87
- 收敛,然后删除目标会话;成功后只更新会话列表,不重载整个 DSH 页面。
96
+ Once active, the plugin reuses DSH lifecycle and session-storage capabilities. If work is still running,
97
+ it is stopped and allowed to settle before the target session is deleted. The session list then
98
+ updates in place without reloading the whole DSH page.
88
99
 
89
- ## 安全边界
100
+ ## Safety boundary
90
101
 
91
102
  > [!WARNING]
92
- > 永久删除无法撤销。点下确认前,请核对会话名称;需要保留的内容请先另行备份。
103
+ > Permanent deletion cannot be undone. Check the session name before confirming and make a separate backup when needed.
93
104
 
94
- 本插件的责任范围是:在 DSH 默认逐会话 JSONL 存储和宿主生命周期边界内,验证并移除用户明确
95
- 确认的目标会话独占目录。DSH 当前没有公开会话删除 API;二次确认是强制步骤,取消不会发送删除请求。
105
+ The plugin is responsible for validating and removing only the explicitly confirmed session's dedicated
106
+ directory within DSH's default per-session JSONL store and host lifecycle boundary. DSH currently exposes
107
+ no public session-deletion API. The second confirmation is mandatory; cancelling sends no deletion request.
96
108
 
97
- 以下内容不在本插件的删除范围内,也不保证被清理:
109
+ The following are outside the plugin's deletion scope and are not guaranteed to be removed:
98
110
 
99
- - 其他会话、其他插件数据、外部附件、缓存、索引、日志、备份和云端/同步副本;
100
- - JSONL 存储或宿主没有安全停止能力的会话;这类情况会拒绝强删并报告未完成;
101
- - 操作系统、文件系统、宿主更新或第三方同步服务造成的额外副本。
111
+ - Other sessions, other plugin data, external attachments, caches, indexes, logs, backups, or cloud/sync copies;
112
+ - Non-JSONL storage or hosts without a safe stop capability; these are refused instead of force-deleted;
113
+ - Additional copies created by the operating system, filesystem, host updates, or third-party sync services.
102
114
 
103
- 如果系统拒绝清理,插件会报告无法确认删除成功,不会把部分完成误报为成功。删除前请确认
104
- 自己有权处理目标数据,并遵守适用的数据留存、审计和隐私要求。本项目是非官方社区插件,
105
- DeepSeek 无隶属或背书关系;按 [MIT 许可证](LICENSE)提供,不附带担保。
115
+ If the operating system refuses cleanup, the plugin reports that deletion could not be confirmed rather
116
+ than misreporting partial completion as success. You are responsible for having authority to delete the
117
+ target data and for meeting applicable retention, audit, and privacy requirements. This is an unofficial
118
+ community plugin, not affiliated with or endorsed by DeepSeek. It is provided under the [MIT License](LICENSE),
119
+ without warranty.
106
120
 
107
- ## 兼容性
121
+ ## Compatibility
108
122
 
109
123
  <!-- dsh-compatibility -->
110
- 支持 DeepSeek Harness:`0.1.0-rc.6`、`0.1.0-rc.7`、`0.1.0-rc.8`、`0.1.1-rc.1`、`0.1.1-rc.2`。
124
+ Supports the latest DeepSeek Harness release (`0.1.1-rc.2`).
111
125
  <!-- /dsh-compatibility -->
112
126
 
113
- 归档浏览、恢复和内容搜索使用 DSH 的工作区注册表与会话查询能力;永久删除适用于 DSH 默认的逐会话
114
- JSONL 存储。安装后替换为带会话管理功能的原生工作区列表;卸载后恢复 DSH 原有列表。
127
+ Archive browsing, restore, and content search use DSH's workspace registry and session-query capabilities.
128
+ Permanent deletion supports DSH's default per-session JSONL storage. Installing replaces the native workspace
129
+ list with the session-management version; uninstalling restores DSH's original list.
115
130
 
116
- ## 更新与卸载
131
+ ## Update and uninstall
117
132
 
118
- 更新可重新运行快速安装助手,或安装 npm 上的新版本。v1.1.0 的直接命令是:
133
+ Update by rerunning the quick installer or installing the new npm version. For v1.1.1:
119
134
 
120
135
  ```sh
121
- dsh plugin --profile web add dsh-native-session-delete@1.1.0
136
+ dsh plugin --profile web add dsh-native-session-delete@1.1.1
122
137
  ```
123
138
 
124
- 卸载只移除这个插件的 bundle 层,不删除任何会话:
139
+ Uninstall removes only this plugin's bundle layer and never deletes sessions:
125
140
 
126
141
  ```sh
127
142
  dsh plugin --profile web remove dsh-native-session-delete
128
143
  ```
129
144
 
130
- DSH-Portable 使用对应的 `.\dsh.exe plugin --profile web add ...`
131
- `.\dsh.exe plugin --profile web remove dsh-native-session-delete`。完成安装、更新或卸载后,
132
- DSH 的正常方式重启,使配置重新组合。
145
+ For DSH-Portable, use the corresponding `.\dsh.exe plugin --profile web add ...` or
146
+ `.\dsh.exe plugin --profile web remove dsh-native-session-delete`. Restart DSH through its normal
147
+ workflow after installing, updating, or uninstalling so the configuration is recomposed.
133
148
 
134
- ## 支持与许可证
149
+ ## Support and license
135
150
 
136
- 普通问题请提交 [GitHub Issue](https://github.com/WSL043/dsh-native-session-delete/issues);安全问题请按
137
- [SECURITY.md](SECURITY.md) 私下报告。
151
+ Open a [GitHub Issue](https://github.com/WSL043/dsh-native-session-manager/issues) for ordinary problems. Report
152
+ security issues privately as described in [SECURITY.md](SECURITY.md).
138
153
 
139
- MIT。修改后的上游客户端及其许可说明见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)
154
+ MIT. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for the modified upstream client and its license
155
+ notice.
@@ -0,0 +1,142 @@
1
+ <div align="center">
2
+
3
+ # DSH Native Session Manager
4
+
5
+ **在 DeepSeek Harness 原生侧边栏中搜索、恢复和安全清理会话。**
6
+
7
+ 归档管理 · 聊天记录搜索 · 一键恢复 · 安全永久删除
8
+
9
+ [![Release](https://img.shields.io/github/v/release/WSL043/dsh-native-session-manager?display_name=tag&style=flat-square)](https://github.com/WSL043/dsh-native-session-manager/releases/latest)
10
+ [![Checks](https://img.shields.io/github/actions/workflow/status/WSL043/dsh-native-session-manager/ci.yml?branch=main&label=checks&style=flat-square)](https://github.com/WSL043/dsh-native-session-manager/actions/workflows/ci.yml)
11
+ [![npm](https://img.shields.io/npm/v/dsh-native-session-delete?style=flat-square)](https://www.npmjs.com/package/dsh-native-session-delete)
12
+ [![npm 下载量](https://img.shields.io/npm/dm/dsh-native-session-delete?style=flat-square)](https://www.npmjs.com/package/dsh-native-session-delete)
13
+ [![DSH](https://img.shields.io/badge/DSH-compatible-2f81f7?style=flat-square)](#兼容性)
14
+ [![License](https://img.shields.io/github/license/WSL043/dsh-native-session-manager?style=flat-square)](LICENSE)
15
+ [![Stars](https://img.shields.io/github/stars/WSL043/dsh-native-session-manager?style=flat-square&label=stars)](https://github.com/WSL043/dsh-native-session-manager/stargazers)
16
+ [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com)
17
+
18
+ [English](README.md) · [安装](#安装) · [使用](#使用) · [安全边界](#安全边界)
19
+
20
+ </div>
21
+
22
+ <p align="center">
23
+ <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/main/docs/assets/hero.png" alt="DeepSeek Harness 聊天历史与归档会话管理器,支持搜索、恢复和安全永久删除">
24
+ </p>
25
+
26
+ | 归档可找回 | 聊天可搜索 | 删除更稳妥 |
27
+ | --- | --- | --- |
28
+ | 从侧边栏打开归档管理器,查看并恢复隐藏的会话 | 按会话名、工作区或用户与助手的聊天内容搜索归档 | 原生菜单保留二次确认;运行中的任务先安全停止,再删除本机会话记录 |
29
+
30
+ <p align="center">
31
+ <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/main/docs/assets/archive-manager.png" width="414" alt="DeepSeek Harness 原生归档会话管理器,支持聊天历史搜索、恢复和永久删除">
32
+ <br><sub>DeepSeek Harness 0.1.1-rc.2 中的原生界面</sub>
33
+ </p>
34
+
35
+ ## 安装
36
+
37
+ ### Windows 快速安装(推荐)
38
+
39
+ 打开 PowerShell,复制这一行:
40
+
41
+ ```powershell
42
+ irm 'https://github.com/WSL043/dsh-native-session-manager/releases/download/v1.1.1/install.ps1' | iex
43
+ ```
44
+
45
+ 助手依次检查当前目录、PATH、`DSH_PORTABLE_ROOT`、下载/桌面/文档目录,以及这些目录和
46
+ `LocalAppData\Temp` 下最多三层的 Portable 解压目录;找到后立即调用一次 DSH 官方 `plugin add`。
47
+ 它不会递归扫盘、安装包管理器、保存 profile 快照、创建常驻命令或重复下载插件。普通 DSH 和
48
+ [DSH-Portable](https://github.com/WSL043/DSH-Portable) 的便携版、Windows 安装版都可以作为目标。若同时发现一个长期安装和 Temp
49
+ 中的测试/解压副本,会自动选择长期安装;若存在多个长期安装,助手会列出真实路径并让你输入编号,
50
+ 不需要改命令或填写示例路径。若仍未找到,请先进入实际的 DSH-Portable 文件夹再运行同一条命令。
51
+
52
+ ### 官方 CLI(macOS、Linux 或希望直接审阅命令)
53
+
54
+ ```sh
55
+ dsh plugin --profile web add dsh-native-session-delete@1.1.1
56
+ ```
57
+
58
+ 助手和这条命令使用的是同一个标准 bundle 安装机制;助手只是 Windows 入口,不接管安装事务。
59
+
60
+ 安装完成后,保存工作并按 DSH 的正常方式重启一次,使新的 bundle 配置生效。
61
+
62
+ ### 交给 Agent
63
+
64
+ 请使用固定版本的 [AGENTS.md](https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/v1.1.1/AGENTS.md),
65
+ 其中写明了安装、更新、验收、卸载和安全边界。不要把 `main` 分支文档当作安装依据。
66
+
67
+ ## 使用
68
+
69
+ ### 管理归档
70
+
71
+ 1. 点击侧边栏标题区域的归档图标,打开 **归档会话**。
72
+ 2. 直接浏览全部归档,或按会话名、工作区和用户/助手聊天内容搜索。
73
+ 3. 点击 **恢复** 让会话回到原来的工作区位置;需要彻底清理时,可从同一列表进入永久删除确认。
74
+
75
+ 归档和恢复只改变 DSH 的隐藏状态,不删除聊天记录。搜索范围仅限已归档会话中的当前用户与助手消息,
76
+ 不会把其他会话或插件数据混入结果。
77
+
78
+ ### 永久删除
79
+
80
+ 1. 打开侧边栏中目标会话右侧的原生操作菜单。
81
+ 2. 选择红色的 **删除会话**。
82
+ 3. 在确认弹窗中核对会话名称并再次确认 **永久删除**;也可以随时点击 **取消**。
83
+
84
+ <p align="center">
85
+ <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-manager/main/docs/assets/confirm-delete.png" width="414" alt="DeepSeek Harness 安全永久删除会话的中文二次确认弹窗">
86
+ <br><sub>永久删除无法撤销,确认弹窗会明确显示目标会话</sub>
87
+ </p>
88
+
89
+ 插件生效后,删除逻辑复用 DSH 的生命周期和会话存储能力。正在运行的任务会先停止并等待
90
+ 收敛,然后删除目标会话;成功后只更新会话列表,不重载整个 DSH 页面。
91
+
92
+ ## 安全边界
93
+
94
+ > [!WARNING]
95
+ > 永久删除无法撤销。点下确认前,请核对会话名称;需要保留的内容请先另行备份。
96
+
97
+ 本插件的责任范围是:在 DSH 默认逐会话 JSONL 存储和宿主生命周期边界内,验证并移除用户明确
98
+ 确认的目标会话独占目录。DSH 当前没有公开会话删除 API;二次确认是强制步骤,取消不会发送删除请求。
99
+
100
+ 以下内容不在本插件的删除范围内,也不保证被清理:
101
+
102
+ - 其他会话、其他插件数据、外部附件、缓存、索引、日志、备份和云端/同步副本;
103
+ - 非 JSONL 存储或宿主没有安全停止能力的会话;这类情况会拒绝强删并报告未完成;
104
+ - 操作系统、文件系统、宿主更新或第三方同步服务造成的额外副本。
105
+
106
+ 如果系统拒绝清理,插件会报告无法确认删除成功,不会把部分完成误报为成功。删除前请确认
107
+ 自己有权处理目标数据,并遵守适用的数据留存、审计和隐私要求。本项目是非官方社区插件,
108
+ 与 DeepSeek 无隶属或背书关系;按 [MIT 许可证](LICENSE)提供,不附带担保。
109
+
110
+ ## 兼容性
111
+
112
+ <!-- dsh-compatibility -->
113
+ 支持最新版 DeepSeek Harness(`0.1.1-rc.2`)。
114
+ <!-- /dsh-compatibility -->
115
+
116
+ 归档浏览、恢复和内容搜索使用 DSH 的工作区注册表与会话查询能力;永久删除适用于 DSH 默认的逐会话
117
+ JSONL 存储。安装后替换为带会话管理功能的原生工作区列表;卸载后恢复 DSH 原有列表。
118
+
119
+ ## 更新与卸载
120
+
121
+ 更新可重新运行快速安装助手,或安装 npm 上的新版本。v1.1.1 的直接命令是:
122
+
123
+ ```sh
124
+ dsh plugin --profile web add dsh-native-session-delete@1.1.1
125
+ ```
126
+
127
+ 卸载只移除这个插件的 bundle 层,不删除任何会话:
128
+
129
+ ```sh
130
+ dsh plugin --profile web remove dsh-native-session-delete
131
+ ```
132
+
133
+ DSH-Portable 使用对应的 `.\dsh.exe plugin --profile web add ...` 或
134
+ `.\dsh.exe plugin --profile web remove dsh-native-session-delete`。完成安装、更新或卸载后,
135
+ 按 DSH 的正常方式重启,使配置重新组合。
136
+
137
+ ## 支持与许可证
138
+
139
+ 普通问题请提交 [GitHub Issue](https://github.com/WSL043/dsh-native-session-manager/issues);安全问题请按
140
+ [SECURITY.md](SECURITY.md) 私下报告。
141
+
142
+ MIT。修改后的上游客户端及其许可说明见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
package/lib/client.js CHANGED
@@ -2311,11 +2311,11 @@ window.__ModuleLoader__.load({
2311
2311
  className: WorkspaceBrowser_module_css_default.deleteStatus,
2312
2312
  children: normalizedArchiveQuery === "" ? t("archive.manager.empty") : t("archive.manager.noMatches")
2313
2313
  }) : archiveRows.map((row) => (0, react_jsx_runtime.jsxs)("div", {
2314
- style: { border: "1px solid var(--dsw-alias-border-l2)", borderRadius: 12, padding: 12, display: "flex", alignItems: "center", gap: 12 },
2314
+ style: { border: "1px solid var(--dsw-alias-border-l2)", borderRadius: 12, padding: 12, display: "flex", flexDirection: "column", alignItems: "stretch", gap: 8 },
2315
2315
  children: [(0, react_jsx_runtime.jsxs)("div", {
2316
- style: { minWidth: 0, flex: 1 },
2316
+ style: { minWidth: 0 },
2317
2317
  children: [(0, react_jsx_runtime.jsx)("div", {
2318
- style: { color: "var(--dsw-alias-label-primary)", fontSize: 13, fontWeight: 500, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" },
2318
+ style: { color: "var(--dsw-alias-label-primary)", fontSize: 13, fontWeight: 500, whiteSpace: "normal", overflowWrap: "anywhere", lineHeight: "18px" },
2319
2319
  children: row.title
2320
2320
  }), (0, react_jsx_runtime.jsx)("div", {
2321
2321
  style: { color: "var(--dsw-alias-label-tertiary)", fontSize: 12, marginTop: 2 },
@@ -2324,18 +2324,23 @@ window.__ModuleLoader__.load({
2324
2324
  style: { color: "var(--dsw-alias-label-secondary)", fontSize: 12, lineHeight: "18px", marginTop: 6 },
2325
2325
  children: archiveSnippets.get(row.id)
2326
2326
  })]
2327
- }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
2327
+ }), (0, react_jsx_runtime.jsxs)("div", {
2328
+ style: { display: "flex", justifyContent: "flex-end", gap: 8 },
2329
+ children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
2328
2330
  variant: "outline",
2331
+ style: { minHeight: 28, height: 28, paddingInline: 10, fontSize: 12 },
2329
2332
  disabled: archiveBusyId !== null,
2330
2333
  onClick: () => onArchiveRestore(row.id),
2331
2334
  children: archiveBusyId === row.id ? t("archive.manager.restoring") : t("archive.manager.restore")
2332
2335
  }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
2333
2336
  variant: "outline",
2334
2337
  className: WorkspaceBrowser_module_css_default.deleteAction,
2338
+ style: { minHeight: 28, height: 28, paddingInline: 10, fontSize: 12 },
2335
2339
  disabled: archiveBusyId !== null,
2336
2340
  onClick: () => onSessionDelete(row.id, row.title),
2337
2341
  children: t("archive.manager.delete")
2338
2342
  })]
2343
+ })]
2339
2344
  }, row.id))
2340
2345
  }), archiveSearch.hasMore && (0, react_jsx_runtime.jsx)("div", {
2341
2346
  className: WorkspaceBrowser_module_css_default.deleteStatus,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-native-session-delete",
3
- "version": "1.1.0",
4
- "description": "Native DeepSeek Harness session management: archive search, restore, and safe permanent deletion",
3
+ "version": "1.1.1",
4
+ "description": "DeepSeek Harness chat history and session management: search archives, restore conversations, and delete safely",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
7
7
  "exports": {
@@ -19,7 +19,7 @@
19
19
  "src/host/archive-manager.mjs",
20
20
  "src/host/delete-session.mjs",
21
21
  "README.md",
22
- "README.en.md",
22
+ "README.zh-CN.md",
23
23
  "AGENTS.md",
24
24
  "LICENSE",
25
25
  "SECURITY.md",
@@ -51,6 +51,12 @@
51
51
  "unarchive",
52
52
  "restore",
53
53
  "history-search",
54
+ "chat-history",
55
+ "conversation-history",
56
+ "archived-sessions",
57
+ "session-delete",
58
+ "permanent-delete",
59
+ "deepseek",
54
60
  "delete",
55
61
  "privacy"
56
62
  ],
@@ -61,12 +67,12 @@
61
67
  },
62
68
  "repository": {
63
69
  "type": "git",
64
- "url": "git+https://github.com/WSL043/dsh-native-session-delete.git"
70
+ "url": "git+https://github.com/WSL043/dsh-native-session-manager.git"
65
71
  },
66
72
  "bugs": {
67
- "url": "https://github.com/WSL043/dsh-native-session-delete/issues"
73
+ "url": "https://github.com/WSL043/dsh-native-session-manager/issues"
68
74
  },
69
- "homepage": "https://github.com/WSL043/dsh-native-session-delete#readme",
75
+ "homepage": "https://github.com/WSL043/dsh-native-session-manager#readme",
70
76
  "engines": {
71
77
  "node": "^22.19.0 || >=24.0.0"
72
78
  },
@@ -231,11 +231,11 @@ export function patchWorkspaceClient(upstream, upstreamVersion = LATEST_UPSTREAM
231
231
  \t\t\t\t\t\t\t\tclassName: WorkspaceBrowser_module_css_default.deleteStatus,
232
232
  \t\t\t\t\t\t\t\tchildren: normalizedArchiveQuery === "" ? t("archive.manager.empty") : t("archive.manager.noMatches")
233
233
  \t\t\t\t\t\t\t}) : archiveRows.map((row) => (0, react_jsx_runtime.jsxs)("div", {
234
- \t\t\t\t\t\t\t\tstyle: { border: "1px solid var(--dsw-alias-border-l2)", borderRadius: 12, padding: 12, display: "flex", alignItems: "center", gap: 12 },
234
+ \t\t\t\t\t\t\t\tstyle: { border: "1px solid var(--dsw-alias-border-l2)", borderRadius: 12, padding: 12, display: "flex", flexDirection: "column", alignItems: "stretch", gap: 8 },
235
235
  \t\t\t\t\t\t\t\tchildren: [(0, react_jsx_runtime.jsxs)("div", {
236
- \t\t\t\t\t\t\t\t\tstyle: { minWidth: 0, flex: 1 },
236
+ \t\t\t\t\t\t\t\t\tstyle: { minWidth: 0 },
237
237
  \t\t\t\t\t\t\t\t\tchildren: [(0, react_jsx_runtime.jsx)("div", {
238
- \t\t\t\t\t\t\t\t\t\tstyle: { color: "var(--dsw-alias-label-primary)", fontSize: 13, fontWeight: 500, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" },
238
+ \t\t\t\t\t\t\t\t\t\tstyle: { color: "var(--dsw-alias-label-primary)", fontSize: 13, fontWeight: 500, whiteSpace: "normal", overflowWrap: "anywhere", lineHeight: "18px" },
239
239
  \t\t\t\t\t\t\t\t\t\tchildren: row.title
240
240
  \t\t\t\t\t\t\t\t\t}), (0, react_jsx_runtime.jsx)("div", {
241
241
  \t\t\t\t\t\t\t\t\t\tstyle: { color: "var(--dsw-alias-label-tertiary)", fontSize: 12, marginTop: 2 },
@@ -244,18 +244,23 @@ export function patchWorkspaceClient(upstream, upstreamVersion = LATEST_UPSTREAM
244
244
  \t\t\t\t\t\t\t\t\t\tstyle: { color: "var(--dsw-alias-label-secondary)", fontSize: 12, lineHeight: "18px", marginTop: 6 },
245
245
  \t\t\t\t\t\t\t\t\t\tchildren: archiveSnippets.get(row.id)
246
246
  \t\t\t\t\t\t\t\t\t})]
247
- \t\t\t\t\t\t\t\t}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
247
+ \t\t\t\t\t\t\t\t}), (0, react_jsx_runtime.jsxs)("div", {
248
+ \t\t\t\t\t\t\t\t\tstyle: { display: "flex", justifyContent: "flex-end", gap: 8 },
249
+ \t\t\t\t\t\t\t\t\tchildren: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
248
250
  \t\t\t\t\t\t\t\t\tvariant: "outline",
251
+ \t\t\t\t\t\t\t\t\tstyle: { minHeight: 28, height: 28, paddingInline: 10, fontSize: 12 },
249
252
  \t\t\t\t\t\t\t\t\tdisabled: archiveBusyId !== null,
250
253
  \t\t\t\t\t\t\t\t\tonClick: () => onArchiveRestore(row.id),
251
254
  \t\t\t\t\t\t\t\t\tchildren: archiveBusyId === row.id ? t("archive.manager.restoring") : t("archive.manager.restore")
252
255
  \t\t\t\t\t\t\t\t}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
253
256
  \t\t\t\t\t\t\t\t\tvariant: "outline",
254
257
  \t\t\t\t\t\t\t\t\tclassName: WorkspaceBrowser_module_css_default.deleteAction,
258
+ \t\t\t\t\t\t\t\t\tstyle: { minHeight: 28, height: 28, paddingInline: 10, fontSize: 12 },
255
259
  \t\t\t\t\t\t\t\t\tdisabled: archiveBusyId !== null,
256
260
  \t\t\t\t\t\t\t\t\tonClick: () => onSessionDelete(row.id, row.title),
257
261
  \t\t\t\t\t\t\t\t\tchildren: t("archive.manager.delete")
258
262
  \t\t\t\t\t\t\t\t})]
263
+ \t\t\t\t\t\t\t\t})]
259
264
  \t\t\t\t\t\t\t}, row.id))
260
265
  \t\t\t\t\t\t}), archiveSearch.hasMore && (0, react_jsx_runtime.jsx)("div", {
261
266
  \t\t\t\t\t\t\tclassName: WorkspaceBrowser_module_css_default.deleteStatus,
package/README.en.md DELETED
@@ -1,152 +0,0 @@
1
- <div align="center">
2
-
3
- # DSH Native Session Manager
4
-
5
- **Search, restore, and safely clean up sessions from the native DeepSeek Harness sidebar.**
6
-
7
- Archive manager · Conversation search · One-click restore · Safe permanent deletion
8
-
9
- [![Release](https://img.shields.io/github/v/release/WSL043/dsh-native-session-delete?display_name=tag&style=flat-square)](https://github.com/WSL043/dsh-native-session-delete/releases/latest)
10
- [![Checks](https://img.shields.io/github/actions/workflow/status/WSL043/dsh-native-session-delete/ci.yml?branch=main&label=checks&style=flat-square)](https://github.com/WSL043/dsh-native-session-delete/actions/workflows/ci.yml)
11
- [![npm](https://img.shields.io/npm/v/dsh-native-session-delete?style=flat-square)](https://www.npmjs.com/package/dsh-native-session-delete)
12
- [![DSH](https://img.shields.io/badge/DSH-compatible-2f81f7?style=flat-square)](#compatibility)
13
- [![License](https://img.shields.io/github/license/WSL043/dsh-native-session-delete?style=flat-square)](LICENSE)
14
-
15
- [中文](README.md) · [Install](#install) · [Use](#use) · [Safety boundary](#safety-boundary)
16
-
17
- </div>
18
-
19
- <p align="center">
20
- <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/docs/assets/hero.en.png" alt="Native DeepSeek Harness session management and permanent deletion">
21
- </p>
22
-
23
- | Recover archives | Search conversations | Delete safely |
24
- | --- | --- | --- |
25
- | Open the archive manager from the sidebar and restore hidden sessions | Search archived names, workspaces, and user/assistant conversation content | Keep native second confirmation; running work is stopped safely before local records are removed |
26
-
27
- <p align="center">
28
- <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/docs/assets/archive-manager.en.png" width="382" alt="Native DSH archive manager with search, restore, and permanent deletion">
29
- <br><sub>Native interface on DeepSeek Harness 0.1.1-rc.2</sub>
30
- </p>
31
-
32
- ## Install
33
-
34
- ### Windows quick install (recommended)
35
-
36
- Open PowerShell and paste one line:
37
-
38
- ```powershell
39
- irm 'https://github.com/WSL043/dsh-native-session-delete/releases/download/v1.1.0/install.ps1' | iex
40
- ```
41
-
42
- The helper checks the current directory, PATH, `DSH_PORTABLE_ROOT`, Downloads/Desktop/Documents, and up to
43
- three nested levels below those folders and `LocalAppData\Temp`, then calls the official DSH `plugin add`
44
- command once. It does not recursively scan disks, install a package manager, snapshot profiles, create a
45
- resident command, or download the plugin twice. It supports regular DSH and both the portable edition and
46
- Windows installer edition of [DSH-Portable](https://github.com/WSL043/DSH-Portable) as targets. If it finds one durable installation plus disposable
47
- copies under Temp, it chooses the durable installation automatically. If several durable installations exist,
48
- the helper displays their real paths and asks for a number; no command editing or placeholder path is needed.
49
- If it still finds nothing, enter the actual DSH-Portable folder and rerun the same one-line command.
50
-
51
- ### Official CLI (macOS, Linux, or direct review)
52
-
53
- ```sh
54
- dsh plugin --profile web add dsh-native-session-delete@1.1.0
55
- ```
56
-
57
- The helper and direct command use the same standard bundle mechanism. The helper is only a Windows entry
58
- point; DSH still owns the installation transaction.
59
-
60
- When the command finishes, save your work and restart DSH once through its normal workflow so the new
61
- bundle configuration becomes active.
62
-
63
- ### Agent installation
64
-
65
- Use the fixed-version [AGENTS.md](https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/AGENTS.md).
66
- It defines installation, update, acceptance, uninstall, and safety boundaries. Do not use the `main`
67
- branch document as an installation contract.
68
-
69
- ## Use
70
-
71
- ### Manage archives
72
-
73
- 1. Select the archive icon in the sidebar header to open **Archived sessions**.
74
- 2. Browse every archive or search by session name, workspace, and user/assistant conversation content.
75
- 3. Select **Restore** to return a session to its original workspace position. To remove it completely,
76
- start the permanent-delete confirmation from the same list.
77
-
78
- Archive and restore only change DSH's hidden state; they do not delete conversation history. Content search
79
- is limited to current user and assistant messages inside archived sessions.
80
-
81
- ### Delete permanently
82
-
83
- 1. Open the native actions menu beside the target session in the sidebar.
84
- 2. Choose the red **Delete session** action.
85
- 3. Check the session name and select **Delete permanently** in the confirmation dialog, or select
86
- **Cancel** to leave it unchanged.
87
-
88
- <p align="center">
89
- <img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.1.0/docs/assets/confirm-delete.en.png" width="560" alt="English dark-mode permanent deletion confirmation dialog">
90
- <br><sub>Permanent deletion cannot be undone; the dialog identifies the target session.</sub>
91
- </p>
92
-
93
- Once active, the plugin reuses DSH lifecycle and session-storage capabilities. If work is still running,
94
- it is stopped and allowed to settle before the target session is deleted. The session list then
95
- updates in place without reloading the whole DSH page.
96
-
97
- ## Safety boundary
98
-
99
- > [!WARNING]
100
- > Permanent deletion cannot be undone. Check the session name before confirming and make a separate backup when needed.
101
-
102
- The plugin is responsible for validating and removing only the explicitly confirmed session's dedicated
103
- directory within DSH's default per-session JSONL store and host lifecycle boundary. DSH currently exposes
104
- no public session-deletion API. The second confirmation is mandatory; cancelling sends no deletion request.
105
-
106
- The following are outside the plugin's deletion scope and are not guaranteed to be removed:
107
-
108
- - Other sessions, other plugin data, external attachments, caches, indexes, logs, backups, or cloud/sync copies;
109
- - Non-JSONL storage or hosts without a safe stop capability; these are refused instead of force-deleted;
110
- - Additional copies created by the operating system, filesystem, host updates, or third-party sync services.
111
-
112
- If the operating system refuses cleanup, the plugin reports that deletion could not be confirmed rather
113
- than misreporting partial completion as success. You are responsible for having authority to delete the
114
- target data and for meeting applicable retention, audit, and privacy requirements. This is an unofficial
115
- community plugin, not affiliated with or endorsed by DeepSeek. It is provided under the [MIT License](LICENSE),
116
- without warranty.
117
-
118
- ## Compatibility
119
-
120
- <!-- dsh-compatibility -->
121
- Supports DeepSeek Harness: `0.1.0-rc.6`, `0.1.0-rc.7`, `0.1.0-rc.8`, `0.1.1-rc.1`, `0.1.1-rc.2`.
122
- <!-- /dsh-compatibility -->
123
-
124
- Archive browsing, restore, and content search use DSH's workspace registry and session-query capabilities.
125
- Permanent deletion supports DSH's default per-session JSONL storage. Installing replaces the native workspace
126
- list with the session-management version; uninstalling restores DSH's original list.
127
-
128
- ## Update and uninstall
129
-
130
- Update by rerunning the quick installer or installing the new npm version. For v1.1.0:
131
-
132
- ```sh
133
- dsh plugin --profile web add dsh-native-session-delete@1.1.0
134
- ```
135
-
136
- Uninstall removes only this plugin's bundle layer and never deletes sessions:
137
-
138
- ```sh
139
- dsh plugin --profile web remove dsh-native-session-delete
140
- ```
141
-
142
- For DSH-Portable, use the corresponding `.\dsh.exe plugin --profile web add ...` or
143
- `.\dsh.exe plugin --profile web remove dsh-native-session-delete`. Restart DSH through its normal
144
- workflow after installing, updating, or uninstalling so the configuration is recomposed.
145
-
146
- ## Support and license
147
-
148
- Open a [GitHub Issue](https://github.com/WSL043/dsh-native-session-delete/issues) for ordinary problems. Report
149
- security issues privately as described in [SECURITY.md](SECURITY.md).
150
-
151
- MIT. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for the modified upstream client and its license
152
- notice.