dsh-native-session-delete 1.0.4
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 +137 -0
- package/LICENSE +21 -0
- package/README.en.md +142 -0
- package/README.md +128 -0
- package/SECURITY.md +15 -0
- package/THIRD_PARTY_NOTICES.md +29 -0
- package/compatibility.json +12 -0
- package/cordis.patch.yml +7 -0
- package/lib/client.js +2532 -0
- package/package.json +132 -0
- package/scripts/build-client.mjs +170 -0
- package/scripts/smoke-ui.mjs +216 -0
- package/src/host/delete-session.mjs +405 -0
- package/src/index.js +43 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Agent installation guide
|
|
2
|
+
|
|
3
|
+
Use this guide when a user explicitly asks an Agent to install, update, verify,
|
|
4
|
+
or remove `dsh-native-session-delete` in a selected DeepSeek Harness profile.
|
|
5
|
+
|
|
6
|
+
## Safety and responsibility boundary
|
|
7
|
+
|
|
8
|
+
- Confirm the target DSH installation and profile. Use `web` only when it is the user's target.
|
|
9
|
+
- Use the fixed v1.0.4 package below; never substitute a moving branch or an unreviewed source.
|
|
10
|
+
- Do not print session contents, full profile files, transcript paths, credentials, or other private data.
|
|
11
|
+
- Do not start, stop, or restart DSH without explicit permission.
|
|
12
|
+
- Preserve all sessions, unrelated plugins, and user-owned profile changes.
|
|
13
|
+
- Never delete a session as an installation test unless the user explicitly selects a disposable session
|
|
14
|
+
and confirms the destructive test.
|
|
15
|
+
- Prefer one durable user installation over disposable copies under `LocalAppData\Temp`. If more than one
|
|
16
|
+
durable DSH installation remains, ask which installation is the target before changing it.
|
|
17
|
+
|
|
18
|
+
Permanent deletion is irreversible. The Agent must not claim that this plugin provides secure erasure:
|
|
19
|
+
external attachments, caches, logs, backups, cloud copies, and non-JSONL stores are outside its scope.
|
|
20
|
+
The user is responsible for authority to delete the selected data and for applicable retention or privacy
|
|
21
|
+
requirements. A cancelled confirmation is the safe default and must not send a delete request.
|
|
22
|
+
|
|
23
|
+
## Fixed package and standard bundle
|
|
24
|
+
|
|
25
|
+
The v1.0.4 package is a standard DSH bundle with a `dsh.bundle` profile patch. Its exact package spec is:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
dsh-native-session-delete@1.0.4
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The bundle disables the official workspace row while installed and inserts a uniquely identified native
|
|
32
|
+
workspace row. Removing `dsh-native-session-delete` removes that layer, allowing DSH to restore the official
|
|
33
|
+
workspace row. Do not install the tarball under `@deepseek-ai/dsh-client-ui-workspace`; that old aliasing
|
|
34
|
+
approach is not the v1.0.4 contract.
|
|
35
|
+
|
|
36
|
+
## Detect the target DSH
|
|
37
|
+
|
|
38
|
+
Use read-only filesystem checks to locate the requested target. On Windows:
|
|
39
|
+
|
|
40
|
+
```powershell
|
|
41
|
+
Get-Command dsh -ErrorAction SilentlyContinue
|
|
42
|
+
Get-ChildItem -LiteralPath . -Filter dsh.exe -File -ErrorAction SilentlyContinue
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For DSH-Portable, a valid root normally contains `dsh.exe`, `runtime\node\node.exe`, and
|
|
46
|
+
`app\node_modules\@deepseek-ai\dsh\lib\bin.js`. Missing system Node.js or pnpm is normal for
|
|
47
|
+
DSH-Portable; do not install either globally just for this plugin.
|
|
48
|
+
|
|
49
|
+
`dsh plugin ... list` is not strictly read-only. Its first invocation may initialize or migrate a Portable
|
|
50
|
+
profile, rebuild dependency links, or update profile package-manager metadata. It is non-destructive to
|
|
51
|
+
session contents, but an Agent must not describe it as a filesystem read-only check. If attribution matters,
|
|
52
|
+
record the selected profile's relevant metadata before invoking it, without printing secrets.
|
|
53
|
+
|
|
54
|
+
## Install or update
|
|
55
|
+
|
|
56
|
+
With an existing `dsh` command, run exactly:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
dsh plugin --profile web add dsh-native-session-delete@1.0.4
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
With DSH-Portable, run from its root:
|
|
63
|
+
|
|
64
|
+
```powershell
|
|
65
|
+
.\dsh.exe plugin --profile web add dsh-native-session-delete@1.0.4
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Use the same `add` command to update or repair. On Windows, `install.ps1` from the same fixed Release may
|
|
69
|
+
be used only as a thin locator and launcher. It checks bounded known locations and up to three nested levels
|
|
70
|
+
under common user/temporary roots, then invokes the exact command
|
|
71
|
+
above once. It must not scan disks recursively, download package-manager components, save profile snapshots,
|
|
72
|
+
create a persistent manager command, modify another profile, or restart DSH automatically. The DSH CLI owns
|
|
73
|
+
dependency resolution and bundle composition.
|
|
74
|
+
|
|
75
|
+
After a successful configuration change, ask for permission before restarting DSH. A successful CLI exit
|
|
76
|
+
alone is not runtime acceptance.
|
|
77
|
+
|
|
78
|
+
## Acceptance
|
|
79
|
+
|
|
80
|
+
First verify the selected profile without exposing its contents:
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
dsh plugin --profile web list dsh-native-session-delete --depth 0
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Use `.\dsh.exe` in place of `dsh` for DSH-Portable. Static acceptance requires:
|
|
87
|
+
|
|
88
|
+
1. The `dsh-native-session-delete` bundle appears exactly once in the requested profile.
|
|
89
|
+
2. Its direct package spec is the fixed `dsh-native-session-delete@1.0.4` npm version above.
|
|
90
|
+
3. The profile contains the bundle patch and no duplicate official workspace row from this plugin.
|
|
91
|
+
4. No unrelated dependency, profile patch, or session data was changed by the operation.
|
|
92
|
+
|
|
93
|
+
With permission to restart DSH, verify the live UI in dark mode:
|
|
94
|
+
|
|
95
|
+
1. The selected session's native actions menu contains **Archive session** and the red **Delete session…** action.
|
|
96
|
+
2. Opening Delete shows the target session name and a second confirmation.
|
|
97
|
+
3. Selecting **Cancel** closes the dialog, sends no delete request, and leaves the session visible.
|
|
98
|
+
4. A destructive check is allowed only with a disposable test session explicitly selected by the user.
|
|
99
|
+
5. After confirming that disposable session, verify it disappears in place without reloading the whole DSH page.
|
|
100
|
+
|
|
101
|
+
For source-checkout UI acceptance, the non-destructive smoke test is:
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
pnpm smoke:ui -- --url http://127.0.0.1:14171 --session "Exact session title"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The title must identify the intended session. The runner must only open the dialog and cancel it; it must
|
|
108
|
+
not send a deletion request or manage the DSH process.
|
|
109
|
+
|
|
110
|
+
## Uninstall
|
|
111
|
+
|
|
112
|
+
For a standard profile:
|
|
113
|
+
|
|
114
|
+
```sh
|
|
115
|
+
dsh plugin --profile web remove dsh-native-session-delete
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
For DSH-Portable:
|
|
119
|
+
|
|
120
|
+
```powershell
|
|
121
|
+
.\dsh.exe plugin --profile web remove dsh-native-session-delete
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Uninstall removes only this plugin's bundle layer. It must not delete sessions and must not restart DSH
|
|
125
|
+
without permission. After the command, verify that `dsh-native-session-delete` is absent and that the
|
|
126
|
+
official workspace row is available again after the next permitted DSH restart.
|
|
127
|
+
|
|
128
|
+
## Failure handling
|
|
129
|
+
|
|
130
|
+
Distinguish command discovery, network, HTTP/TLS, package-manager, profile-conflict, version, and
|
|
131
|
+
peer-dependency failures. Do not disable TLS validation, delete a profile, replace unrelated packages,
|
|
132
|
+
or claim success from an exit code alone.
|
|
133
|
+
|
|
134
|
+
On failure, report the sanitized command error, DSH version, selected profile, requested plugin version,
|
|
135
|
+
what changed, rollback state, and what remains unverified. Do not attempt an irreversible session deletion
|
|
136
|
+
as a recovery step. If the bundle was added but verification failed, stop and obtain permission before any
|
|
137
|
+
further profile change.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 WSL043
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.en.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# DSH Native Session Delete
|
|
4
|
+
|
|
5
|
+
**Bring permanent session deletion to the native DeepSeek Harness menu.**
|
|
6
|
+
|
|
7
|
+
Native dark menu · Second confirmation · Permanent delete · In-place list update
|
|
8
|
+
|
|
9
|
+
[](https://github.com/WSL043/dsh-native-session-delete/releases/latest)
|
|
10
|
+
[](https://github.com/WSL043/dsh-native-session-delete/actions/workflows/ci.yml)
|
|
11
|
+
[](https://www.npmjs.com/package/dsh-native-session-delete)
|
|
12
|
+
[](#compatibility)
|
|
13
|
+
[](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.0.4/docs/assets/hero.en.png" alt="Red Delete session action in the native DeepSeek Harness dark-mode session menu">
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
| Native | Direct | Smooth |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| The action lives in the native session menu and keeps Archive available | A second confirmation permanently deletes the target; running work is stopped first | The list updates in place without reloading the whole DSH page |
|
|
26
|
+
|
|
27
|
+
## Install
|
|
28
|
+
|
|
29
|
+
### Windows quick install (recommended)
|
|
30
|
+
|
|
31
|
+
Open PowerShell and paste one line:
|
|
32
|
+
|
|
33
|
+
```powershell
|
|
34
|
+
irm 'https://github.com/WSL043/dsh-native-session-delete/releases/download/v1.0.4/install.ps1' | iex
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The helper checks the current directory, PATH, `DSH_PORTABLE_ROOT`, Downloads/Desktop/Documents, and up to
|
|
38
|
+
three nested levels below those folders and `LocalAppData\Temp`, then calls the official DSH `plugin add`
|
|
39
|
+
command once. It does not recursively scan disks, install a package manager, snapshot profiles, create a
|
|
40
|
+
resident command, or download the plugin twice. It supports regular DSH and
|
|
41
|
+
[DSH-Portable](https://github.com/WSL043/DSH-Portable). If it finds one durable installation plus disposable
|
|
42
|
+
copies under Temp, it chooses the durable installation automatically. If several durable installations exist,
|
|
43
|
+
the helper displays their real paths and asks for a number; no command editing or placeholder path is needed.
|
|
44
|
+
If it still finds nothing, enter the actual DSH-Portable folder and rerun the same one-line command.
|
|
45
|
+
|
|
46
|
+
### Official CLI (macOS, Linux, or direct review)
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
dsh plugin --profile web add dsh-native-session-delete@1.0.4
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The helper and direct command use the same standard bundle mechanism. The helper is only a Windows entry
|
|
53
|
+
point; DSH still owns the installation transaction.
|
|
54
|
+
|
|
55
|
+
When the command finishes, save your work and restart DSH once through its normal workflow so the new
|
|
56
|
+
bundle configuration becomes active.
|
|
57
|
+
|
|
58
|
+
### Agent installation
|
|
59
|
+
|
|
60
|
+
Use the fixed-version [AGENTS.md](https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.0.4/AGENTS.md).
|
|
61
|
+
It defines installation, update, acceptance, uninstall, and safety boundaries. Do not use the `main`
|
|
62
|
+
branch document as an installation contract.
|
|
63
|
+
|
|
64
|
+
## Use
|
|
65
|
+
|
|
66
|
+
1. Open the native actions menu beside the target session in the sidebar.
|
|
67
|
+
2. Choose the red **Delete session…** action.
|
|
68
|
+
3. Check the session name and select **Delete permanently** in the confirmation dialog, or select
|
|
69
|
+
**Cancel** to leave it unchanged.
|
|
70
|
+
|
|
71
|
+
<p align="center">
|
|
72
|
+
<img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.0.4/docs/assets/confirm-delete.en.png" width="560" alt="English dark-mode permanent deletion confirmation dialog">
|
|
73
|
+
<br><sub>Permanent deletion cannot be undone; the dialog identifies the target session.</sub>
|
|
74
|
+
</p>
|
|
75
|
+
|
|
76
|
+
Once active, the plugin reuses DSH lifecycle and session-storage capabilities. If work is still running,
|
|
77
|
+
it is stopped and allowed to settle before the target session is deleted. The session list then
|
|
78
|
+
updates in place without reloading the whole DSH page.
|
|
79
|
+
|
|
80
|
+
## Safety boundary
|
|
81
|
+
|
|
82
|
+
> [!WARNING]
|
|
83
|
+
> Permanent deletion cannot be undone. Check the session name before confirming and make a separate backup when needed.
|
|
84
|
+
|
|
85
|
+
The plugin is responsible for validating and removing only the explicitly confirmed session's dedicated
|
|
86
|
+
directory within DSH's default per-session JSONL store and host lifecycle boundary. DSH currently exposes
|
|
87
|
+
no public session-deletion API. The second confirmation is mandatory; cancelling sends no deletion request.
|
|
88
|
+
|
|
89
|
+
The following are outside the plugin's deletion scope and are not guaranteed to be removed:
|
|
90
|
+
|
|
91
|
+
- Other sessions, other plugin data, external attachments, caches, indexes, logs, backups, or cloud/sync copies;
|
|
92
|
+
- Non-JSONL storage or hosts without a safe stop capability; these are refused instead of force-deleted;
|
|
93
|
+
- Additional copies created by the operating system, filesystem, host updates, or third-party sync services.
|
|
94
|
+
|
|
95
|
+
If the operating system refuses cleanup, the plugin reports that deletion could not be confirmed rather
|
|
96
|
+
than misreporting partial completion as success. You are responsible for having authority to delete the
|
|
97
|
+
target data and for meeting applicable retention, audit, and privacy requirements. This is an unofficial
|
|
98
|
+
community plugin, not affiliated with or endorsed by DeepSeek. It is provided under the [MIT License](LICENSE),
|
|
99
|
+
without warranty.
|
|
100
|
+
|
|
101
|
+
## Compatibility
|
|
102
|
+
|
|
103
|
+
<!-- dsh-compatibility -->
|
|
104
|
+
Automatically accepted: `0.1.0-rc.6`, `0.1.0-rc.7`, `0.1.0-rc.8`. A new version is added only after isolated install, build, test, and official Web UI smoke acceptance all pass.
|
|
105
|
+
<!-- /dsh-compatibility -->
|
|
106
|
+
|
|
107
|
+
The plugin targets DSH's default per-session JSONL storage. It uses a standard `dsh.bundle` profile layer
|
|
108
|
+
that replaces the official workspace row with the uniquely identified native client
|
|
109
|
+
`dsh-native-session-delete`; uninstalling restores the official workspace row.
|
|
110
|
+
|
|
111
|
+
GitHub Actions reads the full DSH registry version sequence every six hours and cross-checks it against an
|
|
112
|
+
official immutable Release. For the oldest uncovered release, it installs official DSH and the candidate plugin in an isolated profile, then checks
|
|
113
|
+
the build, unit suite, native menu, red delete action, second confirmation, cancel-without-request, and
|
|
114
|
+
no-full-page-reload behavior. Only a complete pass extends the compatibility range and publishes a new
|
|
115
|
+
immutable patch release. Any failure stops publication and leaves the existing compatibility claim intact.
|
|
116
|
+
Structural upstream changes still require a code fix; automation never guesses at deletion behavior.
|
|
117
|
+
|
|
118
|
+
## Update and uninstall
|
|
119
|
+
|
|
120
|
+
Update by rerunning the quick installer or installing the new npm version. For v1.0.4:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
dsh plugin --profile web add dsh-native-session-delete@1.0.4
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Uninstall removes only this plugin's bundle layer and never deletes sessions:
|
|
127
|
+
|
|
128
|
+
```sh
|
|
129
|
+
dsh plugin --profile web remove dsh-native-session-delete
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
For DSH-Portable, use the corresponding `.\dsh.exe plugin --profile web add ...` or
|
|
133
|
+
`.\dsh.exe plugin --profile web remove dsh-native-session-delete`. Restart DSH through its normal
|
|
134
|
+
workflow after installing, updating, or uninstalling so the configuration is recomposed.
|
|
135
|
+
|
|
136
|
+
## Support and license
|
|
137
|
+
|
|
138
|
+
Open a [GitHub Issue](https://github.com/WSL043/dsh-native-session-delete/issues) for ordinary problems. Report
|
|
139
|
+
security issues privately as described in [SECURITY.md](SECURITY.md).
|
|
140
|
+
|
|
141
|
+
MIT. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for the modified upstream client and its license
|
|
142
|
+
notice.
|
package/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# DSH Native Session Delete
|
|
4
|
+
|
|
5
|
+
**把“永久删除会话”带回 DeepSeek Harness 原生菜单。**
|
|
6
|
+
|
|
7
|
+
原生深色菜单 · 二次确认 · 永久删除 · 原地更新列表
|
|
8
|
+
|
|
9
|
+
[](https://github.com/WSL043/dsh-native-session-delete/releases/latest)
|
|
10
|
+
[](https://github.com/WSL043/dsh-native-session-delete/actions/workflows/ci.yml)
|
|
11
|
+
[](https://www.npmjs.com/package/dsh-native-session-delete)
|
|
12
|
+
[](#兼容性)
|
|
13
|
+
[](LICENSE)
|
|
14
|
+
|
|
15
|
+
[English](README.en.md) · [安装](#安装) · [使用](#使用) · [安全边界](#安全边界)
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.0.4/docs/assets/hero.png" alt="DeepSeek Harness 深色模式原生会话菜单中的红色删除会话选项">
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
| 原生 | 直接 | 顺滑 |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| 删除入口就在会话原生操作菜单中,归档仍然保留 | 二次确认后永久删除目标会话;正在运行的任务会先停止 | 删除成功后原地刷新列表,不重载整个 DSH 页面 |
|
|
26
|
+
|
|
27
|
+
## 安装
|
|
28
|
+
|
|
29
|
+
### Windows 快速安装(推荐)
|
|
30
|
+
|
|
31
|
+
打开 PowerShell,复制这一行:
|
|
32
|
+
|
|
33
|
+
```powershell
|
|
34
|
+
irm 'https://github.com/WSL043/dsh-native-session-delete/releases/download/v1.0.4/install.ps1' | iex
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
助手依次检查当前目录、PATH、`DSH_PORTABLE_ROOT`、下载/桌面/文档目录,以及这些目录和
|
|
38
|
+
`LocalAppData\Temp` 下最多三层的 Portable 解压目录;找到后立即调用一次 DSH 官方 `plugin add`。
|
|
39
|
+
它不会递归扫盘、安装包管理器、保存 profile 快照、创建常驻命令或重复下载插件。普通 DSH 和
|
|
40
|
+
[DSH-Portable](https://github.com/WSL043/DSH-Portable) 都支持。若同时发现一个长期安装和 Temp
|
|
41
|
+
中的测试/解压副本,会自动选择长期安装;若存在多个长期安装,助手会列出真实路径并让你输入编号,
|
|
42
|
+
不需要改命令或填写示例路径。若仍未找到,请先进入实际的 DSH-Portable 文件夹再运行同一条命令。
|
|
43
|
+
|
|
44
|
+
### 官方 CLI(macOS、Linux 或希望直接审阅命令)
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
dsh plugin --profile web add dsh-native-session-delete@1.0.4
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
助手和这条命令使用的是同一个标准 bundle 安装机制;助手只是 Windows 入口,不接管安装事务。
|
|
51
|
+
|
|
52
|
+
安装完成后,保存工作并按 DSH 的正常方式重启一次,使新的 bundle 配置生效。
|
|
53
|
+
|
|
54
|
+
### 交给 Agent
|
|
55
|
+
|
|
56
|
+
请使用固定版本的 [AGENTS.md](https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.0.4/AGENTS.md),
|
|
57
|
+
其中写明了安装、更新、验收、卸载和安全边界。不要把 `main` 分支文档当作安装依据。
|
|
58
|
+
|
|
59
|
+
## 使用
|
|
60
|
+
|
|
61
|
+
1. 打开侧边栏中目标会话右侧的原生操作菜单。
|
|
62
|
+
2. 选择红色的 **删除会话…**。
|
|
63
|
+
3. 在确认弹窗中再次确认会话名称并点击 **永久删除**;也可以随时点击 **取消**。
|
|
64
|
+
|
|
65
|
+
<p align="center">
|
|
66
|
+
<img src="https://raw.githubusercontent.com/WSL043/dsh-native-session-delete/v1.0.4/docs/assets/confirm-delete.png" width="560" alt="中文深色模式永久删除二次确认弹窗">
|
|
67
|
+
<br><sub>永久删除无法撤销,确认弹窗会明确显示目标会话</sub>
|
|
68
|
+
</p>
|
|
69
|
+
|
|
70
|
+
插件生效后,删除逻辑复用 DSH 的生命周期和会话存储能力。正在运行的任务会先停止并等待
|
|
71
|
+
收敛,然后删除目标会话;成功后只更新会话列表,不重载整个 DSH 页面。
|
|
72
|
+
|
|
73
|
+
## 安全边界
|
|
74
|
+
|
|
75
|
+
> [!WARNING]
|
|
76
|
+
> 永久删除无法撤销。点下确认前,请核对会话名称;需要保留的内容请先另行备份。
|
|
77
|
+
|
|
78
|
+
本插件的责任范围是:在 DSH 默认逐会话 JSONL 存储和宿主生命周期边界内,验证并移除用户明确
|
|
79
|
+
确认的目标会话独占目录。DSH 当前没有公开会话删除 API;二次确认是强制步骤,取消不会发送删除请求。
|
|
80
|
+
|
|
81
|
+
以下内容不在本插件的删除范围内,也不保证被清理:
|
|
82
|
+
|
|
83
|
+
- 其他会话、其他插件数据、外部附件、缓存、索引、日志、备份和云端/同步副本;
|
|
84
|
+
- 非 JSONL 存储或宿主没有安全停止能力的会话;这类情况会拒绝强删并报告未完成;
|
|
85
|
+
- 操作系统、文件系统、宿主更新或第三方同步服务造成的额外副本。
|
|
86
|
+
|
|
87
|
+
如果系统拒绝清理,插件会报告无法确认删除成功,不会把部分完成误报为成功。删除前请确认
|
|
88
|
+
自己有权处理目标数据,并遵守适用的数据留存、审计和隐私要求。本项目是非官方社区插件,
|
|
89
|
+
与 DeepSeek 无隶属或背书关系;按 [MIT 许可证](LICENSE)提供,不附带担保。
|
|
90
|
+
|
|
91
|
+
## 兼容性
|
|
92
|
+
|
|
93
|
+
<!-- dsh-compatibility -->
|
|
94
|
+
已自动验收:`0.1.0-rc.6`、`0.1.0-rc.7`、`0.1.0-rc.8`。新版本只有通过隔离安装、构建、测试和官方 Web UI 冒烟验收后才会加入此列表。
|
|
95
|
+
<!-- /dsh-compatibility -->
|
|
96
|
+
|
|
97
|
+
插件面向 DSH 默认逐会话 JSONL 存储,使用标准 `dsh.bundle` profile 层,将官方 workspace 行替换为唯一的
|
|
98
|
+
`dsh-native-session-delete` 原生客户端;卸载后 DSH 会恢复官方 workspace 行。
|
|
99
|
+
|
|
100
|
+
GitHub Actions 每 6 小时读取 DSH registry 的完整版本序列,并与官方不可变 Release 交叉验证。发现最早一个尚未覆盖的新版本后,会在隔离
|
|
101
|
+
profile 中重新安装官方 DSH 和待发布插件,验证构建、单元测试、原生菜单、红色删除项、二次确认、
|
|
102
|
+
取消不发请求及无整页刷新;全部通过才自动增加兼容范围并发布新的不可变补丁版本。任何检查失败都会
|
|
103
|
+
停止发布,现有兼容声明保持不变。上游发生结构性改动时仍需要代码修复,自动化不会猜测性修改删除逻辑。
|
|
104
|
+
|
|
105
|
+
## 更新与卸载
|
|
106
|
+
|
|
107
|
+
更新可重新运行快速安装助手,或安装 npm 上的新版本。v1.0.4 的直接命令是:
|
|
108
|
+
|
|
109
|
+
```sh
|
|
110
|
+
dsh plugin --profile web add dsh-native-session-delete@1.0.4
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
卸载只移除这个插件的 bundle 层,不删除任何会话:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
dsh plugin --profile web remove dsh-native-session-delete
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
DSH-Portable 使用对应的 `.\dsh.exe plugin --profile web add ...` 或
|
|
120
|
+
`.\dsh.exe plugin --profile web remove dsh-native-session-delete`。完成安装、更新或卸载后,
|
|
121
|
+
按 DSH 的正常方式重启,使配置重新组合。
|
|
122
|
+
|
|
123
|
+
## 支持与许可证
|
|
124
|
+
|
|
125
|
+
普通问题请提交 [GitHub Issue](https://github.com/WSL043/dsh-native-session-delete/issues);安全问题请按
|
|
126
|
+
[SECURITY.md](SECURITY.md) 私下报告。
|
|
127
|
+
|
|
128
|
+
MIT。修改后的上游客户端及其许可说明见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Security policy
|
|
2
|
+
|
|
3
|
+
## Supported version
|
|
4
|
+
|
|
5
|
+
Security fixes are provided for the latest release.
|
|
6
|
+
|
|
7
|
+
## Report a vulnerability
|
|
8
|
+
|
|
9
|
+
Use **Security → Report a vulnerability** in this repository. Please do not put
|
|
10
|
+
session contents, local paths, profile files, or a working destructive proof of
|
|
11
|
+
concept in a public issue.
|
|
12
|
+
|
|
13
|
+
Include the DSH version, plugin version, storage backend, operating system, and
|
|
14
|
+
the smallest redacted reproduction you can provide. Do not attach real session
|
|
15
|
+
logs.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
The distributed `lib/client.js` is a modified build of
|
|
4
|
+
`@deepseek-ai/dsh-client-ui-workspace` version `0.1.0-rc.8`. The patch source
|
|
5
|
+
is available in `scripts/build-client.mjs`.
|
|
6
|
+
|
|
7
|
+
DeepSeek Harness is licensed under the MIT License:
|
|
8
|
+
|
|
9
|
+
> MIT License
|
|
10
|
+
>
|
|
11
|
+
> Copyright (c) 2026 DeepSeek
|
|
12
|
+
>
|
|
13
|
+
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
14
|
+
> of this software and associated documentation files (the "Software"), to deal
|
|
15
|
+
> in the Software without restriction, including without limitation the rights
|
|
16
|
+
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
17
|
+
> copies of the Software, and to permit persons to whom the Software is
|
|
18
|
+
> furnished to do so, subject to the following conditions:
|
|
19
|
+
>
|
|
20
|
+
> The above copyright notice and this permission notice shall be included in all
|
|
21
|
+
> copies or substantial portions of the Software.
|
|
22
|
+
>
|
|
23
|
+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
24
|
+
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
25
|
+
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
26
|
+
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
27
|
+
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
28
|
+
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
29
|
+
> SOFTWARE.
|