前言¶
DeepSeek Harness 的原生侧栏在处理大量自动化任务时,会话列表容易变得杂乱。插件通过引入双视图切换和固定会话机制,帮助开发者将人工会话与自动化任务区分开,保持侧栏的可读性。
插件介绍¶
这是一个由 NattoCB 维护的客户端插件,为 DSH Web 界面侧栏增加双视图切换和固定会话分组功能。集成方式为纯客户端注入,依赖 window.__ModuleLoader__ bundle,并通过 localStorage 存储状态。插件声明了 dsh.bundle.patch 和 dsh.client(web)。
核心功能¶
- 双视图切换条:列表上方提供“工作区”与“历史会话”两个 Tab。工作区显示原生分组,历史会话将所有会话按最近排序平铺,包含相对时间戳、运行状态点与所属工作区标签。
- 固定会话分组:两种视图下都会在列表顶部显示固定会话,实时计数并支持折叠。已删除的会话会以置灰行显示,不会消失。
- 历史会话分组:历史会话视图下,会话分为“工作区”和“外部调用”两组。“外部调用”指无 workspace 的 headless 会话(如直连创建),默认折叠并显示实时计数。归组逻辑基于 workspace 成员资格,若注册滞后则按 cwd 路径前缀兜底。
- 行级菜单与过滤:每一行提供“复制 Session ID”等操作。历史会话视图内置标题过滤框。原生工作区菜单增加了“在 Finder 中打开”功能。
- 性能优化:纯 DOM 实现,不使用 React 或 portal。使用 DocumentFragment 批量插入,视口外分组使用
content-visibility跳过布局重绘,支持 2400+ 行列表的毫秒级渲染。 - 旧插件平滑迁移:检测到旧插件
dsh-plugin-pin-session时,启动时一次性合并固定列表,过渡期支持双写,旧插件移除后不影响当前插件运行。
安装与启用¶
- 确保已安装 DeepSeek Harness 并能运行
dsh web。 - 执行安装命令:
dsh plugin --profile web add github:NattoCB/dsh-plugin-sidebar-views
- 安装完成后重启
dsh web。侧栏列表上方会自动出现切换条,无需额外配置。
使用说明¶
- 切换视图、固定会话、折叠分组的状态均存储在浏览器的
localStorage中(键名为dsx2-pins,dsx2-groups),刷新页面后状态不丢失。
注意事项与卸载¶
- 状态持久化:Pin 与分组状态存储在浏览器 localStorage,固定关系跟随浏览器 profile,不跟随 DSH host。
- 卸载安全:卸载时必须从 profile 的
package.json中同时移除dependencies和dsh.profile.bundles里的条目,然后重启 DSH。仅删除node_modules而不更新配置文件,会导致 boot graph 请求不存在的client.js,引发致命错误并无法挂载 GUI。
参考¶
- 仓库地址:https://github.com/NattoCB/dsh-plugin-sidebar-views
- 许可证:MIT
- 生态目录:https://www.skillhub.cn/plugins/NattoCB/dsh-plugin-sidebar-views