Introduction¶
DeepSeek Harness (DSH) v0.1.2-alpha.5 natively supports renaming, forking, and archiving sessions, as well as renaming or deleting workspace registrations. However, it lacks two key features: permanently deleting sessions and re-managing sessions after archiving (for example, renaming or deleting archived sessions). The dsh-sess plugin fills these gaps.
Plugin Overview¶
dsh-sess is a global session management plugin for DeepSeek Harness. It provides sidebar session deletion and workspace archive management (renaming, restoring, and deleting) through the native Web UI. It is mounted to the profile through the official Profile Bundle + Cordis mechanism and never modifies DSH source code.
Core Features¶
- Session listing and lookup: Displays the session list in the “All Sessions” tab. It mirrors the sidebar projection and shows title, activity time, workspace, and running/idle flags.
- Session identification and metadata: Shows the persisted title (falling back to the ID), workspace membership, archived status, and activity time.
- Permanent deletion: Provides a “Delete Session” option in the “All Sessions” tab and in the menu of each sidebar session row. This operation applies only to cold sessions (sessions not in a running process) and rejects in-progress sessions (
agent-busy). - Archived session management: Lists archived sessions in the “Archived” tab and allows renaming and deleting them.
- Session persistence and recovery: Existence checks are performed through the official
ctx.sessionPersistence.list()API. Deletion is performed through the officiallocate()API. After DSH restarts, each session becomes cold and can be deleted. - Workspace association: Displays the workspace title. Deletion releases workspace accounting through the official
workspaceRegistrydetach API. - Safe handling of abnormal sessions: Rejects malformed IDs; returns
session-not-foundfor unknown sessions; rejects running sessions; rejects unsafe artifact paths before touching files.
Installation and Enabling¶
This plugin is intended for the Web UI and requires DSH v0.1.2-alpha.5 and Node.js ≥ 20.
Install it to the profile running the Web UI:
dsh plugin --profile web add dsh-sess
After installation, stop dsh web and restart it. The Settings page now includes a “Session Manager” section.
Usage¶
- Open settings: Open Settings -> Session Manager.
- Manage all sessions:
- The “All Sessions” tab shows all non-subagent sessions.
- Running sessions are marked and cannot be deleted.
- In the session row menu, choose Archive to move it to the “Archived” tab.
- Manage archived sessions:
- Switch to the Archived tab.
- Use the inline editor to rename an archived session.
- Use the confirmation flow to delete an archived session.
- Delete cold sessions:
- Switch to the “All Sessions” tab.
- Find a cold session (not marked as running).
- Choose Delete Session in the row menu.
- Confirm the deletion.
Notes¶
- Unarchiving is not supported: The official workspace archive set is one-way. Archived sessions cannot be restored.
- Running sessions are rejected: Running sessions cannot be deleted to avoid corruption. Close the session or restart DSH (which makes each session cold) and try again.
- Subagents are not shown: Subagent sessions belong to their parent sessions and are therefore not shown here.
- Sidebar latency: Sidebar updates may require refreshing or restarting DSH to reconcile.
- Orphaned archive markers: Orphaned archive markers are inactive and never rendered.
- Web UI only: This plugin is intended only for the Web UI.
Conclusion¶
dsh-sess provides the cleanup and re-management capabilities missing from the native DSH management workflow. It strictly relies on official APIs to ensure compatibility with the DSH core.