workspace-batch-manager
No description
- Stars
- 0
- Language
- Shell
- Created
- Aug 23, 2026
- Updated
- Aug 23, 2026
Introduction
dsh-workspace-batch-manager
给 DeepSeek Harness 的 工作区列表 添加批量管理能力(内联购物车式):在工作区标题旁进入管理模式,批量勾选工作区/会话,一键归档或删除。
重要:这是一个「源码补丁(source patch)」,不是可安装插件。 原因:DSH 当前架构没有向外暴露"工作区列表内部"(列表头、每行勾选框、管理工具条)的 UI 扩展点——
sidebar.workspaces是一个被核心包独占的单例槽,只留了一个与批量勾选无关的目录选择器子洞。要在这里做内联交互,只能直接改动ui-workspace包源码。因此本仓库以标准git patch形式分发,需要你把补丁打进自己的 DSH 源码后重新构建。
功能特性
- 管理模式入口:工作区列表标题右侧的清单图标按钮进入/退出管理模式。
- 淘宝购物车式选择:每个工作区与会话行首出现勾选框;勾选工作区自动级联选中其下全部会话(工作区支持半选态)。
- 内联动作条:管理态下,列表上方出现
已选 N 项|全选 归档 删除 退出管理。 - 全选 / 取消全选:一键全选所有工作区与未归档会话。
- 批量归档:归档选中会话(工作区容器保留)。
- 批量删除:删除选中工作区注册(其下会话落入"未分组"保留);会话则归档。
- 并发安全:批次操作受"处理中…"锁保护,避免连点;失败项红字提示。
适用版本
- 目标基线:DeepSeek Harness
v0.1.1-rc.2(git commitb150a551b8)。 - 其他版本因源码结构不同,
git apply可能产生冲突,需手动调整。
安装(一步补丁 + 两步构建)
要求:DSH 以 git 克隆方式管理(C:\dsh-build),且工作树相对基线无其他改动。
# 1) 应用补丁(自动定位 DSH 仓库根)
bash apply-batch-manager.sh
# 等价于:在 DSH 仓库根执行 git apply patch/workspace-batch-manager-v0.1.0.patch
# 2) 重新构建
cd C:\dsh-build
pnpm build
# 3) 重启 DSH web 服务并强刷浏览器(Ctrl+Shift+R)
管理模式下左侧"工作区"标题右侧即出现批量管理图标。
回滚
bash rollback-batch-manager.sh
# 等价于:git apply --reverse patch/workspace-batch-manager-v0.1.0.patch
cd C:\dsh-build && pnpm build
语义说明(重要,别踩坑)
| 操作 | 对工作区 | 对会话 | 数据去向 |
|---|---|---|---|
| 归档 | 容器保留 | 会话加进"已归档隐藏集合" | 数据仍在(SQLite),但当前 DSH 无任何查看/恢复归档的界面,本质是"永久隐藏" |
| 删除 | 销毁注册记录(path/title/sessionIds/时间) | 仅失去归属,不删除 | 会话落入"未分组",仍可见可处理 |
归档在数据层可逆,但在 UI 层没有恢复入口。请把"归档"当作"从列表永久隐藏"使用;需要保留可见的会话请用"删除工作区"(降级到未分组)。
为什么不能上 npm / dshmarket
DSH 生态的"插件市场"(npm + awesome-dsh-plugin.com/dshmarket + GitHub topics)面向独立可安装插件(例如
dsh-skill-cockpit,它挂在开放列表槽 settings.section)。本功能所需的"内联进工作区列表"没有对应扩展点,故不满足独立插件形态,仅提供源码补丁分发。
目录结构
workspace-batch-manager-publish/
├── README.md # 本文档
├── LICENSE # MIT
├── apply-batch-manager.sh # 打补丁脚本
├── rollback-batch-manager.sh # 回滚脚本
└── patch/
└── workspace-batch-manager-v0.1.0.patch # 标准 git 补丁(5 个文件)