DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

longyi-0x0 /

longyi-0x0/dsh-workspace-sidebar

Verified

DSH 侧栏「工作区」覆写插件:分叉会话树、批量归档与置顶排序,基于官方 ui-workspace 源码。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@9313e93c

dsh-workspace-sidebar · 工作区侧栏覆写插件

DSH(DeepSeek Harness)Web 客户端的侧栏「工作区」覆写插件。它整块接管侧栏的工作区浏览区域、会话主视觉区的工作区选择器,以及会话行菜单与悬停按钮的插槽,替换 DSH 自带的 ui-workspace。分叉会话树、工作区批量归档这些改动直接落在源码里,不是对官方包的外层包装。

安装后侧栏与选择器就是本插件的实现;自带的 ui-workspace 由本插件的 bundle patch 关闭,不会再有两套注册同时挂在同一批插槽上。

接管哪些界面

位置 内容
侧栏工作区区域 工作区分组 / 分组树 / 扁平三种浏览方式,工作区与嵌套工作区的展开、拖拽重排、新建、重命名、删除,会话列表与搜索
会话行 展开水位线(「显示更多」/「收起」)、置顶与手动排序、运行 / 待处理 / 完成提醒、定时任务标记、归档过滤,以及行菜单与悬停按钮
会话行插槽 sidebar.workspaces.session.menu.item、sidebar.workspaces.session.row.action、sidebar.session.row.leading 等由本插件声明并注册内置动作,其他客户端插件照常往里加
会话主视觉区 新会话的 Workspace 选择器(conversation.hero.workspace),含组合式目录选择器插槽
提示层 行内操作的 toast(workspace.toast)与确认对话框

宿主侧没有业务逻辑:index.js 的 apply 为空,只为满足 Loader 对一行插件的形状要求。

相对上游的改动

基于 @deepseek-ai/dsh-client-ui-workspace 0.2.1-rc.5 的源码副本,当前有这些改动:

改动 行为
分叉会话树 子会话按 parentId 嵌套在父行下,父行在前、子行逐代缩进,祖先竖线在分支末尾渐隐;不改变上游的排序与水位线语义
分支折叠 有子行的会话显示折叠箭头,点击收起或展开整条分支;折叠状态存在浏览器本地的视图 store(dsh.workspace.view.v5),刷新后保留
前导格 折叠箭头与运行圆点共用 16px 前导格:空闲分支显示箭头,运行中的行显示圆点,悬停运行中的分支把圆点换回箭头,仍可折叠
分叉标题 fork 时不再递增标题的 (n) 后缀——分支关系已经由树表达,重复的后缀没有信息量
归档全部会话 工作区标题行新增「归档全部会话」按钮(有会话时才出现),跳过运行中和空白的会话,完成后用 toast 报出归档与跳过的数量,并带「显示已归档」入口
样式热替换 客户端样式注入改为先移除上一代 style 标签,rebuild 之后不再沿用旧 CSS

安装

产物 client.js 已提交,从 GitHub 或本地链接安装都不需要现场构建。

# 从 GitHub 安装
dsh plugin --profile desktop add "github:longyi-0x0/dsh-workspace-sidebar"

# 或链接本地检出
dsh plugin --profile desktop add "link:/path/to/dsh-workspace-sidebar"

macOS 桌面版没有把 dsh 放进 PATH 时用完整路径:

"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
  plugin --profile desktop add "github:longyi-0x0/dsh-workspace-sidebar"

装完重启 DSH。client.js 是启动时装配的浏览器 bundle,改完也要重启,浏览器刷新不够。

构建

pnpm install
pnpm run build     # src/client → client.js

构建只做一件事:用 esbuild 把 src/client/index.ts 打成模块表格式的 client.js。React、Cordis、DSH 客户端模块保持 external,由运行时的模块表提供;clsx、src/vendor/ 里的纯工具层内联;CSS Modules 走 local-css,样式文本在 factory 执行时注入。

client.js 是提交进仓库的产物,不要手改。CI 会重新构建并比对,产物过期即失败。

目录

package.json                 包名、exports、dsh 清单、构建脚本
cordis.patch.yml             关闭 ui-workspace 行,插入本插件行
index.js                     宿主入口(空 apply,只为 Loader 形状)
client.js                    浏览器半侧产物(提交,勿手改)
build/build.mjs              esbuild 构建脚本
src/client/index.ts          客户端入口:注册浏览器、选择器、行动作与提示
src/client/rows/             工作区分组、会话行、分叉树与样式
src/client/session-actions/  置顶、重命名、分叉、归档、复制 ID 与确认对话框
src/client/toast/            行内操作提示
src/client/contract/         插槽与提示的类型契约
src/client/tree.ts           会话行与分叉树的纯推导
src/vendor/                  上游纯工具层副本(构建时内联)
locale/{zh,en}.json          插件页标题与描述
docs/upstream/               上游包文档存档,仅供对照

兼容性与限制

  • 只实现 Web 客户端半侧(dsh.client.platform: 'web'),没有宿主服务、路由或后台任务。
  • 依赖 package.json 里 dsh.client.inject 列出的客户端包与插槽契约,这些由当前 DSH 版本提供。DSH 升级若改动插槽、控制器 API 或模块表,需要同步上游源码重新打 bundle;本仓库对应 0.2.1-rc.5。
  • 本插件替换自带 ui-workspace,不要在同一 profile 里再启用一份上游包。
  • 不发布 npm 包,安装来源只有 GitHub 或本地链接。

许可证与来源

本仓库以 MIT 许可证发布,见 LICENSE。

src/、locale/ 与 docs/upstream/ 派生自 DeepSeek Harness 官方的 @deepseek-ai/dsh-client-ui-workspace 0.2.1-rc.5(MIT,Copyright (c) 2026 DeepSeek),上游许可见 NOTICE.md。上游文档原件存档在 docs/upstream/。

—/ 5

No ratings yet

Verified DSH bundle

Commit 9313e93ce465

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout