dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 插件:在设置页按工作区分级清理会话,支持批量删除与 Agent 工具。
给 DeepSeek Harness(DSH)补上官方缺失的会话删除能力:
本插件是社区项目,与 DeepSeek 官方无隶属关系。
设置 → 插件 → 添加插件(Add plugin),粘贴仓库地址:
https://github.com/gcluffy/dsh-session-cleanup-pro
装完重启一次 DSH(首次安装宿主半侧需要重新加载),然后在 设置 → 会话清理 使用。
dsh plugin --profile web add github:gcluffy/dsh-session-cleanup-pro
web 换成你实际的 profile 名。桌面端(Electron)的 profile 只允许应用自己管理,
请在应用内插件管理器里安装。
npm 上已有一个同名项目 dsh-session-delete(其他作者维护),与本插件无关;本插件的包名是 dsh-session-cleanup-pro,请勿用 npm 包名安装。
本插件的 0.2.0 目前只通过 GitHub 分发;若之后以独立包名发布到 npm,这里会补充对应命令。
| 目标 | 位置 |
|---|---|
| 会话日志 | $DSH_HOME/sessions/<project>/<id>/session.vN.jsonl.zstd(整个目录) |
| 投影缓存 | $DSH_HOME/storages/session_projcache/sessions/<id>.json |
| 工作区登记 | 优先走宿主 workspaceRegistry(detachSession / unarchiveSession / unpinSession),没有该服务时退回直接改 workspace.json |
登记走宿主 API 时,DSH 会自己发出 domain/changed;删除完成后插件再让宿主广播一次
api-session/removed,已连接的客户端会立即把该行从会话列表移除——不需要刷新页面。
| 情况 | 表现 |
|---|---|
| 删的是冷会话(不在内存里) | 登记 + 文件 + 推送都完成后,界面即时更新,不需要重启 |
| 删的是运行中会话 | 行会先消失,但宿主 SessionStore 仍持有实例 → 界面提示重启 DeepSeek Harness 彻底释放 |
宿主是否支持即时更新,可以看 GET /dsh-session-cleanup-pro-4c1d/health 返回的 features
是否包含 host-registry 与 emit-removed。
| 工具 | 作用 |
|---|---|
session_delete_list | 分级列出全部工作区与会话(名称 / 大小 / 时间 / 状态) |
session_delete_scan | 只报统计:总数、运行中数量、每个工作区占多大 |
session_delete_remove | 批量删除;返回结果里 needRestart 为真时要提醒用户重启 |
GET /dsh-session-cleanup-pro-4c1d/api/tree → 工作区分级树
POST /dsh-session-cleanup-pro-4c1d/api/delete { ids: [...] } → 批量删除
GET /dsh-session-cleanup-pro-4c1d/health → 探活 + features
package.json 的 engines.dsh);dsh.client.platform: "web";桌面客户端加载的也是同一套 web 客户端;$DSH_HOME。node --experimental-vm-modules tools/syntax-check.mjs # 语法检查
node --test test/ # 全部测试
node test/smoke.mjs # 在真实数据副本上跑删除
node test/dump.mjs # 打印真实扫描结果
smoke.mjs 会把真实的 $DSH_HOME 复制到临时目录再删,不动真实数据。
目录结构:
dsh-session-cleanup-pro/
├── index.js # 宿主半侧入口:HTTP 路由 + Agent 工具
├── client.js # 浏览器半侧:设置分区「会话清理」
├── cordis.patch.yml # bundle 声明
├── src/
│ ├── shared/constants.js
│ └── host/
│ ├── layout.js # 会话在磁盘上的落点
│ ├── registry.js # workspace.json 读写(原子替换 + 串行化)
│ ├── scanner.js # 扫描并分级成树
│ ├── deleter.js # 删除执行(宿主登记 API + 文件 + 推送)
│ ├── service.js # 服务层
│ ├── api.js # HTTP 路由
│ └── tools.js # 3 个 Agent 工具
├── tools/ # 语法检查 / 市场索引生成
└── test/ # 冒烟 / API / 删除 / 配置树 / 客户端翻译测试
本仓库按 dsh-plugin.org 的收录要求组织:
package.json(包名、版本、engines);apply(ctx));GitHub 仓库需要添加 topic dsh-plugin,站点才会自动发现与收录;提交入口:
https://dsh-plugin.org/zh/submit。
注意:想出现在 DSH 应用内的「插件中心」,还需要把 0.2.x 发布到 npm; 只发 GitHub 时仍会被站点收录,安装方式为
dsh plugin --profile web add github:gcluffy/dsh-session-cleanup-pro。
A DSH plugin that adds real session deletion: a Settings → Session cleanup section listing
sessions grouped by workspace with search, multi-select and batch delete, plus three agent tools
(session_delete_list, session_delete_scan, session_delete_remove). Deletion removes the
session log directory, its projection cache and the workspace record (through the host registry),
then broadcasts api-session/removed so the UI updates without a restart. Running sessions still
need a DSH restart before the host releases them.
Install with the in-app plugin manager (paste https://github.com/gcluffy/dsh-session-cleanup-pro) or:
dsh plugin --profile web add github:gcluffy/dsh-session-cleanup-pro
Requires DSH ≥ 0.2.1-rc.1. MIT licensed. Not affiliated with DeepSeek.
MIT