Back to home@TheChengXi

dsh-session-sync

广播会话修改实现多窗口同步

Stars
0
Language
TypeScript
Created
Aug 25, 2026
Updated
Aug 25, 2026
GitHub repo

Introduction

dsh-session-sync

DSH web 会话跨窗口同步插件。

在每个打开的浏览器窗口之间通过 BroadcastChannel('dsh-session-sync') 广播「当前选中会话」, 任一窗口切换 / 新建 / 删除(归档)会话后,其余窗口的选中态自动跟随。

  • 只同步选中态(sessions.open / sessions.clear),会话列表的增删由 DSH 原生 host/ 帧广播自动完成。
  • 防回环:应用远端动作前预置 lastCurrent 为目标值 + 幂等提前返回,远端引发的切换不反向广播。
  • 竞态收敛:未知会话 id 进 pending,列表快照每次变化复查,phase === 'ready' 仍未出现则丢弃。

安装

作为部署级 client 插件安装(junction 链入 profile 的 node_modules,再在 profiles/web/cordis.patch.yml- insert: { id: session-sync, name: 'dsh-session-sync' })。