DSH Archive Manager
Safely manage archived sessions in DeepSeek Harness
简体中文 · Changelog · Apache-2.0
DSH Archive Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
Features
Put inactive conversations away and find them again when needed. Search, restore, and clean up archives in one place while keeping everyday task lists tidy.
- Put finished tasks away: archive one conversation or all active chats in a workspace.
- Find past work: search titles, filter by project, and sort by time or title in Settings → Archived sessions.
- Resume your work: restore one conversation, a project group, or all archived chats.
- Clean up records: permanently delete individual chats or batches after confirmation. Permanent deletion cannot be undone.
Screenshots
Open the sidebar session menu and choose Archive session:

Search, sort, filter by project, unarchive, or permanently delete chats in Settings → Archived sessions:

DSH product ecosystem
For a ready-to-use workbench, download DSH Codex Desktop. If you already use DeepSeek Harness, install any of these eight plugins individually. The desktop app includes all eight.
| Plugin | What you can do |
|---|---|
| Codex UI | Organize projects and conversations, search tasks, and navigate chat turns |
| IM Connect | Send tasks and receive replies through your usual messenger |
| Automation | Schedule tasks and review each run |
| Skills Manager | Find, enable, create, and import local skills |
| Archive Manager | Search, restore, or clean up archived conversations |
| Agency Agents | Choose and summon specialists for your task |
| BTW | Ask side questions without interrupting the main task |
| Simplify | Use /simplify to improve code within your Git changes |
Prerequisites
Plugin
0.1.38supports DeepSeek Harness0.1.5-rc.2and retains the four previously supported hosts below. Later versions require separate validation.A working DeepSeek Harness Web installation with
dshavailable in PowerShell.Examples use the
webprofile; replace it with the target profile.Source installation and development require Node.js 22+ and pnpm. npm installation does not require running
pnpm installseparately.
DSH peer dependencies accept only 0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1 || 0.1.5-rc.2; other RCs and stable versions are not automatically accepted. Development dependencies are pinned to 0.1.5-rc.2.
Installation
Run pnpm test:compat to test the same plugin artifacts with isolated host dependencies. The following combinations have passed; this does not claim coverage of every intermediate release:
pnpm test: build and run local tests, excludingtest/fixtures; local host links may affect dependency resolution.pnpm test:matrix: build, then install five isolated host versions and run the full matrix.pnpm test:latest: build, then run the real storage regressions against the isolated latest baseline.pnpm test:compat: validate legacy cache migration and run the full matrix.
Do not run test/fixtures/*.mjs directly. Fixtures validate the isolated entry point, dependency versions, and resolved paths before loading the host. If local dependencies have drifted, run pnpm install --frozen-lockfile to restore declared development dependencies. This does not guarantee removal of undeclared packages or host links under test/node_modules; use the isolated commands for compatibility acceptance.
| DSH | Cordis | Automated regression |
|---|---|---|
0.1.0-rc.8 |
4.0.1 |
154 passed |
0.1.1-rc.2 |
4.0.1 |
154 passed, plus legacy cache migration validation |
0.1.2-rc.1 |
4.0.2 |
154 passed |
0.1.5-rc.1 |
4.0.2 |
163 passed |
0.1.5-rc.2 |
4.0.2 |
163 passed |
Coverage includes workspace navigation, global-panel dismissal, cancellation of stale navigation, sidebar wiring, peer version acceptance, client Remote integration, archive/restore, real JSONL/Zstandard deletion and subagent cascades, and queries/reopened storage after deletion. Tested on Windows / Node.js 24. A real browser acceptance run also passed in an isolated DSH 0.1.5-rc.1 Web Profile: package installation, archive/restore, deletion cancellation and confirmation, subagent cascades, cross-filter batch deletion, workspace selection, returning from global panels, new sessions and forks, content search, and restart persistence. Content search requires an open host query database; it passed after changing the isolated Profile from openAt: never to startup. This release also passed an isolated rc.2 Web smoke run covering settings loading, seeded archive listing, restore, deletion cancellation and confirmation, and restart persistence with dedicated JSONL data. The full rc.1 browser flow was not repeated item by item. The other three versions have isolated automated coverage only; no external model calls were made. The latest storage fixture isolates only the upstream POSIX fs-ext import that cannot load on Windows; file operations and native Windows locking still use the official implementation.
The installation commands below use the official npm registry.
Ask an agent to install it (recommended)
Send the prompt below to any agent that can run terminal commands on your computer. Replace web with your actual profile. Once installed, use the plugin in DSH.
Install the DSH plugin @michengai/dsh-archive-manager into my local web profile by running: dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm the configuration includes workspace-archive-manager, ui-workspace-archive-manager, and explain how to reload DSH and start using the plugin.
Install the latest package from the official npm registry
Run this from any PowerShell directory:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=https://registry.npmjs.org/
dsh --profile web --dump-config
To pin a release, replace @latest with a specific version such as @x.y.z.
The configuration output should contain workspace-archive-manager and ui-workspace-archive-manager. Restart DSH Web and hard-refresh the browser. Do not copy client files manually: the Settings page and archive menu need the mounted plugin.
Updates
The settings title shows the installed version and a Check for updates button. When a newer release is available, Update automatically runs only when the DSH CLI or Desktop update service is available; otherwise, the dialog provides a profile-specific manual command to copy and run.
Usage
- Open the sidebar session menu and choose Archive session.
- Open Settings → Archived sessions to inspect sessions by workspace.
- Search by title, sort by update time, creation time, or title, or filter the list by project.
- Select Unarchive to restore one session, or select Restore all in the page header.
- Open a project heading's action menu to restore or delete all of that project's archived chats.
- Use the delete icon to remove one session permanently, then confirm the deletion. It cannot be undone.
If the entry is missing after installation or upgrade, restart DSH Web and hard-refresh the browser. It is located directly after Connectors in Settings.
Data handling limits
- Deletion always requires confirmation.
- It removes workspace records, archive markers, and the projection cache. For the official JSONL backend, a validated layout also allows removal of the session-owned directory and its contents, including attachments. Other backends or unknown layouts only lose the located transcript artifact, never its parent directory.
- Project containers and storage roots are retained. Deletion refuses symbolic links or Windows junctions at the official layout's project/session directory levels and keeps the operation retryable.
- Layout validation uses the official backend's initialized absolute root, so a relative root remains stable across host working-directory changes. If that field is unavailable, only an absolute configured root is accepted. An unverified official JSONL layout emits a warning with the session ID and artifact path before falling back to artifact-only deletion.
- Directory validation is not a cross-process filesystem lock: do not concurrently move or replace storage directories or change directory links during deletion. Storage paths writable by untrusted processes are not a security isolation boundary.
- A live session finishes writing before cleanup to prevent data truncation.
- The plugin replaces DSH’s default workspace and projection services. Install through the DSH profile instead of manually composing the patch.
Secondary development
Install from source
Use this for debugging or unpublished changes. The cloned directory becomes the plugin source path:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
Set-Location D:\Repository\deepseek-harness-plugin
git clone https://github.com/MichengAI/dsh-archive-manager.git
Set-Location .\dsh-archive-manager
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add .
dsh --profile web --dump-config
Restart DSH Web and hard-refresh the browser. dsh plugin ... add . reads the package metadata and cordis.patch.yml; do not install by copying lib directly.
src is the sole maintained source directory. pnpm build uses esbuild to compile it into publishable lib output. Do not edit lib directly because the next build overwrites it.
- src\index.js: host service entry point.
- src\workspace.js: archived-session and workspace service.
- src\projcache.js: session projection cache.
- src\client.js: Settings page and archive UI.
test\*.test.mjs: host, client, Remote, and styling coverage.
After changing src, run the tests, confirm that generated lib output is committed with the source, then install from the local directory:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
pnpm test
pnpm pack:check
dsh plugin --profile web add .
pnpm test runs pnpm build first. The build generates all lib output from src in a temporary directory, then atomically replaces the previous output only after a successful build. A failed build preserves the existing lib.
Validation
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
pnpm verify
prepublishOnly runs the full verification suite before publishing and verifies that committed lib output matches the current src build.
License
Licensed under Apache License 2.0.
Before creating or pushing a release tag, run pnpm release:preflight in PowerShell 7 (pwsh). It installs from the official npm registry with a frozen lockfile and the same 1440-minute release-age policy as CI, then runs the full verify suite. Recent dependencies require committed, exact-version exclusions; manual retries never add exclusions dynamically.
Tag releases and manual retries verify the exact npm version and gitHead before creating or updating the bilingual GitHub Release. Network, authorization, or metadata errors stop the flow. Retrying an older tag does not take GitHub Latest away from the npm latest version. These release controls do not change the four supported host versions.
Recovery checks the npm package name, version, and tag commit first. An exact match skips dependency installation, full builds, and republishing, and only synchronizes the Release. Unpublished old tags must still satisfy their original cooling policy. Exact-version and latest propagation each have a two-minute deadline; a lagging latest tag does not create a non-Latest Release prematurely.
Updating main does not retrigger an existing tag. After pushing workflow changes, manually run publish.yml on main with the original tag (for example, v0.1.35); do not move or recreate the tag.
No comments yet. Be the first to write one.