dsh-session-delete:给会话行增加永久删除入口

DeepSeek Harness (DSH) 的默认会话管理仅支持重命名、分叉和归档操作。归档操作仅是隐藏会话,数据仍然保存在磁盘上。长期使用会导致存储空间膨胀。dsh-session-delete 插件在会话行菜单中增加了“删除会话”选项,支持永久移除磁盘上的日志文件,并内置了防止误删运行中会话的安全机制。

核心功能

该插件在 DSH 会话行上下文菜单中添加了“删除会话”入口,与重命名、分叉和归档功能并列。

  1. 持久删除:永久移除磁盘上的会话日志目录。
  2. 运行保护:禁止删除运行中或当前打开的会话(前端禁用 + Host 侧二次校验)。
  3. 路径安全:严格校验目录名必须等于会话 ID,防止路径逃逸。
  4. 请求校验:仅接受同源 POST 请求。
  5. 操作确认:删除前需进行两步确认。
  6. 自动归档:删除后会话自动归档,侧边栏即时隐藏。

安装与启用

  1. 安装插件:
    dsh plugin --profile web add github:Yicijiuhaobala/dsh-session-delete
  1. 启用插件:将 "dsh-session-delete" 加入 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组,然后重启 dsh web。
  2. 本地开发:若进行本地开发,需将源码 client/client.js 和 lib/index.js 同步到 ~/.dsh/profiles/web/node_modules/dsh-session-delete/,或重新运行 pnpm install 以触发热更新。

典型用法

  • 标准操作:鼠标悬停在任意会话行上,点击右下角的 ⋯(三个点),选择“删除会话”。
  • 删除归档会话:若需删除已归档的会话,可从 ~/.dsh/storages/workspace. 的 archivedSessionIds 中移除该 ID,或直接删除目录 ~/.dsh/sessions/<workspace-dir>/<session-id>/。

技术说明

由于 DSH 中的共享 UI 原语被 Object.freeze 冻结,组件级补丁会静默失败,该插件采用 DOM 级注入的方式实现。插件遵循 MIT 许可证。

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

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

小夜