dshbase

插件目录 / Storage / dsh-archive-manager

dsh-archive-manager

已验证 · 实测可装 zimixvx

✓ 持续维护 2 位贡献者 基于 8 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

2Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-13最近推送
跨平台平台

功能简介

无描述

✅
我们的评价
可用 — 实测通过,早期项目

无描述 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

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.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-archive-manager」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

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

Headless(CLI)profile:

dsh plugin --profile headless add github:zimixvx/dsh-archive-manager

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

使用场景

给 agent 持久存储——数据库、文件存储或持久层——让状态跨会话留存。

适合谁

任务需要读写结构化数据并跨运行保留的人。

二次开发建议

存储后端和数据模型是缝——插新数据库、加 schema 或暴露查询工具。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Storage 里更多

浏览全部 7797 个插件 →