dsh-delete-conversation
Verifieddsh-delete-conversation · v1.0.1 · MIT · Web UI
DSH 插件:在侧边栏会话的「…」菜单里加一项「删除会话」,彻底删除该会话的日志、工作区归属与投影缓存。Adds a "Delete session" action to the DeepSeek Harness sidebar session menu that permanently removes the stored session.
Install
dsh plugin add dsh-delete-conversation Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
dsh-delete-conversation
DeepSeek Harness 插件:在侧边栏会话的「⋯」菜单里加一项 删除会话。
DSH 原生只提供「归档会话」(会话仍留在磁盘上,可随时取消归档)。装上这个插件后, 菜单里会多出一行 删除会话:经二次确认,永久删除该会话的日志、工作区归属与投影缓存。
安装
dsh plugin add dsh-delete-conversation
安装后重启 DSH 宿主(Web 端刷新页面即可加载浏览器半边;宿主半边需要重启进程)。
使用
- 在左侧边栏把鼠标移到任意会话行上,点右侧的「⋯」;
- 菜单底部选择 删除会话;
- 弹窗里确认 永久删除。
删完这一行就从列表里消失了。
它到底删了什么
一次删除会清掉这个会话的全部落地痕迹:
| 位置 | 内容 |
|---|---|
$DSH_HOME/sessions/<项目>/<会话 id>/ |
会话事件日志(session.v4.jsonl.zstd) |
$DSH_HOME/storages/workspace.json → archivedSessionIds |
该会话的归档记录 |
$DSH_HOME/storages/workspace.json → tables.workspaces.*.sessionIds |
该会话的工作区归属 |
$DSH_HOME/storages/session_projcache/sessions/<会话 id>.json |
会话投影缓存 |
工作区那部分走的是宿主自己的 workspaceRegistry(detachSession / unarchiveSession),
不是绕开它直接改文件——所以内存里的投影和磁盘上的表始终一致。
安全边界
- 正在跑的会话不能删。 只有该会话此刻真的在跑一轮(Agent 状态为
running)才会被拒;打开过、停在空闲状态的会话可以正常删除。 这种情况接口返回409,弹窗里会提示你先结束它。 - 只在同源、回环地址上的请求会被受理。 带了
forwarded/x-forwarded-for/x-real-ip的转发请求一律403,所以把这个端口暴露到公网也不会被人隔着隧道删会话。 - 每个会话 id 都按格式校验(
session-<uuid>),不合法直接拒。 - 删除是物理不可逆的,没有回收站。想要可恢复,请用原生「归档会话」。
兼容性
- 依赖官方菜单插槽
sidebar.workspaces.session.menu.item(DSH 桌面端 / Web 端自带)。 插件不碰 DOM,不劫持样式,官方改版菜单不会让它散架。 - 菜单行的样式优先复用
@deepseek-ai/dsh-client-ui-primitives的MenuItemButton与IconTrashOutlineRegular;万一取不到,会退化成一个仍能加入菜单键盘遍历的role="menuitem"按钮。 - 中英文界面文案都已内置,跟随 DSH 的语言设置。
License
MIT