dsh-synced-tabs:跨设备共享的 DSH 会话标签栏

前言

在 DeepSeek Harness(DSH)的 Web GUI 里,会话通常从左侧栏打开;切走之后,很难一眼看出「当前究竟还开着哪些会话」。若同一台宿主上还要在电脑和手机之间来回切换,本地视图更容易脱节:一端关掉的标签,另一端可能仍显示在集合里。

dsh-synced-tabs 在 Web 界面挂一条显式的会话标签栏,并把「打开过的会话」维护为同一宿主实例下、多设备共享的活跃集合,而不是各浏览器各记各的。下面介绍它的定位、安装方式与日常操作,并说明同步边界与使用注意。

这是什么

  • 插件:dsh-synced-tabs(npm 包名与客户端注册 id 一致)
  • 维护者:mujiannan
  • 分类:客户端(platform: web)
  • 许可:MIT
  • 依赖环境:需要 DSH >= 0.2.1(README 写明);当前包版本为 0.4.1(见仓库 package.json)

它只挂官方 shell.overlay 槽位,不改宿主任意文件;卸载时可清理干净。关标签不会删除、归档或停止会话,仅从共享集合中移除。

它解决什么问题

  1. 会话太多、缺少显式视图:提供一条标签栏,把当前打开的会话摊开可见。
  2. 多设备对齐:电脑上关掉的标签,手机上不应长期残留;手机上新开的会话,其它设备应在几秒内看到——标签是共享集合,不是本地缓存视图。
  3. 手机触屏:窄屏不挤在顶部一条里,而是「当前会话 + 底部横条 + 抽屉」;横条贴底,左下 ≡ N 开抽屉,抽屉不盖住横条。
  4. 状态可读:标签上有状态点(运行中 / 等待回答 / 完成未读等);抽屉入口有聚合状态,手机端每行第二行直接写状态与 workspace 名。

与「再写一个本地标签栏」不同,跨设备共享是核心设计:宿主提供 GET/POST /api/dsh-tabs/state,状态落在 $DSH_HOME/dsh-tabs/state.json;客户端乐观更新、补发队列与 3 秒轮询,断网退回本机模式,恢复后自动补发。

核心功能(已核实)

能力 说明
共享标签集合 同一 $DSH_HOME 下的多浏览器/多设备共享打开列表
Workspace 分组 标签左内侧色条与徽章,同组标签视觉连贯
状态点 运行、待回答、完成未读等,桌面悬停有文字说明
桌面快捷键 ← → 在标签间移动;Alt+Shift+←/→ 调序
手机优先布局 窄屏底部横条 + 抽屉;软键盘通过 interactive-widget=resizes-content 压布局视口(见仓库 COMPATIBILITY.md)
离线可测客户端 单文件 client.js,无构建;仓库含 75 条离线测试(npm test)

明确不做(当前版本):不新建会话;不 hook 会话生命周期;无拖拽排序 / pin / 归档 / 分屏;不跨两台各自独立的 DSH 宿主实例同步。

安装与启用

插件以当前 dsh 进程权限运行,安装前建议浏览 GitHub 仓库 源码与 MIT 许可证。

在 Web 配置档下安装:

dsh plugin --profile web add dsh-synced-tabs

安装完成后重启 DSH,或让宿主重载插件,即可在 Web GUI 顶部(桌面)或底部横条(窄屏)看到标签栏。

卸载:

dsh plugin --profile web remove dsh-synced-tabs

典型用法

日常操作因端而异,下表摘自官方 README。

操作 桌面 手机
切换会话 点标签;← → 移动;Alt+Shift+←/→ 调序 点标签;或点横条左下 ≡ N 打开抽屉
关闭标签 标签 ×;中键点标签;聚焦后 Delete/Backspace 抽屉行右侧 ×
看状态 标签状态点,悬停看说明 抽屉每行第二行:状态 + workspace 名
辨认归属 标签内侧 workspace 色条与徽章 抽屉行左侧色条 + workspace 名

跨设备同步范围限于同一 DSH 宿主实例(同一 $DSH_HOME),不是跨机器各跑一个 DSH 之间的同步。宿主未加载 Host 半边或端点不可用时,客户端退回本设备本地模式;网络恢复后按队列补发。冲突规则与 state.json 格式见仓库 docs/DESIGN.md §4.8。

DSH 客户端 API 仍在演进,各版本需单独验收;逐版本结论见 COMPATIBILITY.md,未验证版本不做推测。

适用场景与注意

适合:常在 Web GUI 同时开多个会话,并在手机与桌面之间切换、希望标签列表一致的用户;需要 workspace 色条与状态点快速扫一眼集群进度的团队。

注意:

  • 同步依赖宿主路由与轮询(约 3 秒),不是 WebSocket;低频变更高负荷可接受,且利于宿主重启与闪断后自愈。
  • 内部 API 路径与数据目录仍带历史前缀 dsh-tabs(如 /api/dsh-tabs/state),与对外包名 dsh-synced-tabs 并存,避免已有实例丢共享集合。
  • 社区目录 SkillHub 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方应用商店从属关系;DSH 生态理念是「一切皆插件」,安装来源请自行核对。

结尾

dsh-synced-tabs 把 DSH Web 里「开过哪些会话」收成一条可跨设备对齐的标签栏,并在手机上用底栏与抽屉补足触屏可用性。若你需要在同一宿主的多端之间保持会话标签一致,可按上文命令安装,并对照 README 与兼容性表选择 DSH 版本。

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

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

小夜