dsh-session-delete
Manifest validPermanently delete sessions from the DeepSeek Harness sidebar, including live sessions and caches.
dsh-session-delete
为 DeepSeek Harness 的侧栏会话菜单增加永久删除操作,支持中文和英文。
在会话行的操作菜单中选择 删除会话,核对名称后点击 永久删除。正在执行任务的会话会被拒绝删除,插件不会强制停止任务。
删除后无法恢复。当前正式版本为 1.1.0,仅支持 DSH 0.2.1-rc.2。下载与更新说明见 v1.1.0 Release。
兼容性
| 会话状态 | 原版 DSH | 安装本仓库生命周期补丁的 DSH |
|---|---|---|
| 未加载的空闲历史会话 | 可以删除 | 可以删除 |
| 已打开或已恢复的空闲会话 | 拒绝删除 | 标准 Agent 会话安全关闭后删除 |
| 任务执行中、维护中或有待处理输入 | 拒绝删除 | 拒绝删除 |
只安装插件不会给 DSH 增加关闭会话的能力。 要删除已加载的空闲会话,需要额外应用 DSH 生命周期补丁。补丁针对固定版本源码,尚未合入上游;不支持关闭的第三方 Agent 会明确拒绝删除。
所有删除都要求单个 DSH Host 独占会话、缓存和工作区存储。多个 Desktop、Web 或 CLI 实例共用一套存储不受支持。
安装
在 DSH 的插件页面添加本地仓库路径,或使用 Git 地址:
git+https://github.com/huy8000/dsh-session-delete.git
启用插件后,在对应 Profile 的 cordis.patch.yml 中添加:
- id: dsh-session-delete
config:
singleHost: true
Desktop 默认配置位于 ~/.dsh/profiles/desktop/cordis.patch.yml;设置了 DSH_HOME 时使用对应目录。完成后重启 DSH Host;Desktop 用户可退出并重新打开应用。
singleHost 默认关闭,关闭时插件不会执行删除。只有确认存储由一个 Host 独占后才应启用;这是使用者的声明,不会自动检测其他进程,也不提供跨进程保护。
使用
- 打开侧栏会话行的操作菜单,选择 删除会话。
- 在确认框中核对会话名称和不可恢复提示。
- 点击 永久删除。成功后,会话从列表移除;删除当前查看的会话时,页面回到新会话入口。
取消、Escape 或点击遮罩可以关闭尚未执行中的确认框。删除进行中会禁用重复提交和关闭操作。失败时保留确认框,分开显示失败原因及必要的数据状态。
删除范围
插件会清理目标会话的:
- 已识别的 JSONL 持久化日志。
- 当前会话投影缓存。
- Workspace 关联、置顶和归档记录。
用于上游写锁的 session.lock 和空目录会保留。工作区中的项目文件、导出副本、外部备份、附件及第三方插件数据不在清理范围内。
删除不是跨文件事务。路径不明、符号链接、异常存储结构、写入占用或无法确认的生命周期状态都会导致拒绝。共享存储和不遵守 DSH 生命周期的第三方后台写入不在支持范围内。
删除失败时
| 提示或情况 | 处理方式 |
|---|---|
| 会话正在运行 | 等待任务结束后重试;已归档也不代表没有活动任务 |
| 当前 DSH 不支持关闭已加载会话 | 安装生命周期补丁,或重启 Host 后在重新打开目标会话前删除 |
| 会话关闭或持久化失败 | 不继续文件删除;检查 DSH 日志,处理问题并重启 Host 后重试 |
| 部分清理失败 | 数据可能已部分删除;排除存储或 Workspace 错误后重试同一会话 |
| 请求中断或响应无效 | 结果未知;刷新核对,不能据此认为数据仍然完整 |
| 已删除,但列表刷新失败 | 点击 重试刷新,只重试客户端同步 |
同一 Host 内,同一会话的并发请求会合并处理。可安全重试清理,但这不等于删除具有原子性;必要步骤全部完成后才报告成功。
验证与限制
当前代码已有以下实测记录:
- 补丁版 Desktop 删除已打开的空闲会话:列表、日志、缓存及 Workspace 关联清理,重启后未回弹,其余对照日志哈希不变。
- 隔离 Host 验证空闲删除、活动拒绝、持久化关闭失败时保留数据,以及失败后的重启重试。
- 最新确认框使用实际客户端代码进行隔离预览,检查中文、英文长标题、活动拒绝提示和 Escape。新版排版尚未完成 Desktop 回归。
详情见 Desktop 记录、验收报告 和 补丁说明。文档中的历史测试数量不代表当前仓库仍提供对应测试套件。
目前仍依赖固定版本的部分内部缓存及 Workspace 接口,不保证其他 DSH 版本兼容。生命周期补丁只等待 DSH 能追踪的关闭工作和返回的 Promise,无法保证第三方脱离生命周期的后台任务已停止。本地 Desktop 补丁使用本机签名,后续官方更新可能覆盖它。
开发检查
npm ci
npm run check
npm run pack:check
CI 在 Linux/macOS、Node.js 22.19.0/24 上执行语法和 npm 打包检查。自动化测试套件及其 CI 步骤已按维护要求移除;以上命令不验证删除行为。行为验收应使用隔离临时目录。
上游接口分析及后续建议见 源码审查、API 提案 和 未提交的 Issue 草稿。
English
Adds Delete session to the DeepSeek Harness sidebar with Chinese and English UI. The 1.1.0 release supports DSH 0.2.1-rc.2 only. See the release and downloads.
Stock DSH supports deletion of unloaded idle sessions. Deleting a loaded idle session requires the separate lifecycle patch; updating this plugin alone does not patch DSH. Running tasks, maintenance, pending input and unsupported owners are refused without forced cancellation.
Install from a local path or the Git URL above, enable the plugin, and declare singleHost: true in the Profile patch only when one Host exclusively uses the storage. Restart the Host afterward. Shared storage is unsupported; this setting does not detect or lock out other processes.
Deletion permanently removes recognized session logs, the current projection cache and Workspace/pin/archive records. Lock files, empty directories, project files, attachments, exports, backups and third-party data remain. Partial cleanup is retryable but not atomic. A lost response means an unknown outcome; a confirmed deletion with a failed list refresh offers refresh-only retry.
Basic checks are npm ci, npm run check and npm run pack:check. The automated test suite has been removed. These checks do not establish deletion correctness; see the linked acceptance records for actual runtime verification and its limits.
License
MIT © 2026 huy8000
Comments
Loading…