DSH Toolbox

在另一台设备上继续 DSH 工作,三种方案

它们不是同一个问题的竞品,而是三个不同问题的答案。这一页说清各自回答什么问题、各自在哪里坏——包括我们自己。

一句话结论

要把一台机器的会话搬到另一台,你需要同步引擎(Sync Hub 或 dsh-session-sync)。要从手机操作正在运行的那台机器,你需要远程接入(dsh-remote-mobile)。按问题选,不要按 star 数选。

逐项对比

DSH Sync Hubdsh-session-syncdsh-remote-mobile
回答的问题两台机器怎么拥有同一份会话状态?怎么用 git 镜像会话?怎么用手机操作正在运行的那个 DSH?
机制你自己跑的 Hub + Agent,数据按块哈希搬运私有 git 仓库当传输层在单个运行实例前加安全代理
会话数据不透明字节,只做搬运与哈希不透明字节,追加进仓库完全不搬,只有宿主机一份
工作区索引workspace.json 与 projcache 语义合并同一文件,靠 git 三方合并不涉及
增量传输只传缺失分块(实测:追加 10 KB 传 28,928 字节)git 对二进制的 delta,实测近似全量不适用
冲突处理双份都留在 Hub,本地文件不动双份都留成 fork 文件,永不 force-push不适用
跨形态(网页/桌面/TUI)支持——读的是数据根目录,不是某个客户端各形态写同一路径时支持仅限正在运行的那一个实例
手机只读控制台不支持支持——就是为它设计的
你需要准备一台机器跑 Hub(以后也可托管)一个私有 git 仓库 + 凭据一台常开机器 + 隧道(如 Tailscale)
离线可用可,联网后同步可不可
团队 / 多用户计划中按仓库授权单操作者
主要失效模式Hub 不可达;冲突需要人来定索引冲突要手工解,解错会让会话消失宿主机关机就全不可用

各自什么时候是对的

什么时候用 DSH Sync Hub

你在两台以上机器上工作,希望两边是同一份列表、都带标题;并且比起手工解一个「决定会话显不显示」的 JSON 文件冲突,你更愿意跑一个小服务。

什么时候用 dsh-session-sync

你本来就把私有 git 仓库当权威副本,希望每台设备都能离线工作,并且接受偶尔手工解一次合并。

什么时候用 dsh-remote-mobile

你的问题是「现在就在手机上接着干」,不是「让两台机器同步」。这种问题下,一台常开机器加隧道胜过任何同步引擎。

我们弱在哪

三个问题决定选型

你需要从另一台设备操作一个已经在跑的会话吗?dsh-remote-mobile
你需要多台机器之间有自动同步,且经常离线吗?dsh-session-sync(git)
你需要两边会话列表完全一致、带标题,并且能跑一个小服务吗?DSH Sync Hub

来源

常见问题

能组合使用吗?

能,但有一条规则:不要让两套机制同时写同一个会话目录。手机只走远程接入 + 机器之间走同步,是合理的组合。

为什么不用 git 就够了?

git 对文本很好,对一个每回合都在变的 22 MB 二进制很差;更要紧的是,工作区索引是单个 JSON,它的合并冲突直接决定会话显不显示。这个工具就是为这个弱点存在的。

这个对比有偏向吗?

作者就是 Sync Hub 的作者,所以请先读「我们弱在哪」那一节。所有测量都可以用本站工具复现。