Skip to content

dsh-delete-conversation

Verified

dsh-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 端刷新页面即可加载浏览器半边;宿主半边需要重启进程)。

使用

  1. 在左侧边栏把鼠标移到任意会话行上,点右侧的「⋯」;
  2. 菜单底部选择 删除会话;
  3. 弹窗里确认 永久删除。

删完这一行就从列表里消失了。

它到底删了什么

一次删除会清掉这个会话的全部落地痕迹:

位置 内容
$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