dsh-session-sync:DSH 局域网会话同步

前言

在多台机器上跑 DeepSeek Harness(DSH)时,会话往往只留在本机工作区里。用 U 盘、网盘或手工导出再导入,步骤多,也容易漏掉某次对话。若几台电脑都在同一局域网,更理想的做法是:彼此能自动发现、列出对方的会话,再按需拉取或推送,并在写入前校验内容是否一致。

下面介绍社区插件 dsh-session-sync(维护者 XXGxiaoyu),它在局域网内为 DSH 提供会话浏览、拉取、推送与 SHA-256 校验,设备昵称仅保存在本机。

这是什么

dsh-session-sync 是 DSH 的联网类插件:装了同一插件的 DSH 实例会在局域网内互相发现,通过 HTTP 浏览对端会话列表,并把会话拉回本机或推送到对端。你给某台设备起的昵称写在本机状态文件里,用稳定的设备 id(uuid)关联,不依赖 IP 或主机名;对端离线、重启或换地址后,你这边仍能看到自己起的名字。

插件在 SkillHub 社区目录中归类为「联网工具」;源码与说明见 GitHub 仓库,许可证为 MIT。撰写时仓库星标约为 1。

核心功能

资料中的能力可概括为以下几类(均以插件 README 为准)。

发现与设备列表

  • 在各 IPv4 网卡上发 UDP 广播(约 4 秒 beacon);新出现的对端会收到单播回复,不必等下一轮广播。
  • 跨网段时可在「Cross-subnet scan」里配置 CIDR、单 IP 或 ip:port:CIDR 仍走 UDP 发现;单 IP 还会在 47802–47817 上尝试 HTTP,减轻「防火墙丢 UDP 导致看不见对端」的情况。
  • 本机昵称、仅本机保存的对端昵称存放在 <home>/session-sync/state.json,按设备 id 索引。

浏览、拉取、推送

  • 查看每台设备的会话(标题、工作目录、时间等);可将一条会话拉到本机,或把本机会话推到对端;已导入的行会标记为已拉取。
  • 支持搜索(按 /)、全部 / 未拉取 / 已拉取筛选、按时间或标题排序;可选每 20 秒自动拉取尚未拉过的会话,并用内容指纹避免两台都开自动拉取时来回互推。
  • 支持多选会话,拖到已知文件夹或 DSH 侧栏工作区行上;落点前会确认目标工作区。提供「Sync all」「Push all」等批量操作,已存在(按内容指纹)的会跳过。

完整性校验

  • 导出携带 sha256 = SHA-256(JSON.stringify({format, session, events}));导入在写入前比对,不一致则 HTTP 409 checksum-mismatch。
  • 界面提供「校验」操作,可重新拉取对端 payload 并重算摘要。README 说明:摘要证明字节一致,不证明发送方身份;需要强身份确认时,应通过带外方式比对完整摘要。

界面与集成

  • 侧栏 Plugins 下出现 Session Sync;同一面板也在 Settings → Session Sync 注册。
  • 界面使用 DSH 设计 token,明暗主题跟随宿主;语言默认跟随 DSH,可显式选中文或 English。

就绪后,日志中可出现类似输出:

[dsh-session-sync] ready: device <hostname>, sync port 47802, discovery port 47801
[dsh-session-sync] discovered <peer name> (192.168.1.7:47802)

安装与启用

插件要求 DSH 0.2.1-rc.2(README 写明与当前桌面应用捆绑版本一致)以及 Node 22+。官方安装命令如下(profile 为 web):

dsh plugin --profile web add github:XXGxiaoyu/dsh-session-sync

安装后需重启 DSH 桌面应用(宿主侧变更在启动时加载;页面刷新即可看到新 UI)。页脚会显示实际运行的构建版本;若低于最新 release,通常表示进程尚未重启。包声明了 dsh.bundle,dsh plugin add 会自动把插件加入 dsh.profile.bundles 并激活。

也可从 releases 预构建 tarball 安装;本地 checkout 手动 link 的方式见仓库 README 中的 package.json 示例。

典型用法

  1. 在需要互相同步的每台机器上,用同一 profile(如 web)执行上述 dsh plugin add 命令,重启 DSH。
  2. 打开侧栏 Plugins → Session Sync(或 Settings → Session Sync),确认本机名称(对端可见);必要时在设备行的菜单里为本机以外的设备 Rename(仅本机可见)。
  3. 在 Devices 中选择在线对端,右侧查看 Sessions;对单条会话使用拉取或推送,或用 Verify 校验本地副本与对端是否一致。
  4. 若对端在另一网段,在高级选项中配置 Cross-subnet scan 的 CIDR 或 IP,再刷新设备列表。
  5. 需要批量同步时,使用 Sync all / Push all;传输队列在底部栏与详情抽屉中展示进度,冲突时会提示保留本地、覆盖或跳过该项。

拖拽会话到 DSH 侧栏工作区时,会要求确认目标工作区名称,避免误落目录。

适用场景与注意

适合谁

  • 家里或办公室多台电脑都跑 DSH,且处在可互通的局域网(或你愿意配置跨网段扫描)的场景。
  • 希望在机器之间迁移或备份会话,又不想每次手工导出 JSON 的用户。
  • 同一台机器上多个 DSH 实例/profile:README 会把本机其他实例归在「本机上的其他 DSH 实例」下,仍可浏览与推送,便于跨 profile 同步。

使用前请注意

  • 插件以当前 DSH 进程权限运行,会在局域网内开放发现与 HTTP 同步端口;安装前应阅读源码与 MIT 许可证,并评估网络边界与防火墙策略。
  • 同步走明文 HTTP(README 表述为 plain HTTP),适合受控内网;不要默认等同于加密或身份认证传输。
  • 社区目录 SkillHub 插件页 与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;版本以你安装的包与页脚构建号为准(package.json 中插件版本为 0.7.1,与 README 徽章中的 DSH 版本号不同,勿混淆)。

结尾

dsh-session-sync 把「多机 DSH 会话对齐」收敛到局域网内的发现、列表、拉取/推送和 SHA-256 校验,昵称只留在本机,减少换 IP 后的重新辨认成本。若你在多台设备上使用 DSH,可从社区目录或 GitHub 查看说明与更新:

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

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

小夜