DeepSeek Harness plugin

dsh-archived-conversation

Archived-conversation manager for DeepSeek Harness: a Settings → 已归档 page that lists archived conversations grouped by project, with unarchive and delete actions.

Jump to install

Source facts

Repository
Li-canghai/dsh-archived-conversation
Latest update
Aug 22, 2026
Category
Plugin Markets & Managers
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Li-canghai/dsh-archived-conversation
Plugin: dsh-archived-conversation
Author: Li-canghai

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.mdSource · read only
README language

dsh-archived-conversation

简体中文 | English

An archived-conversation manager plugin for DeepSeek Harness (DSH). It adds a Settings → 已归档 (Archived) page where archived conversations can be searched, browsed by project, unarchived, or deleted.

DSH already ships the archive capability (right-click a conversation in the left sidebar → Archive; the conversation disappears from the workspace view and its id is written to archivedSessionIds in ~/.dsh/storages/workspace.json). But DSH currently has no management UI for archived conversations and no unarchive / delete entry point — this plugin fills that gap.

Features

  • Grouped by project — reuses DSH's workspace info to group archived conversations under their owning project.
  • Instant search — filters archived conversations by title, project name, or session ID in the browser, without additional session-log reads.
  • Unarchive — removes the id from archivedSessionIds; the conversation returns to its original position in its workspace.
  • Delete — detaches from the workspace, drops from the archive set, and removes the on-disk session directory (irreversible).
  • Auto-refreshes every 20 seconds and immediately whenever the window regains focus.

How it works

  • Pure ESM, zero runtime dependencies (Node built-ins only), same shape as dsh-mcp-manager.
  • Client: registers the "已归档" tab via the settings.section slot, rendered with react.createElement (no JSX, no bundler).
  • Host: mounts the /archived-conversation/api/* same-origin JSON API via ctx.webServer.register.
  • Performance: each refresh performs one parallel stat per archived log and reuses workspace/file metadata; title-cache hits skip header reads, while concurrent refreshes share one list rebuild.
  • Reuses DSH's own services; never parses the session file format:

- ctx.workspaceRegistry — the authority on archive state and project membership. - ctx.sessionPersistence.readFrom — reads each archived session's log and folds its last session/title event (the same logic as DSH's own "title" projection unit; sessionQuery.readTitleSnapshots is unreliable for cold persisted sessions). - ctx.webServer — mounts the management API.

  • Guard rails: mutation requests require a same-origin Origin, JSON Content-Type, and loopback Host; sessions still in use are queued for deferred deletion instead of being corrupted.

Install

npx -p @deepseek-ai/dsh dsh plugin --profile web add <path-or-repo>

Then restart dsh --profile web and reload the page. The plugin self-activates through dsh.bundle.patch; no manual cordis.patch.yml edits needed.

Usage

1. In the left sidebar, right-click any conversation → Archive (provided natively by DSH). 2. Open Settings → 已归档: browse by project or search by title, project name, or session ID. 3. For each matching conversation you can: - Unarchive — return it to its original workspace position. - Delete — remove it permanently (confirmation dialog; irreversible).

API

MethodPathDescription
GET/archived-conversation/api/pingLiveness probe (no Origin required)
GET/archived-conversation/api/listArchived conversations grouped by project (no Origin required)
POST/archived-conversation/api/:id/unarchiveUnarchive (same-origin Origin + JSON Content-Type + loopback Host)
DELETE/archived-conversation/api/:idDelete (same-origin Origin + JSON Content-Type + loopback Host)

Layout

dsh-archived-conversation/
  package.json        # dsh.client.inject + dsh.bundle.patch
  cordis.patch.yml    # plugin row (activated by bundle.patch)
  lib/index.js        # host: API + archive-state read/write
  lib/client.js       # client: Settings "已归档" UI
  README.md / README.zh-CN.md / LICENSE

Verification

No build step. After installing into a live web profile, open Settings → 已归档 in the browser. Host liveness: GET /archived-conversation/api/ping.