Foreword¶
Running agents with DeepSeek Harness (DSH) leads to accumulating conversations: in the same workspace, branches, sub-agents, archived and unarchived sessions are mixed together. The sidebar only allows selecting items one by one, making batch organization and viewing disk usage inconvenient. The official sidebar has also restricted the row menu since version 0.1.0-rc.8, with the delete entry no longer open to plugins.
dsh-archived-sessions is a DSH Web plugin (SkillHub category: Memory) maintained by the community member Zephyr-vibe. It provides a “Session Management” panel in the “Settings,” centralizing all local conversations for browsing, searching, archiving, restoring, and deleting, and supports opening the session record directory. The current version is 0.1.5, licensed under MIT, with about 17 stars on GitHub.
What Is This¶
In one sentence: A session manager for the DSH Web interface that reads the official session directory layout with zero configuration, without modifying the DSH core.
The plugin automatically identifies sessions based on the $DSH_HOME/sessions/<project-key>/<session-id>/ structure. Archiving and restoring use the same registry state primitives as the official archiveSession. Custom logic such as deletion and detail querying is handled through the plugin’s own APIs, which only trust local requests (127.0.0.1 / localhost / ::1) and only call official public APIs (e.g., workspaceRegistry, sessionPersistence).
Core Features¶
Dual Tabs and Two Views¶
The settings panel is divided into two tabs:
- All Conversations: Unarchived sessions.
- Archived Conversations: Archived records that can be “Removed from Archive” to return to “All Conversations.”
Each tab offers view switching:
- Single List: Sorted by title and relative time, with the most recent first.
- Grouped by Workspace: Sessions without workspace affiliation are placed under “Ungrouped.”
The top search box supports real-time filtering by title or ID.
Batch Operations and Detail Expansion¶
Supports checkbox selection, drag-to-select, select all, and batch archive (record retained) and batch delete (permanent deletion with a confirmation dialog). Large batch operations are executed in batches (20 per batch) to avoid overwhelming the browser when hundreds are selected.
Each row can be expanded to show details (collapsed by default), including:
- Disk usage and last updated time.
- Activity statistics: turns, steps, message count, tool call distribution, fetch records.
- Output/download file list (tree folder view, toggleable to show full path).
- Parent and child session (branch) associations; sub-agent sessions are nested under the parent row (indented + “Sub-agent” badge), and if the parent session is missing, it automatically surfaces as a top-level row.
- The currently open session shows a “Current Session” badge and cannot be deleted.
Safe Deletion¶
Deleting a parent session does not cascade by default: sub-agents, branches, and download/output files are retained unless explicitly checked. Both the settings panel and batch deletion include confirmation dialogs.
Since DSH 0.1.0-rc.8, the official sidebar row menu (⋮) no longer exposes plugin injection points (only rename, branch, and archive remain). The plugin injects the “Delete Session” entry into the title bar of the opened session (trash icon) via the official conversation.session.header.actions slot. The confirmation dialog allows granular selection of:
- Sub-conversations (sub-agents, including grandchild levels).
- Download/output files (can be deleted by folder; the workspace root directory cannot be deleted as a whole).
By default, none are checked, so only the session itself is deleted. Running sessions cannot be deleted (HTTP 409).
Open Record Folder¶
After selecting a session, you can click “Open Record Folder” to open that session’s record directory in the system file manager. Cross-platform calls are made to explorer (Windows), open (macOS), xdg-open (Linux). Sessions without a working directory also support the _no-cwd layout.
Installation and Enabling¶
Two installation methods are described below; choose either.
Method 1: Direct Tarball Installation¶
dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-archived-sessions/tar.gz/refs/heads/main
If pnpm intercepts the build script, add --ignore-scripts at the end of the command:
dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-archived-sessions/tar.gz/refs/heads/main --ignore-scripts
Method 2: Let the Agent Install¶
Tell the DSH agent:
Help me install this project as a plugin: https://github.com/Zephyr-vibe/dsh-archived-sessions
The agent will download the project, place it in the profile’s node_modules, and register it in dsh.profile.bundles.
After installation, restart the Web interface, and the “Session Management” entry will appear in “Settings.” The plugin requires Node.js >= 20 and peer dependencies on DSH 0.1.0-rc.6 or later client/host components.
Typical Use Cases¶
Organize Historical Conversations: Open Settings → Session Management → “All Conversations,” switch to “Grouped by Workspace,” check sessions under a workspace that are no longer needed, and click “Archive”; records are retained, and the sidebar no longer displays them.
Retrieve Archive: Switch to the “Archived Conversations” tab, select an entry, and click “Remove from Archive.”
View Session Output: Expand a row’s details to confirm tool calls and output paths in the activity statistics and file list; when manual inspection is needed, select the session and click “Open Record Folder.”
Delete a Single Session (rc.8+): Open the session in the Web interface, click the trash icon in the title bar, check sub-conversations or files as needed in the dialog, and confirm deletion.
Locate by ID: Enter a fragment of the session ID in the search box; the list filters in real-time to the target row.
Applicable Scenarios and Notes¶
Suitable for developers who need to centrally manage local DSH conversations: running multiple workspaces long-term, frequent branching and sub-agent usage, needing visible disk usage, or wanting to safely delete sessions after rc.8.
Please note before use:
- The plugin runs with the current
dshprocess permissions, capable of reading/writing session directories and calling host APIs; review the source code and MIT license before installation to ensure it aligns with your security policies. - Batch deletion is irreversible; carefully review the sub-conversation and file options in the confirmation dialog before checking them.
- The detail API has limits for files and fetch records (files ≤ 200, fetch ≤ 50); very large sessions may not display all items at once.
- This plugin comes from the community directory SkillHub and has no official affiliation with DeepSeek or High-Flyer; the DSH ecosystem follows the “everything is a plugin” philosophy, and community plugins require independent compatibility assessment.
Links¶
- SkillHub directory page: https://www.skillhub.cn/plugins/Zephyr-vibe/dsh-archived-sessions
- GitHub repository: https://github.com/Zephyr-vibe/dsh-archived-sessions
If you are already using DSH and your session count is growing, this plugin consolidates archiving, searching, details, and safe deletion into the settings page, making it more controllable than operating item by item in the sidebar.