dsh-archive-manager:从 DSH Web 侧边栏删除已归档会话目录

前言

在 DSH 的 web profile 里,如果你需要把某个已归档会话在 $DSH_HOME/sessions 下的磁盘目录清理掉,而不是只在界面上保留它的记录,dsh-archive-manager 提供了一个侧边栏入口。它列出已归档会话,要求二次确认,然后删除对应会话目录。

下面介绍它是什么、能做什么、如何安装,以及使用前需要注意的限制。

这是什么

dsh-archive-managerzimixvx 维护,采用 MIT 许可证。它是一个 out-of-tree 的 DeepSeek Harness Web Cordis plugin,面向 web profile。

它不改 DSH 核心安装,也不改 profile 配置;唯一对 $DSH_HOME 的持久影响,是删除用户确认后的 $DSH_HOME/sessions 下所选会话目录。

插件分成两半:

  • host half 注册 POST /archive-manager/delete
  • client half 注册 sidebar.footer.action,其中 id: archive-managerorder: 80

核心功能

1、在侧边栏 footer 增加归档管理动作。宽模式下显示 已归档 N,窄边栏只显示归档图标。

2、打开弹窗后,只列出 archivedSessionIds 中仍有 session summary 的会话 id,并显示 displayTitle(或 id)、cwdupdatedAt

3、每一行提供 trash 按钮。删除前要求第二次确认,明确提示会永久删除会话目录且不可恢复。

4、删除成功后,插件刷新 sessionsworkspaces。本地 deleted-id set 也会立即隐藏该行。

安装与启用

从 GitHub 安装

把插件加入 web profile:

dsh plugin --profile web add "github:zimixvx/dsh-archive-manager"

从本地路径安装

如果插件目录在:

D:\Code\DeepseekHarness\plugins\dsh-archive-manager

可以执行:

dsh plugin --profile web add "D:\Code\DeepseekHarness\plugins\dsh-archive-manager"

这条命令会写入 dependencies。随后需要在 $DSH_HOME/profiles/web/package.jsondsh.profile.bundles 中加入 dsh-archive-manager

{
  "name": "dsh-profile-web",
  "private": true,
  "dependencies": {
    "dsh-archive-manager": "file:D:/Code/DeepseekHarness/plugins/dsh-archive-manager"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-archive-manager"
      ]
    }
  }
}

这里的重点是 bundles 列表;dependencies 的具体条目由 dsh plugin --profile web add 写入。

重启 web profile

运行中的进程不会读取新的 bundle 行,因此安装或卸载后都需要重启 web profile:

dsh web

刷新页面后,侧边栏 footer 会出现归档管理动作。

典型用法

1、在已重启的 web profile 页面中,点击侧边栏 footer 的归档管理动作。

2、在弹窗中选择一个已归档会话。列表只包含 archivedSessionIds 中仍带有 session summary 的会话 id。

3、点击该行 trash 按钮,并在第二次确认中确认永久删除。

4、插件会发起同源 POST /archive-manager/delete。成功后,刷新 sessionsworkspaces;即使后续刷新失败,本地 deleted-id set 也会立即隐藏该行。

适用场景与注意

适合需要在 DSH web profile 中手动清理已归档会话磁盘目录的开发者。它只处理已归档会话,不替代 workspace registry 管理,也不处理共享附件。

使用前务必检查源码和许可证。该插件会以当前 dsh 进程的权限运行;安装前请确认你信任代码,并了解它删除的目录位于 $DSH_HOME/sessions

限制如下:

  • 仅允许删除 workspaceRegistry.archivedSessionIds 中存在的会话;live session 会被拒绝,返回 HTTP 409
  • 需要 raw-artifact backend:supportsRawArtifacts === true,且 locate() 返回 { kind: 'jsonl', path };否则路由返回 501
  • 删除只是对会话目录执行递归 rmforce: false,不可恢复,没有 trash 或 restore 路径。
  • 不修改 workspace registry、archived markers、projection cache,或 content-addressed attachments / shared attachments。
  • 删除成功后,archivedSessionIds 中的标记按设计保留。因为弹窗只列出仍有 session summary 的已归档 id,物理删除会移除 summary,所以重载后不会再次出现。
  • 插件没有自有 durable state。卸载时从 dsh.profile.bundlesdependencies 中移除 dsh-archive-manager,然后重启即可。

链接

  • GitHub:https://github.com/zimixvx/dsh-archive-manager
  • 社区目录页:https://www.skillhub.cn/plugins/zimixvx/dsh-archive-manager
羽毛球分组比赛记分
小程序二维码

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

小夜