dsh-archive-manager
by zimixvx
极简树外 DeepSeek Harness Web Cordis 插件:从侧栏永久删除归档会话的磁盘目录
A minimal out-of-tree DeepSeek Harness Web Cordis plugin that permanently deletes the on-disk session directory of an archived session from the sidebar.
安装
dsh plugin --profile web add github:zimixvx/dsh-archive-managerGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
A minimal out-of-tree DeepSeek Harness Web Cordis plugin that permanently deletes the on-disk session directory of an archived session from the sidebar.
It does not modify the DSH core installation or any profile configuration.
The only durable effect on $DSH_HOME is the intended one: after the user
confirms, it deletes the selected session directory under
$DSH_HOME/sessions. No other DSH durable state (workspace registry,
projection cache, shared attachments) is written. The host half owns one HTTP
route; the client half adds a sidebar footer action that lists archived
sessions and deletes them after an explicit second confirmation.
What it does
- Host half (
index.js) registersPOST /archive-manager/delete. - Client half (
client.js) registers asidebar.footer.actionlist entry (id: archive-manager,order: 80). Wide mode shows the label已归档 N; the narrow rail shows only the archive icon. - The modal lists only the ids in the workspace registry's
archivedSessionIdsthat also have a session summary in the client session baseline, displayingdisplayTitle(or the id),cwd, andupdatedAt. - Each row has a trash button. Deleting requires a clear second confirmation stating that the session directory will be permanently deleted and cannot be restored.
- Deleting issues a same-origin
POST /archive-manager/deleteand, on success, refreshes bothsessionsandworkspaces. A local deleted-id set hides the row even though the archived marker is intentionally left intact.
Install
This is an out-of-tree plugin: place it on disk and install it into the
existing web profile.
Option A — install from GitHub
dsh plugin --profile web add "github:zimixvx/dsh-archive-manager"
Option B — install from a local path
With the plugin directory at D:\Code\DeepseekHarness\plugins\dsh-archive-manager:
dsh plugin --profile web add "D:\Code\DeepseekHarness\plugins\dsh-archive-manager"
Then add the plugin to the web profile's bundle list 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 exact dependencies entry is written by dsh plugin --profile web add;
only the bundles list needs the manual addition.
The plugin's cordis.patch.yml (declared via dsh.bundle.patch) inserts the
host row:
- insert:
- id: archive-manager
name: dsh-archive-manager
Restart
A running process does not pick up new bundle rows, so restart the web profile:
dsh web
After a page refresh, the sidebar footer shows the archive-management action.
Safety and limitations
- Only archived sessions. The route refuses any id not present in
workspaceRegistry.archivedSessionIds. - Live sessions are refused — checked before the persistence lookup and
again immediately before the
rm, with HTTP409. - Raw-artifact backend required. The persistence backend must advertise
supportsRawArtifacts === trueand alocate()returning{ kind: 'jsonl', path }. Otherwise the route answers501. - Deletes the session directory only.
rm(dirname(location.path), { recursive: true, force: false })removes the directory that holds the session's JSONL log (and any session-local files inside it). It does not modify the workspace registry, the archived markers, the projection cache, or content-addressed attachments (which live in a separate shared store and are shared across sessions). - Stale archived markers. After a successful delete, the archived marker in
archivedSessionIdsremains by design (removing it would mutate the registry). Because the panel only lists archived ids that still have a session summary, and the physical deletion removes that summary, the leftover marker does not reappear after a page reload. A local deleted-id set also hides the row immediately even if the follow-up refresh fails. - Not reversible. The deletion is a recursive
rmwithforce: false. There is no trash or restore path.
Uninstall
Remove dsh-archive-manager from the profile's dsh.profile.bundles (and from
dependencies), then restart. The plugin adds no durable state of its own, so
there is nothing else to clean up.
License
MIT — see LICENSE.
原始 README: https://github.com/zimixvx/dsh-archive-manager/blob/main/README.md ↗
同类插件
查看全部 →
dsh-anchored-standard
两阶段 DeepSeek Harness 预设:先 Minimal 对齐的 bootstrap,再切完整 Standard 工具(Project2 98/99)

PicGo-Core
极致的图片上传引擎,CLI 与 API 双支持

awesome-deepseek-harness
DeepSeek Harness(DSH)及其优秀社区插件的精选指南。

awesome-deepseek-harness
DeepSeek Harness (DSH)生态系统:来自dsh-external/hub和公共dsh-plugin主题的精选插件、工具和基础设施。

AI-Novel-Writer
本地优先 AI 小说创作工作台,提供 Windows/macOS 桌面版与 DeepSeek Harness 插件开发预览,支持角色、大纲、章节蓝图、审稿修稿和本地模型。

mcp-for-stata
MCP-for-Stata:把 Stata 集成进你的 agent