dsh-session-delete:DSH 会话删除插件

DeepSeek Harness (DSH) 是基于插件架构的智能体开发环境。在日常开发中,会话列表往往需要定期清理。DSH 原生的归档功能无法彻底移除数据,手动操作容易遗留工作区账目或缓存文件。

dsh-session-delete 是一个客户端插件,由 yauntyour 维护。它在每个会话行的操作菜单中新增了「删除会话」选项,用于彻底移除会话及其相关数据。

核心功能

  • 菜单注入:在每个会话行的 ⋯ 操作菜单中,在「归档会话」正下方新增「删除会话」。该选项采用红色危险配色(跟随主题变量 --dsw-alias-state-error-primary),并配有垃圾桶图标与危险态悬停底色。
  • 二次确认:执行删除前会弹出确认框,遵循 DSH 主题变量,确认前不会删除任何数据。
  • 同名会话多选:当存在多个同名会话时,弹窗会列出所有候选会话(标题、ID、相对时间),由用户选择目标。
  • 即时刷新:利用 DSH 的 wire 推送机制(host/session-removed、host/workspace-changed、host/archived-sessions-changed)更新会话列表,无需刷新页面。删除当前会话时,视图会自动跳转至「新会话」。
  • 干净删除:不仅移除会话日志文件,还会同步清理工作区账目(workspace.sessionIds)、归档集合(archivedSessionIds)与投影缓存(session_projcache),防止重启后出现幽灵会话。
  • 安全围栏:复用官方 /api 网关的浏览器信任围栏机制(Loopback Host 或受信主机 + 同源检查)。

安装与启用

# 在插件目录构建并打包
cd D:/Developments/Workspace/DSH-SessionDelete
npm install && npm run build && npm pack

# 挂载到 web profile
dsh plugin --profile web add "D:/Developments/Workspace/DSH-SessionDelete/dsh-session-delete-0.2.0.tgz"

验证安装:

dsh --profile web --dump-config | grep session-delete
# 应输出包含 id 和 name 的配置项

重启 dsh web 后,刷新浏览器页面,在左侧会话列表任意会话行的 ⋯ 菜单中,即可看到新增的「删除会话」选项。

使用步骤

  1. 将鼠标移到会话行上,点击行尾的 ⋯。
  2. 在弹出的菜单中,点击「归档会话」下方的 删除会话。
  3. 在确认弹窗中核对会话标题(若存在同名会话,先在列表中选择目标)。
  4. 点击「删除」,等待提示「会话已删除」——列表会自动移除该会话。

注意事项与边界

  • 不可逆操作:删除会话不可恢复,日志文件会被永久移除,请谨慎操作。
  • 附件处理:~/.dsh/attachments 目录下的附件按对象寻址,无会话索引,删除时不会清理附件对象。
  • 搜索索引:若启用了会话内容搜索(session-query),旧索引行可能残留,不影响列表显示,重启后索引重建会自然失效。
  • Live 会话限制:正在运行 agent 的会话会被拒绝删除(提示等待运行结束),以避免运行中的回合在目录删除后继续落盘重建文件。
  • 菜单依赖:菜单注入为 DOM 级操作,依赖「归档会话」菜单项的稳定文案与 role 契约。若 DSH 官方 UI 重构该菜单结构,需同步更新插件逻辑。

链接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜