dsh-ui-workbench:DSH WebUI 的工作区文件与 Git 审查面板

前言

在 DSH 的 Web 会话页里,对话、工具调用和工作区文件经常需要来回切换:一边要查看当前会话正在操作的文件,一边又要确认 Git 状态与变更差异。dsh-ui-workbench 是 DeepSeek Harness 的 WebUI 插件,它把当前会话工作区的文件树、文件查看器和 Git 审查面板放到会话页右侧,让 Web 端不需要额外打开本地编辑器也能完成基础审查。

下面介绍这个插件的定位、功能、安装方式和适用边界。

这是什么

LoftyTao/dsh-ui-workbenchLoftyTao 维护,许可证为 MIT,状态为 Experimental。它属于 DSH 的 Client 类插件,面向 web profile 下的 DSH Web Client,能力范围是当前会话工作区的文件浏览与 Git 审查。

简单来说,它做的事情是在 DSH 会话页右侧增加一个 Workbench 面板:

  • Host 侧提供 /sidebar/api/* 路由。
  • Browser 侧提供 Workbench 面板。
  • 通过会话作用域的 DSH Host 工作区服务访问文件与 Git 状态。
  • 不保存凭据。
  • 提供工作区审查界面,不承担 Git 提交、凭据保存或通用文件编辑职责。

核心功能

文件树与文件查看

插件可以在当前会话工作区内展示文件树,并支持按文件名搜索。打开文件后,提供带行号、语法高亮和长行换行的 UTF-8 文件查看器。

这个能力主要用于在会话过程中快速确认文件内容,尤其是当模型正在修改某个文件、导入某个资源或生成某个结果时,可以在右侧直接查看对应文件。

Git 差异审查

插件支持查看 Git 状态与差异,覆盖:

  • 已暂存文件。
  • 未暂存文件。
  • 未跟踪文件。
  • 提交引用。

差异视图支持统一视图和并排视图,也可以按变更文件筛选,并折叠上下文。这样在会话中审查一次代码改动时,不需要切到终端手动执行 Git 命令后再回来看。

主题与语言适配

插件支持中英文与亮暗主题适配,主题跟随 DSH 外观设置实时切换。

内置了霞鹜新晰黑屏幕阅读版补全字体,用于改善屏幕阅读体验。

Typst 实时预览

插件支持 .typ 文件的 Tinymist 风格 rich SVG 实时预览。

Typst 预览依赖 Harness Host 环境中的 typst 可执行文件。通常要求 typst 位于 Harness Host 的 PATH 中;如果不在 PATH 中,也可以通过 DSH_TYPST_BIN 指定 Typst 可执行文件的绝对路径。

如果还需要加载其他字体目录,可以使用 Typst 标准环境变量 TYPST_FONT_PATHS 显式增加目录。

安装与启用

安装前需要准备:

  • Node.js 22.19+
  • web profile 的 DeepSeek Harness

然后使用下面的命令安装 v0.3.0 tag:

npx -y --package @deepseek-ai/dsh dsh plugin --profile web add github:LoftyTao/dsh-ui-workbench#v0.3.0

该命令会把插件加入 web profile。使用 v0.3.0 tag 可获得 Typst 实时预览、热重载、Git 审查和亮暗主题特性。

如果在源码仓库中进行本地检查或源码安装,也可以使用下面的命令:

dsh plugin --profile web add ./plugins/client/dsh-ui-workbench

安装或构建后,可以用下面的命令查看 web profile 的配置:

dsh --profile web --dump-config

典型用法

下面是一个比较直接的使用路径。

1、启动带 web profile 的 DeepSeek Harness,进入 DSH Web Client 的会话页。

2、在会话页右侧打开 Workbench 面板,查看当前会话工作区的文件树。

3、在文件树中搜索文件名,或打开某个文件,使用带行号、语法高亮和长行换行的查看器查看内容。

4、切换到 Git 审查相关视图,查看已暂存、未暂存、未跟踪文件或提交引用中的差异。

5、如果工作区中有 .typ 文件,打开该文件查看 Typst 实时预览。预览依赖 Harness Host 可执行文件 typst,或依赖 DSH_TYPST_BIN 指定的绝对路径。

6、切换 DSH 外观设置或语言设置时,面板会跟随 DSH 主题与语言状态进行适配。

源码边界与本地检查

插件的代码边界比较明确:

  • 浏览器端只能通过 src/client/api.ts 访问 Host。
  • Git 命令集中在 src/git.ts
  • 文件系统访问集中在 src/fs.ts

Host Config 当前为空对象。面板宽度由 Browser 状态管理;主题读取可用的 DSH theme 服务并观察 DSH DOM 主题标记;语言读取 DSH 文档状态。

在源码仓库中,可以运行下面的检查和打包校验命令:

pnpm check
pnpm pack:check

这些命令用于源码侧的类型、测试和包产物检查。具体验收以仓库内脚本与文档为准。

适用场景与注意

适合使用 DSH web profile、希望在 Web 会话页直接查看当前工作区文件和 Git 差异的开发者。如果你的工作流中经常出现以下情况,这个插件会比较有用:

  • 需要在会话过程中快速查看模型正在操作的文件。
  • 需要确认当前会话工作区内的文件变化。
  • 需要查看未暂存、未跟踪文件或提交引用中的差异。
  • 需要预览 .typ 文件。

需要注意几点:

  • 该插件状态为 Experimental,许可证为 MIT
  • 适用范围是 web profile、DSH Web Client 和当前会话工作区。
  • 它提供工作区审查界面,不承担 Git 提交、凭据保存或通用文件编辑职责。
  • 插件以当前 DSH 进程权限访问工作区文件与 Git 状态,安装前应检查源码和许可证。
  • 不保存凭据。
  • Typst 预览以当前会话工作区作为 --root,因此导入和资源访问不会越过工作区边界。
  • 需要 Node.js 22.19+ 与带 web profile 的 DeepSeek Harness。

结尾

dsh-ui-workbench 的价值在于把文件查看、Git 差异审查和 Typst 预览放进 DSH WebUI 的会话页右侧,让 Web 端在同一个会话界面里完成一部分工作区审查。

相关链接:

  • GitHub:https://github.com/LoftyTao/dsh-ui-workbench
  • 社区插件目录线索:https://www.skillhub.cn/plugins/LoftyTao/dsh-ui-workbench(该 URL 来自插件线索,未在本次资料中直接确认)
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜