DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

LucasCaleb-ggg /

LucasCaleb-ggg/dsh-session-cleanup

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@a4496e09

Session Cleanup for DeepSeek Harness

A maintenance panel for DSH that does what "archive" never could: actually delete sessions — the event log, the projection cache and the workspace record.

DSH only archives. The row disappears from the sidebar, but session.v4.jsonl.zstd stays on disk forever and the archived id stays in storages/workspace.json; the shipped log backend has no delete seam. This plugin adds the missing surface.

Session cleanup panel

Features

  • Workspace → sessions list. Every session shows its title, id, size, last activity, and whether it is archived, running or log missing.
  • Batch delete. Tick any number of sessions, confirm once, done. Running sessions are refused (they still have a turn, subagents, jobs or schedules).
  • Direct delete from the session menu. The sidebar's … menu gains a Delete permanently… row that opens a confirmation dialog — no detour through the panel.
  • Workspaces. Delete a workspace registration, optionally with its directory on disk (guarded against drive roots, the user profile, the DSH home, and directories that contain another workspace).
  • Unregistered sessions. Logs that no workspace lists anymore are shown in their own group, so they can be cleaned too.
  • Consistent while it runs. Deletion goes through workspaceRegistry.detachSession / unarchiveSession (so the Host's in-memory table stays in sync with workspace.json) and then emits api-session/removed, so the sidebar drops the row immediately instead of re-filing it under "Ungrouped" until the next restart.

Delete confirmation dialog

Install

From GitHub:

dsh plugin add https://github.com/OWNER/dsh-session-cleanup

Or from a checkout of this repository:

dsh plugin add /absolute/path/to/this/directory

The plugin is a plain-JS bundle (no build step). It registers a session-cleanup row in your DSH profile.

Use

  • Sidebar → Session cleanup icon (between Plugin market and Schedules) → full page.
  • Or any session's … menu → Delete permanently…

Deleting removes three things for each session:

  1. $DSH_HOME/sessions/<workspace-key>/session-<id>/ (the event log)
  2. $DSH_HOME/storages/session_projcache/sessions/session-<id>.json
  3. the id in $DSH_HOME/storages/workspace.json (sessionIds and archivedSessionIds)

Nothing is touched until you tick I understand this cannot be undone.

Safety

  • Running sessions are refused, with the reason shown in the UI.
  • Session ids are validated before any path is built.
  • Directory deletion refuses drive roots, directories containing your user profile or the DSH home, and directories that contain another registered workspace.
  • Attachments (.dsh/attachments) are never touched — shared blobs can belong to other sessions.

Known limits: a deleted session is not cascaded to its subagent children; deleting a session that is currently open in a tab leaves that tab pointing at a log that no longer exists.

Requirements

  • DeepSeek Harness 0.2.x with the Web GUI
  • Host services webServer, connection, workspaceRegistry, agents

Development

Plain ES modules, no bundler:

  • index.js — Host half: /session-cleanup/api/{state,delete,delete-workspace}, all filesystem work.
  • client.js — Client half: the main panel, the sidebar.panellist icon, the session-menu row and the shell.overlay dialog.
  • cordis.patch.yml — inserts the session-cleanup row.
  • locale/*.json — display metadata (Plugin Manager / market).

License

MIT — see LICENSE.

—/ 5

No ratings yet

Verified DSH bundle

Commit a4496e092f0d

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout