Bundle
dsh-session-vault
DeepSeek Harness settings page to list and delete archived or blank sessions, including @ mention candidates.
- Source
- nateyu
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-session-vault English | [中文](README.zh.md) A DeepSeek Harness settings plugin. It lists and deletes sessions the sidebar hides: archived sessions, or blank sessions whose log has no `turn/start`. A session whose log cannot be read is listed too, marked “Unreadable” — this page is the only surface left that can remove it. Subagent sessions are excluded. Deleting a session: - disposes any live agent / session so the next flush cannot rewrite the files and so `@` mentions no longer list it - removes the JSONL session directory (`$DSH_HOME/sessions/.../<session-id>/`) - drops the id from workspace `sessionIds` and the global `archivedSessionIds` set The settings nav label follows the product locale: 「归档」 in Chinese, “Archive” in English. The list can be filtered by kind and date, and is paginated. This plugin does not create a directory under `$DSH_HOME` and does not write a settings namespace. ## Install ```sh dsh plugin --profile web add dsh-session-vault ``` From a local checkout: ```sh dsh plugin --profile web add /path/to/dsh-session-vault ``` Restart `dsh web`, then open Settings. ## Usage - The session you are currently viewing cannot be deleted; switch away first. - A `running` session is refused. - Deletion asks for confirmation and cannot be undone. ## Develop ```sh npm install npm test ``` `npm install` builds the browser bundle (`client/client.js`). After changing files under `client/`, run `npm run build:client` and refresh `dsh web`. ## Uninstall ```sh dsh plugin --profile web remove dsh-session-vault ``` Restart `dsh web`. ## Limits - Requires the JSONL persistence backend (`dsh web` default). Delete refuses any backend whose `locate()` does not answer `kind: 'jsonl'` with a session-owned directory, so a store with no per-session files (SQLite) or a shared artifact is never removed. - Deletes go through Connection RPC; the Host mounts the channel on `webServer` and Connection's browser session still authenticates the request. - One `vault.delete` call accepts at most 200 ids. - Removing an id from the archive ledger has no published API upstream (`archiveSession` ships without a counterpart), so `lib/registry-compat.js` writes `WorkspaceRegistry` state directly. That write does not run on the registry's own operation queue: a workspace mutation landing in the same instant is reported as `registry-unsupported` rather than silently overwritten. A DSH build that changes those internals fails loud instead of leaving a deleted session archived.
Install
dsh plugin --profile web add github:nateyu/dsh-session-vault
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-session-vault from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.