DSH 插件:dsh-archive-session(浏览与清理归档会话)

DSH 官方支持会话归档,但不提供查看归档列表、关闭内存中的会话、取消归档或删除归档会话的途径。这个插件填补了这一操作缺口。

功能

  • 浏览归档会话:列出归档集中的会话,显示标题、会话 ID、工作区路径、创建时间、运行状态以及日志路径。
  • 无重启关闭会话:使用 archived_session_close 将空闲的内存会话分离并持久化,无需重启 DSH。
  • 取消归档:将会话从归档集中移除,使其重新出现在侧边栏中。
  • 删除归档:在明确确认后,物理删除会话日志目录。
  • 设置 UI:在 DSH Web 设置中提供独立的“Archived Sessions”管理页面。
  • HTTP API:提供简单的 JSON 端点,便于自动化操作。

安装

前置条件

  • 已安装 DSH,命令行可执行 dsh。
  • 如果需要从源码构建,需要 Node.js 和 npm。

安装步骤

  1. 下载或构建插件包(建议使用发布版本)。
  2. 执行安装命令:
dsh plugin --profile web add dsh-external-dsh-archive-session-0.0.9.tgz
  1. 安装完成后,重启 DSH 服务。

用法

Agent 工具

工具 描述
archived_sessions_list 列出仍指向真实会话的归档会话。
archived_session_close 关闭空闲的内存归档会话(刷新并分离),无需重启。
archived_session_unarchive 将会话从归档集中移除,使其可通过常规 UI 访问。
archived_session_delete 彻底删除归档会话。需要参数 confirm: true。

HTTP API

插件宿主在 /dsh-archive-session/api 路径下。

方法 路径 Body 描述
GET /archived - 列出归档会话。
POST /close { "sessionId": "..." } 关闭空闲的内存会话。
POST /unarchive { "sessionId": "..." } 取消归档会话。
POST /delete { "sessionId": "...", "confirm": true } 删除归档会话。

注意事项

  • 删除前必须关闭:DSH 在对话结束后仍会将会话对象保留在内存中。若要删除处于“运行/空闲”状态的会话,必须先使用 archived_session_close 将其持久化,或重启 DSH。
  • 取消归档以管理:归档会话默认在侧边栏中隐藏。若需通过常规 UI 打开、关闭或恢复会话,需使用 archived_session_unarchive。
  • 忽略过期 ID:如果归档 ID 不再指向真实的会话日志,该 ID 会被忽略。
  • 后端限制:删除功能仅支持 JSONL 持久化后端(路径通常为 ~/.dsh/sessions)。SQLite 后端会被拒绝,因为 DSH 未提供公开的删除 API。
羽毛球分组比赛记分
小程序二维码

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

小夜