返回目录

dsh-plugin-ya-workspace-sidebar

精选清单收录维护状态: 活跃

huanlinoto/dsh-plugin-ya-workspace-sidebar

DSH Web 工作区侧栏替代,顶部全局最近会话 + Workspace→Session 二级菜单 + 面包屑 | DSH Web workspace sidebar replacement: top global recent sessions + Workspace→Session two-level menu + breadcrumbs

前往 GitHub
$ dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar

14

星标

0

Fork

TypeScript

语言

NOASSERTION

许可证

2026-08-10

创建于

2026-11-07

最近推送

用 TypeScript 写的 DSH Web 外挂 bundle,把内建工作区侧栏换成最近会话列表、Workspace → Session 菜单、面包屑与右键整理菜单。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-14

许可证

NOASSERTION

01它能帮你完成什么?

  • 不用在工作区目录里翻找,就能定位并重开任意一个最近的 DSH Web 会话

    顶部用虚拟滚动列出全局最近会话——是完整列表,而不是只留 5 条

    每天在多个工作区与会话之间切换的 DSH Web 用户

  • 在一个侧栏里从面包屑直接走到目标会话,而不是开两个面板

    最近会话下方是 Workspace → Session 二级菜单,两块之间有可拖拽分隔条(支持方向键微调、双击复位)

    同时开着多个工作区、希望会话按日期分组的用户

  • 把置顶、重命名、标记未读、复制路径这些日常整理动作放到侧栏里做

    会话行与工作区行的右键菜单:置顶、重命名、未读蓝点、在资源管理器中打开,以及复制路径 / 任务路径 / 日志路径 / 会话 ID

    需要在会话、它的工作目录和日志文件之间来回跳的开发者

02如何接入 DeepSeek Harness?

前置条件

  • 一个 DSH Web profile——README 里始终用 `--profile web` 安装
  • 本地开发时还需要外挂的源码 checkout 和 `pnpm`,用来跑 `pnpm run build`

安装步骤

  1. 01

    从 npm 安装(README 推荐的方式):`dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar`

    $ dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar

  2. 02

    本地开发要热更新时:`dsh plugin --profile web add "link:D:/Projects/deepseek-harness/ya-workspace-sidebar"`

    $ dsh plugin --profile web add "link:D:/Projects/deepseek-harness/ya-workspace-sidebar"

  3. 03

    改完源码后重新跑 `pnpm run build`,重启 `dsh web` 并硬刷新浏览器

    $ dsh web

验证接入成功

  • 构建后确认 `lib/index.js`、`lib/client.js` 和 `lib/types/` 都存在,且 `lib/client.js` 用 `window.__ModuleLoader__.load()` 包装
  • DSH Web 启动后出现替代侧栏:上方是最近会话,下方是 Workspace → Session 菜单

03DSH 适配与能力边界

DSH 适配原生运行时

DSH Web 外挂 bundle:`cordis.patch.yml` 停用官方 `ui-workspace` 并插入 `@huanlin/dsh-plugin-ya-workspace-sidebar`,其 client entry 还自供 `ctx.uiWorkspace` 服务的替身

  • 虚拟滚动的全局最近会话列表

    DSH Web 的会话历史→工作区菜单上方的完整最近会话列表,置顶行浮在日期分组之上

  • Workspace → Session 二级菜单与面包屑

    当前选中的工作区→Workspace → Session 二级菜单加面包屑导航,会话按今天 / 昨天 / 更早分组

    分隔条位置可拖拽,也能用方向键微调或双击复位
  • 会话与工作区右键菜单

    一条会话行或一条工作区行→会话菜单:置顶、重命名、标记未读、在资源管理器中打开工作目录、复制路径 / 任务路径 / 日志路径 / 会话 ID;工作区菜单:新建会话、在资源管理器中打开、复制路径、重命名、删除

    置顶与未读标记存在浏览器本地打开会话会自动清除它的未读蓝点
  • 供官方包使用的 `ctx.uiWorkspace` 替身

    来自 `ui-sidebar`、`ui-conversation`、`ui-agent-preset` 与目录选择器的调用→复用 / 新建会话导航、current / recent 回退、归档清理与启动自动选择策略,让这些条目不会一直 pending

    透传官方服务面较新的参数,例如 `StartSessionOptions`(`agentPreset`、草稿内容)与 `forkSession` 的 `allowMigration`

04适合谁?何时不该用?

适合

  • 每天在多个工作区与会话之间切换的 DSH Web 用户
  • 同时开着多个工作区、希望会话按日期分组的用户
  • 需要在会话、它的工作目录和日志文件之间来回跳的开发者

不适合

  • 外挂面向 DSH v0.1.2-alpha.1 起的 Web 版本——官方 `ui-sidebar` / `ui-conversation` / `ui-agent-preset` 在这些版本里注入 `ctx.uiWorkspace`;参数透传则跟随 dsh 0.2.1-alpha.5 的语义。

05兼容性、维护与安全提示

  • 外挂面向 DSH v0.1.2-alpha.1 起的 Web 版本——官方 `ui-sidebar` / `ui-conversation` / `ui-agent-preset` 在这些版本里注入 `ctx.uiWorkspace`;参数透传则跟随 dsh 0.2.1-alpha.5 的语义。
  • 「任务路径」与「日志路径」只在文件型(jsonl)持久化部署里可用;sqlite 型部署(例如 `@morlay/better-session`)对应菜单项会自动禁用。
  • 浏览器产物预构建在 `lib/client.js`,所以仓库发布时必须提交 `lib/`;改任何源码都要重新构建,再重启 `dsh web` 并硬刷新浏览器。
  • 它只替换侧栏界面:搜索、添加工作区、重命名、删除、Fork 与归档仍然走 DSH 原生 Host 能力,`dsh/` 目录只作类型与行为参考,外挂不会改动 DSH checkout。
2026-08-102026-11-07作者未说明

NOASSERTION · 仅有 README 证据,无 GitHub Release,未做安全审计

06常见问题

在 DeepSeek Harness 里怎么安装 ya-workspace-sidebar?

执行 `dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar`——README 里始终装进 `web` profile。本地开发可以改用 link 安装(`dsh plugin --profile web add "link:D:/Projects/deepseek-harness/ya-workspace-sidebar"`),改完源码后重新跑 `pnpm run build`、重启 `dsh web` 并硬刷新浏览器。

它会停用 DSH 内建的侧栏吗?

会。外挂以 bundle 形式发布,`cordis.patch.yml` 会停用官方 `ui-workspace` 并插入 `@huanlin/dsh-plugin-ya-workspace-sidebar`。它的 client entry 还自供了官方包注入的 `ctx.uiWorkspace` 服务替身,否则那些条目会一直 pending,把 WebUI 启动卡死。

哪些操作仍然交给 DSH 自己处理?

搜索、添加工作区、重命名、删除、Fork 与归档继续使用 DSH 原生 Host 能力。外挂替换的是侧栏界面,并加了本地的置顶与未读标记,没有重新实现这些宿主操作。

为什么有些复制路径的菜单项是灰的?

任务路径与日志路径只在文件型(jsonl)持久化里存在。sqlite 型部署(例如 `@morlay/better-session`)会把这些菜单项自动禁用,但复制普通路径与会话 ID 仍然可用。

直接从源码跑这个仓库需要注意什么?

必须带上 `lib/`:浏览器产物预构建在 `lib/client.js`,仓库发布时要提交 `lib/`。构建后确认 `lib/index.js`、`lib/client.js` 与 `lib/types/` 存在,并确认 `lib/client.js` 用 `window.__ModuleLoader__.load()` 包装。

08数据与来源

  • 作者声明github.com17256f51c95b…

    插件采用 bundle 形式,`cordis.patch.yml` 会禁用官方 `ui-workspace` 并插入 `@huanlin/dsh-plugin-ya-workspace-sidebar`。

  • 作者声明github.com17256f51c95b…

    dsh plugin --profile web add @huanlin/dsh-plugin-ya-workspace-sidebar

  • 作者声明github.com17256f51c95b…

    本插件 client entry 通过 `src/client/navigation.ts` 自供该服务的替身(含复用/新建会话导航、current/recent 回退、归档清理与启动自动选择策略),否则这些条目会永久 pending 导致…

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-14。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。