DeepSeek Harness 插件

fu-silent/dsh-sidebar-home

Star 数 ★ 0 分类 UI 增强 收录于 2026-11-02

在侧栏新增「主页」面板用于选择工作区;进入专注后侧栏只显示该工作区的会话,其他工作区折叠在底部,退出专注即恢复原生侧栏。

安装

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:fu-silent/dsh-sidebar-home

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

English | 简体中文

给 DeepSeek Harness(DSH)用的社区插件:左侧栏新增「主页」入口,选择一个工作区后,侧栏切换为只显示该工作区 会话的专注模式,其他工作区折叠到底部;退出专注后官方侧栏原样恢复。

独立社区项目,与 DeepSeek 无隶属、背书或支持关系。DSH 仍处于预发布阶段,本插件通过 Client Slot 扩展; 请阅读「专注模式的限制」与「兼容性与失效方式」。

功能

  • 主页入口:左侧栏面板图标行新增房子图标,点击打开主页;主页列出所有工作区,显示名称、路径、 活动/已归档会话数和最近活动时间;专注时主页顶部显示专注横幅与退出操作。
  • 两种主页布局:卡片网格或紧凑列表,选择会被记住。
  • 添加工作区:通过宿主目录选择器选择文件夹,注册后直接进入。
  • 专注模式:侧栏只显示当前工作区:
    • 按标题搜索会话并显示匹配数量;
    • 需要关注的标记:进行中、待审批、计划待审、待回答,以及未读完成时的已完成;
    • 置顶会话排在最前,并显示置顶标记;
    • 当前会话始终可见并自动滚动到可视区域;其余会话通过「展开更多」查看;
    • 已归档会话开关;
    • 「+ 新会话」行,直接在当前工作区开始聊天;
    • 标题栏显示「专注」标记和带文字的「退出专注」按钮。
  • 其他工作区折叠:侧栏底部的「其他工作区 (N)」折叠区,可展开单个工作区查看会话、直接进入某个 工作区,并提供「查看全部工作区」。
  • 窄轨模式:侧栏收起时只显示一个「主页」按钮,点击展开侧栏。
  • 可逆:退出专注即释放槽替换,官方工作区浏览区(含搜索、拖拽排序、菜单和视图选项)原样恢复。
  • 中英双语、安静:界面与元数据支持英文和简体中文;无构建步骤、无依赖、无网络请求、无遥测; 界面状态只保存在浏览器 localStorage。

安装

本版本仅通过 GitHub 分发——没有 npm 包,也不需要构建。需要可用的 DSH 环境;本版本在 DSH Desktop 0.2.1-rc.5(macOS) 上测试。

git clone https://github.com/fu-silent/dsh-sidebar-home.git

DSH Desktop(推荐)

  1. 打开 DeepSeek Harness Desktop,进入 Plugins 页面。
  2. 点击 Add plugin,填入本地克隆目录的绝对路径(例如 /Users/you/dsh-sidebar-home)或 git 地址 github:fu-silent/dsh-sidebar-home。
  3. 安装后点击 Enable now 启用,然后刷新页面(Cmd+R / Ctrl+R)。主页图标会出现在左侧栏的 面板图标行。

若刷新后仍未出现图标,请完全退出并重新打开一次应用,以便 DSH 加载新的客户端模块。

让 Agent 安装(工具安装)

有 DSH 插件管理权限的 Agent 可调用 plugin_manager,使用 action: "install_bundle" 与 target: "/absolute/path/to/dsh-sidebar-home"(也接受 git URL);该操作需要审批,完成后刷新页面。 卸载时调用 remove_bundle,target 为 dsh-sidebar-home。

dsh web(可选 CLI)

本地 dsh web profile:dsh plugin --profile web add /absolute/path/to/dsh-sidebar-home,然后重启 dsh web 并刷新页面。desktop profile 由 Desktop 应用保留,请使用 Plugins 页面管理,不要用 CLI。

更新与卸载

更新即先移除再安装,因为 DSH 需要为每个已安装包加载新的客户端模块:在 Plugins 页面移除该 bundle, 拉取新的代码,再按路径重新添加,然后刷新页面(若仍显示旧模块,请完全重启应用)。

卸载后主页入口与两处注册都会消失,侧栏恢复官方浏览区;工作区与会话数据不受影响。插件自身记住的状态 仍保存在 localStorage 的 dsh-sidebar-home:state:v1 下,如需清除请删除该键。

兼容性

DSH 版本 状态
0.2.1-rc.5(macOS Desktop) 已测试——本版本据此构建并验证
0.2.1-rc.6 及更新的 0.2.x 预期可用;未测试
0.2.1-rc.4 及更早 被声明的版本范围拒绝;不支持
0.3.x 及更新 被声明的版本范围拒绝;不支持

插件声明 "engines": { "dsh": ">=0.2.1-rc.5 <0.3.0-0" }。DSH 会在安装和激活前检查该范围,版本不匹配时 会拒绝安装,而不是渲染出损坏的侧栏。如确实要在被拒绝的版本上尝试,可在 Plugins 页面授予该运行时的 精确版本豁免——这是接受风险,不代表支持。Windows 与 Linux 未验证:客户端 bundle 与平台无关,但仅在 macOS Desktop 0.2.1-rc.5 上验证过。

专注模式的限制

专注模式替换了官方工作区浏览区,因此官方浏览区自身的能力在退出专注前不可用:会话/工作区的右键菜单 (重命名、置顶、归档、分叉、复制 ID)、拖拽排序、视图/排序/筛选选项、全局内容搜索(专注模式的搜索只按 会话标题过滤,不搜索消息正文),以及其他插件注入官方浏览区行内的控件——退出专注后都会恢复。

专注列表默认显示最近 8 条会话,并始终保留当前会话与需要关注的会话,其余通过「展开更多」查看。 已归档会话会列出但无法打开,需先在官方浏览区取消归档。专注模式不会重排或写入官方的工作区/会话状态。

工作原理

bundle 的 Host 半边为空(index.js),全部逻辑在一个零依赖的浏览器模块 client.js 中;无需构建, 宿主侧无逻辑。

扩展点 类型 用途
sidebar.panellist 列表项 sidebar-home,order -10 左侧栏面板行的主页图标
main keyed 面板,key sidebar-home 主页页面
sidebar.workspaces 单槽替换,负 priority 专注模式的会话浏览区;仅在进入专注时注册,退出时释放
  • 数据来自 slot 标准 props(useWorkspaces、useSessions、useSessionStatus、usePanelInfo); 不扫描其他插件或 DOM,不订阅会话事件,不写宿主文件。
  • 插件唯一的硬服务依赖是 slots。渲染所需的可选服务(locale、layout、uiWorkspace、workspaces) 通过嵌套 ctx.inject 作用域激活,因此未来 DSH 若重命名或移除其中某个服务,插件只会保持未激活, 而不会导致 Web 启动失败。
  • 专注目标、主页布局、已归档开关与折叠状态保存在 localStorage 的 dsh-sidebar-home:state:v1 下。 Desktop 窗口的 origin 稳定;浏览器标签页若 port 变化则可能不保留,届时回退到默认值。
  • 只有一条自动规则:专注模式开启时,专注目标跟随主面板中可见的会话(刷新后恢复;从其他界面打开会话时 同步更新)。主页本身从不改变专注目标;从主页进入工作区会打开该工作区的空白会话。
  • 界面文案通过 Client locale 服务注册(命名空间 sidebar-home,英文与简体中文);样式统一使用 dshsh- 类名前缀与 --dsw-alias-* 主题 token,而非硬编码颜色。

兼容性与失效方式

插件不修改 DSH 文件,只在专注模式开启时遮蔽一个官方槽条目。Slot 是官方扩展点,但具体的槽名、props 和 hooks 属于 DSH Client 内部接口,可能在未来版本中无废弃周期地变化。出问题时的表现:

  • 渲染异常不会让侧栏空白。 专注浏览区抛错时,渲染器会弃用该槽条目并回退到官方浏览区 (控制台:slot entry crashed in 'sidebar.workspaces')。
  • 缺少槽声明时保持惰性。 注册会等待声明;若某个 DSH 版本重命名或移除了槽,该界面不会挂载, 其他功能不受影响。
  • Client 服务被重命名或移除时插件不激活,而不是应用损坏:只有 slots 是硬依赖,功能作用域通过 嵌套 inject 激活。
  • 退出专注会恢复官方浏览区,除非另一个插件替换或禁用了官方的 ui-workspace 浏览区——这种情况下 可能没有可恢复的内容。不要同时使用两个完整的侧栏浏览区替换插件,或做好禁用其中一个的准备。
  • 数据留在本地。 无网络请求、无遥测、不写宿主文件;工作区路径与会话标题来自 slot props, 仅插件自身的界面状态写入 localStorage。
  • 测试范围有限: 仅在 macOS 上的 DSH Desktop 0.2.1-rc.5 验证。engines.dsh 用于避免在未验证的 运行时上误装。

开发

仓库即包:纯 JS,无构建步骤,无依赖。

node --check client.js              # 浏览器半边语法
node --check index.js               # Host 半边语法
node test/render-smoke.cjs          # 零依赖渲染冒烟测试
node scripts/validate-manifest.mjs  # bundle 身份与文件一致性

冒烟测试用最小 React 替身与假 Cordis client ctx 在 Node vm 中渲染所有组件,断言注册契约;它是零依赖的 底线,不是集成测试。校验脚本检查手工编辑最容易破坏的不变量:package.json、浏览器模块 id 与 Loader patch 行共用同一个包名,以及 exports/files 中的运行时文件、locale 元数据、图标大小与冒烟测试存在。 GitHub Actions 在每次 push 和 PR 时用 Node 20 / 22 运行同样的检查(另含 JSON 与 YAML 解析检查); 真实界面验证需手动完成:在 DSH Desktop 中安装本 bundle,检查主页(卡片/列表)、专注模式与搜索、 已归档开关、其他工作区折叠、退出专注以及亮/暗主题。

截图

本版本不包含截图。欢迎后续贡献——社区插件目录的上架将等到有截图后再进行;当前已可直接从本仓库安装。

许可证

MIT © 2026 fu-silent

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。