在侧栏会话菜单的「归档会话」下方新增「删除会话」项,永久删除该会话——停止进行中的工作、摘除工作区/归档/置顶记账、删除投影缓存与日志目录,然后广播移除事件让该行立即消失,而不是只能归档。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-delete-sessions
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Linusteller/dsh-session-delete
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
给 DeepSeek Harness 增加真正的 「删除会话」:从侧栏每个会话的「…」菜单永久删除它,而不是只能「归档」。
为什么需要这个插件
DSH 内建的「归档」(archive)只做一件事:把会话 id 加进 archivedSessionIds 集合,把它从分组界面里藏起来。它从不删除磁盘文件——会话日志(~/.dsh/sessions/<project>/<id>/session.v4.jsonl.zstd)和投影缓存(~/.dsh/storages/session_projcache/sessions/<id>.json)会一直留在硬盘上。
本插件补上缺失的「删除」:停止该会话正在跑的工作 → 摘除归档/置顶/工作区记账 → 删除投影缓存 → 删除日志目录 → 广播移除事件让界面立即刷新。
安装
方式一:作为 bundle 安装(推荐)
dsh plugin --profile desktop add dsh-delete-sessions
cordis.patch.yml 会自动插入一行,加载插件。
方式二:手动安装
- 把本目录复制到 profile 的
node_modules/dsh-delete-sessions(或用link:依赖)。 - 在该 profile 自己的
cordis.patch.yml里加一行:
- insert:
- id: dsh-session-delete
name: 'dsh-delete-sessions'
注意:手动加行后不要再让
cordis.patch.yml(本目录里的那份)也被应用,否则同一插件会因 id 冲突重复加载。
- 重启 DeepSeek Harness。
使用
- 在侧栏任意会话上点「…」。
- 菜单里「归档会话」正下方会多出「删除会话」(带删除图标,风格与其余菜单项一致)。
- 点击后确认。删除后该行立即从列表消失。
行为细节
删除按固定顺序执行,任何一步失败都会整体报错,避免「界面里没了但磁盘还在」的半完成状态:
- 停活动 —— 触发
workspace/session-stop(与归档「停止并归档」同一条路径,agent.cancel),并短暂等待最后一次事件落盘。 - 摘除记账 ——
unarchiveSession+unpinSession+ 逐工作区detachSession(均幂等)。 - 删投影缓存 —— 走 storage-domain 的
session_projcache域(内存与磁盘同步);域未挂载时跳过(缓存是派生数据,下次冷读会重建)。 - 删日志目录 —— 优先用
sessionPersistence.locate()拿精确路径(session id 已被安全编码,无路径穿越风险),带重试处理 Windows 上反病毒/索引短暂占用。 - 广播移除 ——
api-session/removed已在 DSH 的转发白名单中,浏览器会立即移除该行。
安全
- 删除路由只接受回环来源的 POST,且 body 只承载一个
sessionId。 - session id 会先经
sessionPersistence.stat()校验真实存在,才继续删除。 locate()路径由 DSH 自身的encodeSegment编码,无路径穿越。
局限
- 若 profile 未挂载
session_projcache域或~/.dsh/sessions无法定位,投影缓存/日志目录可能残留(缓存下次冷读自动重建;日志需手动清理)。 - 删除不可撤销,请确认后再点。
License
MIT
链接
同类插件
Minglink/dsh-infinite-gen-4★ 3277
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 2276
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 557
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 246
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
MichengAI/dsh-archive-manager★ 198
在设置里增加已归档会话页,可按工作区搜索、恢复和删除已归档会话。
SiriLee/dsh-rewind★ 170
同一会话窗口内的 in-place 对话回退(不 fork,Claude Code /rewind 语义):每条消息的 ↶ 按钮把模型上下文回退到任意用户消息,可选用磁盘持久化的 before-backups 还原工作区文件。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。