DeepSeek Harness 插件

dsh-session-archive-manager

Manage archived DeepSeek Harness sessions from Settings: view, unarchive, delete, batch delete, or delete all.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
my-dsh-plugin/session-archive-manager
最近更新
2026年8月17日
分类
记忆
GitHub stars
2
载体类型
bundle
目录证据
上游声明已找到 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/my-dsh-plugin/session-archive-manager
插件名:dsh-session-archive-manager
作者:my-dsh-plugin

检查来源文件

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

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

session-archive-manager

Manage archived sessions from DeepSeek Harness Settings: view, unarchive, delete, batch delete, or delete all — the archived-session surface the harness itself does not ship.

> 中文:README.zh.md

Features

  • View every archived session in Settings — title, workspace, working directory, and last-updated time — even though the harness hides archived sessions from every grouping surface.
  • Unarchive one session or a selection: each reappears in its retained workspace accounting slot.
  • Delete one session, delete a selection, or delete all archived sessions at once, each with an inline confirmation.
  • Live refresh: the list follows the host's archive set and session summaries while the page is open; actions reflect immediately through the runtime stores.
  • Capability gate: on a harness without the core APIs the page degrades to a read-only list with a clear upgrade notice instead of broken buttons.

How it works

The plugin is UI-only. It derives the archived-session rows by cross-referencing the live workspaces.list archive set with sessions.list summaries, and every action rides the core workspace.unarchiveSession / workspace.deleteSession RPCs through the workspaces runtime service. Nothing polls, and nothing runs on the host side beyond the RPCs themselves.

Screenshot

![Archived Sessions settings page](assets/settings-en-full.png)

The Archived Sessions entry sits in Settings right after Plugins. Rows are grouped by workspace with a small group title; sessions no workspace accounts fall into the Ungrouped bucket at the end. Batch actions — unarchive, delete selected, delete all — live in the toolbar above the list.

Requirements

The harness does not ship the unarchive/delete APIs yet (no upstream release channel), so a source checkout of deepseek-harness with the bundled patch applied is required today. On a harness without the APIs the settings page shows the archive list read-only with an upgrade notice.

Install

The plugin itself never needs to be built. The repository ships the prebuilt host entry and browser bundle in lib/ (committed), so installing is a clone/pull plus one CLI command — no pnpm install in this repo, no prepare scripts, no allowBuilds approvals. The only build in the whole flow is the harness's own, for the core patch in step 1.

1. Patch the harness core

From this repository, against your deepseek-harness checkout (pinned to base commit 47f943859b; a different commit may need git apply -3):

node scripts/apply-patch.mjs /path/to/deepseek-harness
cd /path/to/deepseek-harness
npm run build:lib:host
npm run build:lib:client

The patch (patches/dsh-core-unarchive-delete.patch) adds the two workspace RPCs, the session-persistence delete seam with JSONL/SQLite backends, the client-runtime actions, and their tests. It is additive only — no existing behavior changes.

2. Install the plugin (no build needed)

From a local clone (recommended for iterating) — installs as a link: the committed lib/ is served as-is, and git pull in the clone updates the plugin without any build:

git clone https://github.com/my-dsh-plugin/session-archive-manager.git
pnpm dsh plugin add --profile web /path/to/session-archive-manager

(dsh CLI from your harness checkout; set DSH_HOME to your harness home if it is not the default ~/.dsh.)

Straight from git — pnpm fetches the repository and uses the committed lib/; no build script runs:

pnpm dsh plugin add --profile web github:my-dsh-plugin/session-archive-manager

dsh plugin add adds the dependency and reconciles the dsh.profile.bundles layer list. The manual equivalent is editing the profile's package.json:

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

then pnpm install inside the profile directory.

3. Restart and verify

Restart the harness (npx @deepseek-ai/dsh web or however you launch it). The Archived Sessions entry appears in Settings, after Plugins.

  • The page shows the read-only notice → the core patch is not active in the running build (check the rebuild step, or that the old process was fully stopped).
  • The menu entry is missing entirely → the plugin is not in the running profile's bundle layer (re-run dsh plugin add, verify the bundles list).

DeepSeek Harness Desktop — one-shot install

Desktop users need neither a harness checkout nor the core patch: the desktop harness is built from the my-dsh-plugin fork, which already carries the archive/unarchive/delete core support. Run this once in a normal terminal (not inside the app's own harness shell — the app bundle and app-data dir are sandboxed/read-only from there, especially on macOS):

bash <(curl -Ls https://raw.githubusercontent.com/my-dsh-plugin/session-archive-manager/main/scripts/install-desktop.sh) --restart

The script is idempotent: pulls the plugin from GitHub (prebuilt lib/, nothing to build), appends "session-archive-manager" to the embedded harness WEB_SETTINGS_NAMESPACES allowlist if missing, installs it into the desktop web profile, registers the bundle, and restarts the app (--restart). The Archived Sessions entry then appears in Settings. Overrides: DSH_DESKTOP_APP, DSH_DESKTOP_HOME, DSH_SKILL_SOURCE_DIR.

> End users of a released desktop build need no manual steps — upgrade and restart; the > plugin is seeded and the allowlist is already in the shipped harness.

Maintenance

The patch is pinned to a harness base commit, so it drifts as the harness upstream moves. When your checkout updates, regenerate and re-verify the patch before committing:

node scripts/regenerate-patch.mjs /path/to/deepseek-harness
git -C /path/to/deepseek-harness stash
git -C /path/to/deepseek-harness apply --check /path/to/session-archive-manager/patches/dsh-core-unarchive-delete.patch
git -C /path/to/deepseek-harness stash pop

The regeneration covers only this plugin's core extension (unrelated local changes are excluded automatically). Bump the base via DSH_PATCH_BASE=<commit> when the extension is re-based onto a newer upstream commit.

Development

Building is only for changing the plugin itself — consumers never build. It requires the sibling deepseek-harness checkout (../deepseek-harness) because the client bundle is produced by the shared harness preset:

pnpm install
pnpm test       # vitest: controller and row-assembly suites
pnpm typecheck  # tsc -b over src + tests against the harness checkout
pnpm build      # tsc declarations + tsdown host + client bundle into lib/

After a build, commit lib/ so consumers keep getting the prebuilt artifacts (a git pull is all a link-installed profile needs to pick up a change).

Known Limitations and Deferred Work

  • Deleting a session refuses only while its agent is running a turn; stop the turn first, then delete.
  • Attachments written by a deleted session are not garbage-collected; they remain in the attachment store, which is content-addressed and shared by log export.
  • The session-search index drops a deleted session on its next reconciliation; the running web client's sidebar refreshes from its own stores and may show the row until the next list refresh.

License

Apache-2.0