Introduction¶
In DSH’s web profile, if you need to clean up the disk directory for a specific archived session under $DSH_HOME/sessions instead of just retaining its record in the interface, dsh-archive-manager provides a sidebar entry. It lists archived sessions, requires double confirmation, and then deletes the corresponding session directory.
Below, we introduce what it is, what it can do, how to install it, and the limitations to note before using it.
What is it¶
dsh-archive-manager is maintained by zimixvx and is licensed under the MIT license. It is an out-of-tree DeepSeek Harness Web Cordis plugin targeting the web profile.
It does not modify the DSH core installation nor the profile configuration; the only persistent impact on $DSH_HOME is deleting the selected session directory under $DSH_HOME/sessions after user confirmation.
The plugin is split into two halves:
- The host half registers
POST /archive-manager/delete; - The client half registers
sidebar.footer.action, whereid: archive-managerandorder: 80.
Core Features¶
-
Adds an archive management action in the sidebar footer. In wide mode, it displays
Archived N; in a narrow sidebar, it only displays an archive icon. -
After opening the popup, it lists only session IDs that still have a session summary in
archivedSessionIds, displayingdisplayTitle(or ID),cwd, andupdatedAt. -
Provides a trash button for each row. It requires double confirmation before deletion, clearly stating that the session directory will be permanently deleted and cannot be recovered.
-
After successful deletion, the plugin refreshes
sessionsandworkspaces. The local deleted-id set also immediately hides that row.
Installation and Enablement¶
Install from GitHub¶
Add the plugin to the web profile:
dsh plugin --profile web add "github:zimixvx/dsh-archive-manager"
Install from Local Path¶
If the plugin directory is at:
D:\Code\DeepseekHarness\plugins\dsh-archive-manager
You can run:
dsh plugin --profile web add "D:\Code\DeepseekHarness\plugins\dsh-archive-manager"
This command writes to dependencies. Subsequently, you need to add dsh-archive-manager to dsh.profile.bundles in $DSH_HOME/profiles/web/package.json:
{
"name": "dsh-profile-web",
"private": true,
"dependencies": {
"dsh-archive-manager": "file:D:/Code/DeepseekHarness/plugins/dsh-archive-manager"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-archive-manager"
]
}
}
}
The key here is the bundles list; specific entries in dependencies are written by the dsh plugin --profile web add command.
Restart the web profile¶
Running processes do not read new bundle lines, so you need to restart the web profile after installing or uninstalling:
dsh web
After refreshing the page, the archive management action will appear in the sidebar footer.
Typical Usage¶
-
In the restarted
webprofile page, click the archive management action in the sidebar footer. -
Select an archived session in the popup. The list only contains session IDs that still have a session summary in
archivedSessionIds. -
Click the trash button on that row and confirm permanent deletion in the second confirmation.
-
The plugin initiates a same-origin
POST /archive-manager/delete. Upon success, it refreshessessionsandworkspaces; even if subsequent refreshes fail, the local deleted-id set will immediately hide that row.
Applicable Scenarios and Notes¶
Suitable for developers who need to manually clean up the disk directories of archived sessions in the DSH web profile. It only handles archived sessions, does not replace workspace registry management, and does not handle shared attachments.
Be sure to check the source code and license before use. This plugin runs with the permissions of the current dsh process; please confirm you trust the code and understand that the directories it deletes are located at $DSH_HOME/sessions before installing.
The limitations are as follows:
- Only allows deletion of sessions present in
workspaceRegistry.archivedSessionIds; live sessions will be rejected, returning HTTP409. - Requires raw-artifact backend:
supportsRawArtifacts === trueandlocate()returns{ kind: 'jsonl', path }; otherwise, the route returns501. - Deletion is simply a recursive
rmon the session directory withforce: false; it is not recoverable and has no trash or restore path. - Does not modify the workspace registry, archived markers, projection cache, or content-addressed/shared attachments.
- After successful deletion, markers in
archivedSessionIdsare retained as designed. Since the popup only lists archived IDs that still have a session summary, and physical deletion removes the summary, they will not appear again after reloading. - The plugin has no own durable state. To uninstall, remove
dsh-archive-managerfromdsh.profile.bundlesanddependencies, then restart.
Links¶
- GitHub: https://github.com/zimixvx/dsh-archive-manager
- Community Directory Page: https://www.skillhub.cn/plugins/zimixvx/dsh-archive-manager