dsh-sync:DSH 跨设备同步插件

前言

DeepSeek Harness(DSH)插件化架构下,会话、附件、配置和工程散落在多台设备上,手动迁移或依赖云服务都存在隐私与权限风险。本文介绍 vxdeus/dsh-sync,一个支持自建私有 Git 或 SFTP 仓库的同步插件,解决跨设备状态一致性、安全恢复和插件升级问题。

这是什么

dsh-sync 是一个 DSH 插件,由维护者 vxdeus 开发,归类为「记忆」类。它通过使用者自己的私有 HTTPS Git 仓库或 SFTP 服务器同步会话、附件、配置及选定工程,支持在线安全范围应用、离线恢复及经确认的插件升级。

核心功能

  • 私有存储同步:支持私有 HTTPS Git(以 Gitee 为示例后端)和 SFTP 服务器,数据不出自有权访问的仓库或服务器。
  • 安全范围应用:在线模式只应用宿主允许的安全范围,冷历史通过原生接口导入;已加载、分叉、格式不支持的会话及忙碌工程保留。
  • 离线恢复:生成离线恢复计划,不覆盖现有会话或工程,需本地 Node.js 24+ 运行。
  • 插件升级:快照携带插件精确版本与升级说明,目标设备下载后仅检测差异,用户确认后才交给宿主插件管理器安装。
  • 隐私保护:发布包不含作者的同步仓库、服务器连接信息、账号、密钥、令牌、会话、附件或工程数据;配置文件只留在本机,不上传到同步快照。

安装与启用

  1. 确保运行时 Node.js 24 或更高版本,SFTP 需本机可用 OpenSSH ssh / sftp。
  2. 在 DSH 插件管理器中安装 GitHub Release 的 dsh-sync.tgz 或带版本号安装包,并核对同一 Release 的 SHA256SUMS。
  3. 完全退出并重新打开 DSH,再刷新原有网页(仅刷新网页不能保证更新宿主插件的模块缓存)。
  4. 在 DSH 中进入入口:设置 → 跨机同步,或侧边栏底部的同步。

典型用法

配置私有 HTTPS Git

编辑 dsh-sync.json(位置:DSH_HOME/dsh-sync.json,未设置 DSH_HOME 时为 ~/.dsh/dsh-sync.json):

{
  "backend": "gitee",
  "repoUrl": "https://git.example.invalid/your-account/private-sync.git",
  "branch": "dsh-sync",
  "username": "your-account",
  "token": "",
  "privateRepoConfirmed": false,
  "profiles": ["desktop"],
  "includeAttachments": true,
  "maxExtraBytes": 209715200,
  "extras": []
}
  • gitee 是保留的 Git 后端配置名,界面也沿用 Gitee 标签。
  • 令牌可设置在环境变量 DSH_SYNC_TOKEN 或配置的 token 字段。
  • 亲自确认数据仓库为私有后才将 privateRepoConfirmed 改为 true;这是本机确认声明,插件不会自动查询或更改远端可见性。
  • 不得将本项目的公开源码仓库作为个人同步目标;插件会拒绝此目标。

配置 SFTP 服务器

{
  "backend": "sftp",
  "sftp.host": "your-server.example.com",
  "sftp.port": 22,
  "sftp.username": "your-authorized-user",
  "sftp.remoteRoot": "/data/my-sync",
  "sftp.privateKeyPath": "/path/to/private/key",
  "sftp.hostKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI..."
}
  • 不提供托管服务器、共享账号、预置主机公钥或私钥;每台设备自行生成/保管密钥。
  • sftp.hostKey 需通过可信独立渠道核对完整服务器公钥,不要关闭主机身份校验。
  • 密钥需可用于非交互式 OpenSSH 认证;账户、密钥和目录访问权限由使用者管理。

日常同步流程

源设备上传

  1. 检查状态与同步范围;工程/额外文件须手动添加自定义映射(例如逻辑名 my-project)。
  2. 执行本地预演:扫描并暂存本机数据;已配置 Git 时可能创建本地提交,不是只读检查,但不推送或访问远端。
  3. 明确确认后上传;仅当显示远端回读/哈希核验成功时,才视为备份成功。
  4. 同一时刻只在一台设备编辑;不是实时双向同步,也不自动合并两台设备的分叉历史。

目标设备下载与恢复

  1. 安装兼容版本插件,并配置自己的仓库凭据或 SFTP 授权;各设备按相同逻辑名映射工程。
  2. 默认在线模式只应用宿主允许的安全范围:冷历史通过原生接口导入;已加载、分叉、格式不支持的会话及忙碌工程保留,运行时配置等推迟应用。
  3. 仅下载/离线恢复只产生暂存计划,不覆盖现有会话或工程;检查结果后完全退出 DSH,再运行该结果给出的恢复命令。
  4. 恢复核对源哈希及下载时的目标基线,覆盖前验证备份;冲突时停止,不自动改权限;内容相同的只读附件保持原样。
  5. 恢复中失败会尝试回滚,仍可能出现需人工处理的不完整回滚;请保留日志和备份;本插件不替代独立备份。
  6. 下载尚未完整应用时会阻止后续上传,避免用旧本机快照覆盖远端;不要轻易勾选覆盖未应用远端内容。

跨设备插件升级

快照可携带已安装插件的精确版本、支持的本地安装包和升级说明。目标设备下载后仅检测差异;用户选中具体插件并再次确认后才交给宿主插件管理器安装。模型调用另需本次插件管理授权。不自动批准依赖构建脚本,不自动降级,不自动重启;若返回待重启,由使用者手动重启。安装后重新下载恢复计划,以免使用安装前的旧基线。

适用场景与注意

适合需要多设备同步 DSH 会话、配置和工程,且希望完全掌控存储位置与权限的开发者。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。注意同步范围不包含 node_modules、模型/OAuth 登录凭据、integrations、IM 聊天存储、运行时、缓存、同步配置、私钥和令牌;插件包按白名单另行归档。

短结尾

dsh-sync 在「记忆」分类下提供可控的跨设备同步方案,数据存储完全由使用者自行配置,适合需要多机协作的 DSH 用户。

目录页 | GitHub

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

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

Xiaoye