DeepSeek Harness 插件

dsh-archive-session

浏览归档会话并删除会话的 DSH 插件(英文原文)

跳到安装方式

来源信息

GitHub 仓库
DreamStan/dsh-archive-session
最近更新
2026年8月18日
分类
记忆
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/DreamStan/dsh-archive-session
插件名:dsh-archive-session
作者:DreamStan

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

@dsh-external/dsh-archive-session

English | 中文

DSH 插件:浏览归档会话,并安全地关闭、取消归档或删除会话。

DSH 官方目前只有“归档会话”的能力,但没有查看归档会话、从内存中关闭会话、取消归档或删除会话的入口。本插件补齐这些缺口。

功能简介

  • 浏览归档会话

- 列出注册表全局归档集合中的会话,包含标题、会话 ID、工作区路径、创建时间、live/running/persisted 状态和日志路径。

  • 无需重启 DSH 即可关闭内存中的会话

- DSH 在对话结束后仍会把会话保留在内存中。archived_session_close 会先 flush 再 detach,让空闲会话立即变为“已持久化”。

  • 取消归档

- 将会话从归档集合移除,使其重新出现在侧边栏/分组视图中,方便正常打开、关闭或继续。

  • 删除归档会话

- 显式确认后,物理删除 JSONL 后端的会话日志目录。

  • 设置页 UI

- 在 DSH Web 设置中新增「归档会话」页面。

  • Host HTTP API

- 提供简单的 JSON 接口,方便自动化。

![](img/archive-session-ui-zh.png)

Agent 工具

工具说明
archived_sessions_list列出仍能对应到真实会话的归档会话。
archived_session_close关闭一个空闲的内存归档会话(flush + detach),无需重启。
archived_session_unarchive将会话移出归档集合,使其重新出现在侧边栏。
archived_session_delete永久删除归档会话,必须传 confirm: true

设置页 UI

打开 DSH Web 设置,选择 归档会话

每个条目显示:

  • 标题 / 会话名
  • 会话 ID 和工作区路径(悬停可查看完整内容)
  • 创建时间
  • 完整日志路径
  • 状态徽标:运行中已打开(空闲)已持久化

每个条目支持的操作:

  • 关闭会话:把空闲的内存会话变为“已持久化”
  • 取消归档:让会话重新出现在侧边栏
  • 删除:永久删除会话(仅在已持久化后可用)

Host API

基础路径:/dsh-archive-session/api

方法路径Body说明
GET/archived列出归档会话。
POST/close{ "sessionId": "..." }关闭空闲的内存会话。
POST/unarchive{ "sessionId": "..." }将会话移出归档集合。
POST/delete{ "sessionId": "...", "confirm": true }永久删除归档会话。

安装

前置要求

  • 已安装 DSH,且 dsh CLI 可用;从源码构建时需要 DSH 源码目录。
  • 从源码构建需要 Node.js 和 npm。

从发布包安装

dsh plugin --profile web add dsh-external-dsh-archive-session-0.0.9.tgz

安装后重启 DSH。

从源码安装

git clone https://github.com/DreamStan/dsh-archive-session.git dsh-archive-session
cd dsh-archive-session

# 构建 host + client
bash scripts/build.sh
npm run build:client

# 打包可分发 tgz
npm pack

# 安装到 web profile
dsh plugin --profile web add ./dsh-external-dsh-archive-session-0.0.9.tgz

如果使用 DSH super-injector 开发工具链,也可以:

dev_build_plugin  {"dir": "/absolute/path/to/dsh-archive-session"}
dev_install_package {"dir": "/absolute/path/to/dsh-archive-session"}

手动修改 profile 安装

编辑 ~/.dsh/profiles/web/package.json

{
  "dependencies": {
    "@dsh-external/dsh-archive-session": "link:/absolute/path/to/dsh-archive-session"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "@dsh-external/dsh-archive-session"
      ]
    }
  }
}

创建 profile 链接:

mkdir -p ~/.dsh/profiles/web/node_modules/@dsh-external
ln -s /absolute/path/to/dsh-archive-session ~/.dsh/profiles/web/node_modules/@dsh-external/dsh-archive-session

重启 DSH。

卸载

通过 dsh CLI

dsh plugin --profile web remove @dsh-external/dsh-archive-session

卸载后重启 DSH。

通过 super-injector 开发工具

如果是通过 DSH super-injector 工具链安装的:

dev_uninject_plugin {"match": "dsh-archive-session"}

手动卸载

1. 从 ~/.dsh/profiles/web/package.json 中移除依赖和 bundle 条目:

{
  "dependencies": {
    "@dsh-external/dsh-super-injector": "link:/path/to/dsh-super-injector"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "@dsh-external/dsh-super-injector"
      ]
    }
  }
}

2. 删除 profile 链接:

rm -f ~/.dsh/profiles/web/node_modules/@dsh-external/dsh-archive-session

3. 如果 ~/.dsh/profiles/web/cordis.patch.yml 中存在本插件的 disabled 条目,一并删除。

4. 重启 DSH。

> 卸载插件不会删除已归档的会话日志或 Workspace 数据。

使用说明

  • 先关闭再删除。 DSH 在对话结束后仍会把会话对象保留在内存中。删除一个“已打开(空闲)”的会话前,需要先重启 DSH,或使用 archived_session_close 将其变为“已持久化”。
  • 取消归档后可正常管理。 归档会话会从侧边栏隐藏。如果希望通过普通界面打开、关闭或继续某个会话,先使用 archived_session_unarchive
  • 失效归档 ID 会被忽略。 如果归档集合中的某个 ID 已无法对应到真实会话日志,插件会跳过它,并显示为已忽略的失效 ID。
  • 删除后端支持。 当前删除功能支持 JSONL 持久化后端(默认 ~/.dsh/sessions)。SQLite 后端会明确报错,因为 DSH 没有公开的删除 API。

License

[MIT](LICENSE)