dsh-default-workspace
DSH 插件:点击新对话页工作区前的文件夹图标,一键切回默认工作区
- Stars
- 0
- Language
- JavaScript
- Created
- Oct 22, 2026
- Updated
- Oct 22, 2026
Introduction
dsh-default-workspace
在 DSH 新对话页的工作区选择器上增加一个快捷动作:点工作区名称前的小文件夹图标,直接切回默认工作区。不新增按钮,不改变原有菜单;点文字或右侧箭头仍然打开原来的工作区菜单。
仓库:https://github.com/Subwoofer91/dsh-default-workspace
| 切换前(其他工作区) | 点文件夹图标后(默认工作区) |
|---|---|
![]() | ![]() |
行为
- 只拦截新对话(hero)工作区胶囊最左侧的文件夹 SVG。
- 当前已经是默认工作区时不做任何事,单击仍然打开工作区菜单,方便切到其他工作区。
- 从其他工作区切回时,通过
uiWorkspace.openWorkspace走原有导航流程,并尽量沿用内置选择逻辑迁移草稿和附件。 - 默认工作区通过持久化标题
default-workspace或目录名识别;工作区被改名时,回退到 Host 的initializeDefault()返回的持久身份。 - 找不到默认工作区时完全不拦截,原有菜单行为不受影响。
安装
本插件是标准的 DSH bundle,包含 Host 空壳和 client/client.js 浏览器端实现。把它加入 Desktop profile 的依赖和 bundle 列表即可:
# package.json
"dependencies": {
"dsh-default-workspace": "link:C:\\Users\\Subwoofer\\Documents\\deepseek-harness\\default-workspace\\dsh-default-workspace"
},
"dsh": {
"profile": {
"bundles": [
"...",
"dsh-default-workspace"
]
}
}
然后在 profile 目录执行:
pnpm install
Desktop 的 profile 会在 HMR 可用时自动重组;如果当前进程没有热重载,重启 DSH 后生效。
目录
client/client.js— 浏览器端事件代理、默认工作区解析、导航与草稿迁移。lib/index.js— Host 空壳入口,使 bundle 可以被 Cordis 正常挂载。cordis.patch.yml— bundle 的 Host 行声明。test/behavior.test.mjs— 不依赖浏览器的核心行为测试。
开发与测试
node --test dsh-default-workspace/test/behavior.test.mjs
在这个环境里 Node 测试运行器(node --test)会再 spawn 子进程,可能被 DSH 沙箱以 EPERM 拒绝;直接运行测试文件即可:
node dsh-default-workspace/test/behavior.test.mjs
已知限制
- 依赖内置 hero 工作区胶囊的 DOM 结构(一个按钮内含文件夹 SVG、标签、chevron)。如果上游重做该组件,需要同步调整
folderIconOf。 - 默认工作区被删除后,插件不会重新创建它;此时回退行为是保持原生菜单。

