dsh-plugin-session-tags:为 DSH 会话打上可同步的命名标签

前言

在 DeepSeek Harness(DSH)里并行开多个会话时,侧边栏往往只有标题文本,很难一眼区分「这条线在做什么、做到哪一步」。单靠本地改一行颜色,换设备或新开窗口就对不上。

下面介绍社区客户端插件 dsh-plugin-session-tags(维护者 owenzhao):用具名标签描述会话状态,给侧边栏标题着色,并在悬停卡片上显示标签名;定义与分配会持久化,并在多窗口、多设备间通过主机事件流同步。

这是什么

dsh-plugin-session-tags 是 DSH 的 web 客户端插件(package.json 中 dsh.client.platform 为 web)。标签是命名的,不是一次性色块:名称与颜色一起在设置里定义,会话标题按标签着色,悬停时显示标签文字,形成可跨设备复用的「状态词表」。

社区插件目录由 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系;安装前请自行审阅源码与许可证。插件在当前 dsh 进程权限下运行。

核心功能

侧边栏里打标签

  1. 在某一 session 的侧边栏行菜单(...)中打开 标签,进入选择器。
  2. 选中已有标签后,该会话的侧边栏标题会按标签着色;行悬停卡片上会显示标签名称。
  3. 若需要新标签:输入名称,从六种预设色或自定义颜色中选取,再点 新建并应用,会立刻为当前会话打上该标签。

标题着色通过针对 data-row-key="session:<id>" 生成的样式规则实现;卸载插件后规则移除,恢复默认配色。

在设置里管理标签库

路径:Settings → Plugins → 会话标签。可重命名、改色(预设或自定义)、删除标签,或添加空标签条目。

颜色规则

标签颜色可以是预设名(green、amber、red、blue、purple、gray,随应用亮暗主题)或显式 #rrggbb。

持久化与离线

分配与定义默认写入:

<DSH_HOME>/state/session-tags.json

当主机路由不可达时,浏览器会回退到 localStorage。

多窗口与多设备同步

各窗口和设备订阅主机的 /session-tags/events 事件流;在一台设备上打的标签,桌面端无需刷新即可看到。页面仅在可见时保持流连接;隐藏标签页会断开,再次显示时新连接的首帧为当前快照。无法建立流时,客户端会在下次重连尝试时拉取 GET /session-tags,退化为较慢的轮询而非长期陈旧页面。

插件占用的扩展位(资料原文)包括:sidebar.workspaces.session.menu.item(菜单中的「标签」)、shell.overlay(选择器)、sidebar.session.row.hover(悬停芯片)、settings.plugins.tab(标签定义)。

安装与启用

桌面端:Plugins → Install,输入包名 dsh-plugin-session-tags。

Web profile 下可使用资料中的命令:

dsh plugin --profile web add dsh-plugin-session-tags@0.2.3

本地开发时,可将 bundle 指向目录(资料原文为 plugin_manager 流程):

plugin_manager install_bundle → /absolute/path/to/dsh-plugin-session-tags

安装完成后,在支持 web 客户端的 DSH 环境中启用插件,即可在侧边栏与设置中看到上述入口。

典型用法

  1. 在设置中为常用状态建好标签(例如按项目或阶段命名,并选定颜色)。
  2. 打开目标会话 → 行菜单 → 标签 → 选择标签;或当场 新建并应用。
  3. 在侧边栏通过标题色调区分会话;将指针悬停在行上查看完整标签名。
  4. 在另一设备或浏览器窗口打开同一 DSH 主机,确认标签与颜色已同步(依赖主机路由与事件流可用)。

主机侧 API(供理解同步机制,一般无需手工调用):

GET  /session-tags                                          → { tags, assignments }
POST /session-tags { action: 'assign' }                     → snapshot
POST /session-tags { action: 'createAndAssign', sessionId, tag } → snapshot
POST /session-tags { action: 'tags', tags }                 → snapshot
GET  /session-tags/events                                   → text/event-stream

适用场景与注意

适合谁: 经常在 DSH 中并行多条会话、希望用统一「状态词表」在侧边栏快速识别的开发者;需要在手机与桌面之间保持会话标记一致的用户。

注意:

  • 插件分类为客户端,面向 web 平台;请确认你的 DSH 版本满足 >= 0.2.2-rc.1。
  • 同步依赖主机 /session-tags 与事件流;路由不通时仅本地 localStorage 兜底,跨设备一致性会受限。
  • 第三方插件,安装前请阅读 仓库源码 与 MIT 许可证条款。

结尾

dsh-plugin-session-tags 把「命名 + 颜色 + 悬停说明」绑在同一条会话上,并把定义与分配落到 session-tags.json(及事件流),减轻多会话侧边栏难以扫读的问题。

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

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

小夜