前言¶
DeepSeek Harness(DSH)插件化架构下,会话、附件、配置和工程散落在多台设备上,手动迁移或依赖云服务都存在隐私与权限风险。本文介绍 vxdeus/dsh-sync,一个支持自建私有 Git 或 SFTP 仓库的同步插件,解决跨设备状态一致性、安全恢复和插件升级问题。
这是什么¶
dsh-sync 是一个 DSH 插件,由维护者 vxdeus 开发,归类为「记忆」类。它通过使用者自己的私有 HTTPS Git 仓库或 SFTP 服务器同步会话、附件、配置及选定工程,支持在线安全范围应用、离线恢复及经确认的插件升级。
核心功能¶
- 私有存储同步:支持私有 HTTPS Git(以 Gitee 为示例后端)和 SFTP 服务器,数据不出自有权访问的仓库或服务器。
- 安全范围应用:在线模式只应用宿主允许的安全范围,冷历史通过原生接口导入;已加载、分叉、格式不支持的会话及忙碌工程保留。
- 离线恢复:生成离线恢复计划,不覆盖现有会话或工程,需本地 Node.js 24+ 运行。
- 插件升级:快照携带插件精确版本与升级说明,目标设备下载后仅检测差异,用户确认后才交给宿主插件管理器安装。
- 隐私保护:发布包不含作者的同步仓库、服务器连接信息、账号、密钥、令牌、会话、附件或工程数据;配置文件只留在本机,不上传到同步快照。
安装与启用¶
- 确保运行时 Node.js 24 或更高版本,SFTP 需本机可用 OpenSSH
ssh/sftp。 - 在 DSH 插件管理器中安装 GitHub Release 的
dsh-sync.tgz或带版本号安装包,并核对同一 Release 的SHA256SUMS。 - 完全退出并重新打开 DSH,再刷新原有网页(仅刷新网页不能保证更新宿主插件的模块缓存)。
- 在 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 认证;账户、密钥和目录访问权限由使用者管理。
日常同步流程¶
源设备上传¶
- 检查状态与同步范围;工程/额外文件须手动添加自定义映射(例如逻辑名
my-project)。 - 执行本地预演:扫描并暂存本机数据;已配置 Git 时可能创建本地提交,不是只读检查,但不推送或访问远端。
- 明确确认后上传;仅当显示远端回读/哈希核验成功时,才视为备份成功。
- 同一时刻只在一台设备编辑;不是实时双向同步,也不自动合并两台设备的分叉历史。
目标设备下载与恢复¶
- 安装兼容版本插件,并配置自己的仓库凭据或 SFTP 授权;各设备按相同逻辑名映射工程。
- 默认在线模式只应用宿主允许的安全范围:冷历史通过原生接口导入;已加载、分叉、格式不支持的会话及忙碌工程保留,运行时配置等推迟应用。
- 仅下载/离线恢复只产生暂存计划,不覆盖现有会话或工程;检查结果后完全退出 DSH,再运行该结果给出的恢复命令。
- 恢复核对源哈希及下载时的目标基线,覆盖前验证备份;冲突时停止,不自动改权限;内容相同的只读附件保持原样。
- 恢复中失败会尝试回滚,仍可能出现需人工处理的不完整回滚;请保留日志和备份;本插件不替代独立备份。
- 下载尚未完整应用时会阻止后续上传,避免用旧本机快照覆盖远端;不要轻易勾选覆盖未应用远端内容。
跨设备插件升级¶
快照可携带已安装插件的精确版本、支持的本地安装包和升级说明。目标设备下载后仅检测差异;用户选中具体插件并再次确认后才交给宿主插件管理器安装。模型调用另需本次插件管理授权。不自动批准依赖构建脚本,不自动降级,不自动重启;若返回待重启,由使用者手动重启。安装后重新下载恢复计划,以免使用安装前的旧基线。
适用场景与注意¶
适合需要多设备同步 DSH 会话、配置和工程,且希望完全掌控存储位置与权限的开发者。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。注意同步范围不包含 node_modules、模型/OAuth 登录凭据、integrations、IM 聊天存储、运行时、缓存、同步配置、私钥和令牌;插件包按白名单另行归档。
短结尾¶
dsh-sync 在「记忆」分类下提供可控的跨设备同步方案,数据存储完全由使用者自行配置,适合需要多机协作的 DSH 用户。