dsh-favourite:为 DSH 工作区侧栏增加收藏、筛选与置顶

前言

在 DeepSeek Harness(DSH)里同时开多个工作区和会话时,侧栏 sidebar.workspaces 会随项目增多而变长。官方列表按工作区分组、按时间或手动顺序展示,但没有「常看项」的快捷入口:你要么在全量列表里反复找,要么依赖记忆。社区插件 dsh-favourite(仓库 XSJUSTC/dsh-favourite)在客户端侧影子接管该槽位,为会话与工作区增加星标收藏、只看收藏/隐藏未收藏、置顶快捷行以及 fork 时继承收藏状态,并支持可配置的星标颜色。下面介绍其定位、能力与安装用法。

这是什么

dsh-favourite(npm 包名 @xsj/dsh-favourite,当前资料中版本 1.0.0)由维护者 XSJUSTC 发布,分类为 客户端 插件。它以 priority: -1 影子注册工作区管理侧栏:官方 WorkspaceBrowser 仍保持注册,卸载本插件即可回落原界面。

持久化文件位于 <DSH_HOME>/storages/dsh-favourite.json(原子写入)。宿主暴露 HTTP 路由与 ctx.dshFavourite 服务;客户端在 lib/client.js 中提供收藏版工作区浏览器。许可证为 MIT,运行环境要求 Node.js >= 20。

核心功能

收藏

工作区行与会话行悬停会出现星标按钮,收藏后常亮;行菜单里也有「收藏 / 取消收藏」。收藏工作区不会自动收藏其内部会话,二者独立维护。

只看收藏

激活后,一级列表只显示:收藏的会话(散行,不带工作区归属)+ 收藏的工作区。收藏的工作区可展开,展开后显示其下全部会话;未收藏的工作区与未收藏的会话不出现。散行排序跟随视图选项中的排序方式(最近更新按活跃度,手动则与官方单列表手动顺序一致)。

隐藏未收藏

在官方结构上只做减法:不显示「未收藏工作区的未收藏会话」。收藏的工作区展开显示全部会话;未收藏但内含收藏会话的工作区仍会显示,会话嵌在其中;收藏会话数为 0 的未收藏工作区会被隐藏。

全部显示

与官方原样列表一致,作为显式回落入口;取消任一筛选模式也可回到全量视图。

置顶

对已收藏的会话或工作区,可在行菜单中「置顶」。置顶项出现在工作区管理区域最上方。置顶会话以单行展示,不显示工作区名;鼠标悬浮可查看工作区名、路径、会话标题、时间与状态等元信息。置顶是额外的快捷行,会话本身仍保留在原工作区内,不改变侧栏拓扑。置顶行菜单还提供重命名、分叉会话、归档会话,行为与组内会话行一致。

fork 继承

监听 session/created:当为普通 fork(存在 header.parentSession 且 isSeeded,且非 subagent)时,子会话默认继承父会话当时的收藏与置顶状态。

其他能力

  • 在文件资源管理器中打开工作区:置顶行与散行行菜单可打开会话所属工作区目录并聚焦(Windows 侧通过 Shell.Application COM 与 AppActivate 处理前台焦点)。
  • 散行拖动排序:在「只看收藏」模式下,散行支持长按拖动,与官方单列表共用同一份手动顺序。
  • 星标颜色:视图选项可选金黄、橙、红、蓝、紫或跟随主题,设置会持久化。
  • 筛选模式与折叠:「只看收藏」「隐藏未收藏」激活期间跳过官方 5 行折叠限制;匹配项不会被「展开其余 N 个」藏起。收藏数据约 2 秒轮询,窗口聚焦时即时刷新;多窗口或宿主侧 fork 继承最迟约 2 秒可见。

安装与启用

安装命令以仓库 README 为准。使用 web profile 从 GitHub 安装示例:

# 从 GitHub 安装
dsh plugin --profile web add github:XSJUSTC/dsh-favourite

# 或从本地目录
dsh plugin --profile web add <本插件目录或 file:/link: 路径>

# 重启 DSH,刷新页面

安装完成后重启 DSH 并刷新浏览器页面,侧栏工作区区域即由本插件接管展示逻辑。

典型用法

  1. 标记常开会话:在目标会话行悬停点星标,或打开行菜单选择收藏。
  2. 缩小侧栏范围:打开视图选项,切换到「只看收藏」或「隐藏未收藏」,按上文规则过滤列表。
  3. 固定入口:对已收藏项使用行菜单「置顶」,在列表顶部通过悬浮查看完整元信息;需要时在置顶行菜单分叉或归档。
  4. fork 后继续跟踪:对收藏会话做普通 fork 后,子会话会继承收藏与置顶,无需重新点星。
  5. 个性化:在视图选项中调整星标颜色与排序方式;只看收藏时可通过拖动散行调整手动顺序。

宿主侧如需集成,可调用 ctx.dshFavourite(snapshot / toggle / setPinned / isFavorited),或通过 GET /api/dsh-favourite、POST /api/dsh-favourite/toggle、POST /api/dsh-favourite/pin 访问(请求体上限 64KB)。

适用场景与注意

适合长期在 DSH 中维护多个仓库与会话、希望用收藏和筛选减少侧栏噪音的开发者。置顶与「只看收藏」适合把当前迭代相关的会话/worktree 放在固定位置,而不改动官方会话存储结构。

插件以后端进程权限运行,安装前建议阅读 GitHub 源码 与 MIT 许可证,确认路由与本地存储行为符合你的环境策略。社区目录 SkillHub 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;星标数等元数据以各页面当时展示为准(资料中 GitHub 为 1 star)。

结尾

dsh-favourite 在不替换官方工作区浏览器的前提下,为 sidebar.workspaces 补上收藏、筛选、置顶与 fork 继承,并处理筛选模式下的折叠与多窗口同步细节。若你需要在 DSH web 客户端里管理「常看」工作区与会话,可按 README 安装并重启验证。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye