DeepSeek Harness 插件

dsh-archive-manager

A minimal DeepSeek Harness Web plugin that lists archived sessions and permanently deletes an archived session directory after explicit confirmation.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
zimixvx/dsh-archive-manager
最近更新
2026年8月13日
分类
插件市场与管理
GitHub stars
2
载体类型
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/zimixvx/dsh-archive-manager
插件名:dsh-archive-manager
作者:zimixvx

检查来源文件

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

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-archive-manager

A minimal out-of-tree DeepSeek Harness Web Cordis plugin that permanently deletes the on-disk session directory of an archived session from the sidebar.

It does not modify the DSH core installation or any profile configuration. The only durable effect on $DSH_HOME is the intended one: after the user confirms, it deletes the selected session directory under $DSH_HOME/sessions. No other DSH durable state (workspace registry, projection cache, shared attachments) is written. The host half owns one HTTP route; the client half adds a sidebar footer action that lists archived sessions and deletes them after an explicit second confirmation.

What it does

  • Host half (index.js) registers POST /archive-manager/delete.
  • Client half (client.js) registers a sidebar.footer.action list entry

(id: archive-manager, order: 80). Wide mode shows the label 已归档 N; the narrow rail shows only the archive icon.

  • The modal lists only the ids in the workspace registry's archivedSessionIds

that also have a session summary in the client session baseline, displaying displayTitle (or the id), cwd, and updatedAt.

  • Each row has a trash button. Deleting requires a clear second confirmation

stating that the session directory will be permanently deleted and cannot be restored.

  • Deleting issues a same-origin POST /archive-manager/delete and, on

success, refreshes both sessions and workspaces. A local deleted-id set hides the row even though the archived marker is intentionally left intact.

Install

This is an out-of-tree plugin: place it on disk and install it into the existing web profile.

Option A — install from GitHub

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

Option B — install from a local path

With the plugin directory at D:\Code\DeepseekHarness\plugins\dsh-archive-manager:

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

Then add the plugin to the web profile's bundle list in $DSH_HOME/profiles/web/package.json:

{
  "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"
      ]
    }
  }
}

The exact dependencies entry is written by dsh plugin --profile web add; only the bundles list needs the manual addition.

The plugin's cordis.patch.yml (declared via dsh.bundle.patch) inserts the host row:

- insert:
    - id: archive-manager
      name: dsh-archive-manager

Restart

A running process does not pick up new bundle rows, so restart the web profile:

dsh web

After a page refresh, the sidebar footer shows the archive-management action.

Safety and limitations

  • Only archived sessions. The route refuses any id not present in

workspaceRegistry.archivedSessionIds.

  • Live sessions are refused — checked before the persistence lookup and

again immediately before the rm, with HTTP 409.

  • Raw-artifact backend required. The persistence backend must advertise

supportsRawArtifacts === true and a locate() returning { kind: 'jsonl', path }. Otherwise the route answers 501.

  • Deletes the session directory only. `rm(dirname(location.path),

{ recursive: true, force: false })` removes the directory that holds the session's JSONL log (and any session-local files inside it). It does not modify the workspace registry, the archived markers, the projection cache, or content-addressed attachments (which live in a separate shared store and are shared across sessions).

  • Stale archived markers. After a successful delete, the archived marker in

archivedSessionIds remains by design (removing it would mutate the registry). Because the panel only lists archived ids that still have a session summary, and the physical deletion removes that summary, the leftover marker does not reappear after a page reload. A local deleted-id set also hides the row immediately even if the follow-up refresh fails.

  • Not reversible. The deletion is a recursive rm with force: false.

There is no trash or restore path.

Uninstall

Remove dsh-archive-manager from the profile's dsh.profile.bundles (and from dependencies), then restart. The plugin adds no durable state of its own, so there is nothing else to clean up.

License

MIT — see [LICENSE](LICENSE).