DSH Plugins Marketplace

DSH Plugins

Plugins

/

Sessions & Messages

/

dsh-delete-chat

y

dsh-delete-chat

Manifest valid★ 15

Archive, unarchive, and delete sessions from a settings page.

UI (client)hasBundlePatch

dsh-delete-chat

A DeepSeek Harness session manager: a settings page that lists every session and lets you archive (hide), unarchive (restore), and permanently delete sessions.

一个 DeepSeek Harness 会话管理插件:在设置页中列出全部会话,并支持归档(隐藏)、取消归档(恢复显示)与永久删除会话。

What it does / 功能

  • List every session with its title, working directory, and creation time, split into archived and active groups.
  • Archive a session to hide it from the sidebar. The log is kept, so archiving is fully reversible.
  • Unarchive a session to make it visible again.
  • Delete a session permanently: removes its persistence log file, then detaches it from workspace accounting and from the archive set.

Install / 安装

dsh plugin --profile web add dsh-delete-chat

The package declares dsh.bundle.patch, so the command installs it and reconciles it into dsh.profile.bundles — no profile file editing. Restart dsh web to mount it.

Usage / 使用

Open Settings → 会话管理 (Session Manager).

Safety / 安全边界

  • Archive is not delete. Archiving only hides a session; its log stays on disk and 取消归档 restores it.
  • Live sessions cannot be deleted. A running session's delete button is disabled, and the host refuses the call even if it is reached directly.
  • Delete is permanent and two-step. The first click shows the exact file path that will be removed; only a second click deletes anything.
  • Only the session's own artifact is touched. The host resolves the path through sessionPersistence.locate(), refuses anything whose filename is not session.jsonl*, and refuses backends that expose no per-session artifact (for example a SQLite store).
  • Sandbox-aware. Session files live under $DSH_HOME/sessions, outside the workspace. If the host's shell sandbox denies the removal, the plugin surfaces that denial instead of forcing it, and the file can be deleted by hand.
  • Search index. A deleted session disappears from the session list immediately; a full-text search index may keep a stale row until the next DSH restart, which is the documented reconciliation point.

Architecture / 结构

One dual-face package:

PieceFileRole
Host pluginlib/index.jsapply(ctx) provides the delChat service
Host manifestlib/typert.host.jsthe ./typert Typert contribution that exposes delChat over the gateway
Browser pluginlib/client.jsthe settings.section page, mounted through exports["./client"]
Mountcordis.patch.ymlone insert row: del-chat → dsh-delete-chat

The browser half reaches the host through remote.delChat.*. The host half imports no @deepseek-ai/* runtime package — it reads the host process's own services with ctx.get(...) and binds itself to the gateway with a hand-written typertRemote binding, so no code-generation step is needed to build this plugin.

Exposed Remote methods:

delChat.list()                      → { sessions: [...] }
delChat.archive({ sessionId })      → { archivedSessionIds: [...] }
delChat.unarchive({ sessionId })    → { archivedSessionIds: [...] }
delChat.inspectDelete({ sessionId })→ { deletable, reason, path, dir }
delChat.deleteSession({ sessionId })→ { path }

Development / 开发

npm install
npm run build     # esbuild → lib/index.js, lib/typert.host.js, lib/client.js
npm test          # structural validation of both halves

npm run build writes the published artifacts:

  • lib/index.js — the host plugin, bundled to ESM.
  • lib/typert.host.js — copied verbatim from src/typert.host.js.
  • lib/client.js — the browser bundle wrapped in the window.__ModuleLoader__.load({ id, factory }) envelope the DSH client module system executes, with react left external for the shell's static module table.

npm test imports the built host half against a mock Cordis context (exports, provided service, typertRemote binding, manifest shape) and executes the built browser bundle against a fake window.__ModuleLoader__ plus a react shim, asserting the registration id, the exports, the Remote descriptors, and the settings.section registration.

License

MIT

Compatibility

DSH 0.2.1-rc.4: failedDSH 0.2.1-alpha.1: failedDSH 0.2.1-alpha.4: failed

Versions

Latest versionPublishedSize
0.1.0——
0.1.1——

Comments

Loading…

Similar plugins

dsh-delete-session

by Lzcdebear

Delete sessions, not archive them

Sessions & MessagesManifest valid

★ 9

↓ 466/wk

MIT

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-session-delete

by MS666666

Archive manager for DSH Web: list archived sessions in the Settings page and delete them for real, including their log, archive marker, and projection cache.

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 1

↓ 124/wk

MIT

JavaScript

Sep 28, 2026

dsh plugin --profile web add dsh-archive-manager-plus

by joyboy-yy

Keeps archived sessions out of the DSH conversation list and adds a panel to restore them or delete them permanently - session log, archive and pin records, and projection cache.

Sessions & MessagesManifest valid

★ 0

MIT

JavaScript

Oct 16, 2026

dsh plugin --profile web add dsh-archive-purge

Session management for DSH: archive or delete one session, archive/delete all sessions in a workspace, and restore archived sessions from the settings page — archiving backs up workspace metadata and

Sessions & MessagesManifest valid

★ 0

↓ 283/wk

dsh plugin --profile web add dsh-session-delete

Manage archived conversations in the Settings UI: unarchive them back to the sidebar, or permanently delete them with confirmation.

Sessions & MessagesManifest valid

★ 0

↓ 285/wk

MIT

JavaScript

dsh plugin --profile web add dsh-plugin-archived-conversations

by DDDMUC

Delete sessions from the DSH Web sidebar: adds a Delete action to the session row menu with a risk-consent dialog, then removes the session log, workspace accounting and live session state.

Terminal & ClientsManifest valid

★ 18

↓ 229/wk

MIT

JavaScript

Oct 28, 2026

dsh plugin --profile web add dsh-delete-session