Repository navigation
Releases
v0.21.2
补齐 macOS 桌面端的退出上传、更新和登录;两台电脑同步后会话不再丢失项目分组;网速慢时首次上传不再反复失败。
- macOS 桌面端补上了缺口。 退出时上传和退出后执行修复现在会运行;更新提示给出当前应用内的命令,不再更新到错误的档案;自动代理会读取系统代理,Git 登录保存到钥匙串。macOS 上没有桌面端自动重启和「关闭并修复」,已确认的修复在退出后执行。(#17)
- 第二台电脑接入后,会话不再丢失项目分组。 以前第二台电脑首次同步会盖掉共享的项目登记,两台电脑的会话都可能落到未分组。现在首次接入保留已有项目,每台电脑也保留自己的项目路径。(#21)
- Windows 和 macOS 共用同步仓库时,同步不再中断。 另一种系统建的会话不再中止整次同步:Windows 会话在 macOS 上不导入,保留在远端,分组、归档和置顶也不受影响。项目路径按主目录对应。Windows 不允许的新文件名留在本机,并在同步详情中列出。(#17、#10)
- 网速慢也能完成首次上传。 以前每次上传最多 3 分钟,到时就中断并从头重传,网速慢时(例如约 300 KiB/s 上传 100 MB)会一直失败。现在只要还在传输就继续,连续 3 分钟没有进度才停止。失败时按类别说明原因和下一步,例如"传输停滞""连不上代理""单个文件过大",并可展开 Git 原文。同步页新增「网络连接」,显示 Git 是否经过代理以及连接仓库的耗时;直连 GitHub 时给出可复制的代理设置命令和撤销命令。(#13)
- 编号不带前缀的会话能正常同步。 通过命令行或其他客户端创建、编号不以
session-开头的会话,以前在另一台电脑上写不进去,并提示"会话目录中此类文件没有安全写入接口";现在和其他会话一样校验、只追加并通过 DSH 写入。(#13) - 大文件和疑似密钥不再卡住整轮同步。 疑似密钥只在上次同步详情中提醒,照常上传;取消单个文件 8 MB 的上传限制。同步到 GitHub 时,新加入的超过 100 MB 的文件留在本机,并在上次同步详情中列出。
- 其他改进。 同步副本在本机的历史超过 200 次后只保留最近 50 次(同步仓库保留全部);「本机存储明细」中的同步副本显示为它对应的仓库,不再显示一串编号。已核对 DSH 0.2.2-rc.1:会话格式和设置文件的位置、结构不变。
升级注意: 共用仓库的每台电脑都要升级,旧版接入仍会造成分组丢失。已被旧版改坏的项目路径可以修回,已经丢失的项目记录不会自动补建,需要从恢复记录找回。较新的 DSH 建的分叉会话,传到 0.2.1 宿主时该轮同步会停止并提示更新。疑似密钥不再阻止上传,请自行确认同步内容中没有不想上传的密钥。「处理项目旧历史中的大文件」已移除。新加入的超过 100 MB 的文件不会同步到 GitHub;已经同步过的文件不按此跳过,超过上限时 GitHub 会拒收,同步会提示"单个文件过大"。
验证: 发布源码在 Windows 11 上用独立 Node.js 和桌面端内置运行时分别完成完整自动回归,实际安装包装入隔离桌面宿主(DSH 0.2.2-rc.1)完成加载、读写和冷启动读回。没有真机 macOS 验收,macOS 只运行了 CI 中的自动测试,退出上传、系统代理、钥匙串登录和更新命令都没有在真实 Mac 桌面端试过。没有物理双机证据,#21 只在一台电脑的两个隔离宿主上验证,也没有在报告者的实际环境中验证。慢速网络、代理检测、GitHub 100 MB 上限和编号不带前缀的会话只用自动测试和合成数据验证,没有在真实低速网络、真实代理软件或真实 GitHub 上实测。本版验证记录
v0.21.1
同步仓库不再限定 GitHub,Gitee、GitLab 等 Git 托管站的私有仓库也能使用。
- 可以用 Gitee、自建 GitLab 等存放同步数据。 「使用其他仓库」「更换同步仓库」接受任意 Git 托管站的 HTTPS 或 SSH 地址(含自建站点的端口和多级组),不再报「仅支持 GitHub 仓库地址」。GitHub 仓库仍向 GitHub 查询是否私有;其他站点在关闭本机凭据的情况下匿名读取一次,站点要求登录才算私有,可以匿名读取、找不到仓库或连不上时都不上传。保存地址时还会用这台电脑的登录读取一次,说明缺少登录或 SSH 密钥等具体原因。(#12)
- 其他改进。 首次设置的登录帮助按托管站分开:所有站点只需 Git,GitHub CLI 只用于 GitHub,其他站点给出可直接复制的登录命令。同步页的仓库链接指向实际托管站;「同步仓库与本机存储」中的说明不再写死 GitHub。
升级注意: 默认仓库仍是当前 GitHub 账号下自动创建的 dsh-sync;其他托管站需要先在网页创建私有仓库,并在每台电脑登录一次(HTTPS 运行一次 git ls-remote 仓库地址 按提示登录,SSH 先配置密钥)。明文 http:// 地址不支持。匿名检查无法识别 GitLab 等的「内部」可见性,请自行确认仓库只有自己能访问。换到另一个托管站时只会上传这台电脑的当前内容,需要保留全部分支和历史请先手动复制旧仓库,见配置参考。
验证: 发布源码在 Windows 11 上用独立 Node.js 和桌面端内置运行时分别完成完整自动回归,实际安装包装入隔离桌面宿主完成加载、读写和冷启动读回;在一台电脑的两个隔离桌面宿主上,用专用的 GitHub 和 Gitee 私有测试仓库实际走通了从 GitHub 换到 Gitee 的两种做法、公开仓库被拒绝,以及同步页上的保存与「立即同步」;维护者在本机桌面端目视验收了仓库设置。没有验证 GitLab、自建站和 Gitee 的 SSH 地址,也没有物理双机证据。本版验证记录
v0.21.0
一台电脑丢了会话不再连带删除其他电脑的副本;只同步会话、附件和可共享设置,并能看清、清理同步仓库与本机的占用。
- 一台电脑丢了会话,不会再连带删掉其他电脑的。 以前某台电脑上的会话文件不见了(清空了数据文件夹、磁盘问题或外部工具清理),下一次同步会把它们当作删除上传,其他电脑随后也看不到。现在本机找不到的会话一律视为丢失,同步仓库里的副本保留,并在这台电脑下次同步时取回;附件、设置等一次缺少较多时,同步会暂停并让你选择「确认删除」或「从远端取回」。会话也可以在「同步的会话」中整组选择后明确移出同步。
- 只同步明确的内容,机器专属文件留在本机。 数据目录中只同步会话、附件、可共享设置,以及可选的「指令与技能」(全局 AGENTS.md 与技能,默认关闭)。DSH 自带的 Electron 与运行环境、插件安装清单与锁定文件、工具留下的备份、脚本、令牌和其他未知文件不再读取、上传或取回,换机后各电脑的插件安装互不覆盖。两台电脑改了不同的插件设置时两边都保留;DSH 版本不同时暂停设置互传。
- 看清并清理同步仓库与本机占用(实验性)。 同步页新增「同步仓库与本机存储」:按会话、附件、设置等分别统计当前内容和历史版本,新电脑首次同步只取当前快照。可以把已归档或 DSH 中看不到的会话移出同步、移除旧版本上传的本机文件,或清除同步分支的历史版本(旧历史保留在 GitHub 归档分支)。早先清除历史后留在本机的同步前备份另列为「本机另存旧历史」,GitHub 仍保有时可回收本机空间;只有这台电脑有的历史继续保留。
- 其他改进。
- 同步仓库被重建后,各电脑改用新历史,不再把旧历史合并推回去。
- Git 与 GitHub CLI 未指定代理时自动使用环境变量或当前 Windows 系统代理;选择「使用默认备份」后立即检查 GitHub 登录并说明连不上的原因。
- 首次同步项目时,远端没有项目分支或本机没有全局 Git 身份不再失败;超过上限的新文件在上传前指出。
- 跨电脑的项目路径按本机位置归并,会话不再因另一端登记缺失而失去分组;项目目录不可用时预选路径匹配的本机项目,经确认后恢复。
- 新增文件和正常追加的会话不再生成整份恢复副本;会话、恢复记录按标题显示并可预览;「找回同步前的内容」改为窗口查看;从处理页面返回时停在原处。
- 同步页面使用的本机接口只接受 DSH 自身页面的请求;读到正在写入的会话会稍候重读;取回设置等文件改为整体替换,不会留下半份内容。
- 移除本机补丁功能;同步计时从点击时开始。
升级注意: 旧版本已经因此从同步仓库删掉的会话不会自动回来,仍保存在仓库的 Git 历史中,可以找回;清空数据文件夹前请先确认所有电脑都已升级到本版。只支持从 0.12 及以上版本升级;更早的版本请先升级到 0.20.x 并完成一次同步。0.11 及更早版本在项目文件夹留下的 .dsh-conflict-* 副本不再在同步页列出,文件仍在原处,可以手动查看或删除。Web 端不再自动重启(原功能依赖自行准备的重启脚本),需要刷新会话列表时会提示手动重启;桌面端自动重启不变。本机补丁功能已移除:patches/ 中的内容不再自动套用,已经套用的改动不会撤销;不再需要时可在「同步仓库与本机存储 → 本机备份」中删除 patches/。升级后插件安装清单不再随同步传到其他电脑,请在每台电脑分别安装需要的插件;插件的设置仍会同步。尚未升级的电脑仍可能上传这些文件,已升级的电脑不会取回。旧版本已上传的这类文件不会自动删除;请先把所有在用的电脑都升级并同步一次,再使用「同步仓库与本机存储 → 远端旧文件」,否则旧版本会把远端移除当作删除本机文件。清理不改写同步仓库历史。从源码 ZIP 本地安装时,安装脚本改为 scripts/install-local-desktop.mjs,没有单独安装 Node.js 也可以借用桌面端自带的运行环境,见快速开始。
验证: 发布源码在 Windows 11 上用独立 Node.js 和桌面端内置运行时分别完成完整自动回归,实际安装包装入隔离桌面宿主完成加载、读写和冷启动读回,维护者在本机桌面端目视验收了同步页。物理双机经 GitHub 的往返没有本版证据,经维护者决定以未验证状态发布;完整故障注入矩阵和恢复演练也未完成。#10 的原会话跨目录直接继续仍未实现。本版验证记录
v0.20.3
集中整合备份清理、更新提醒、自动同步默认值及 DSH rc.3 设置同步。
- 看清占用,再清理备份。 新增「本地存储与备份」入口,分类查看用途、大小和保留原因;支持按保留时间筛选、选择预览、确认清理并查看逐项结果。当前同步数据和未完成处理的材料受到保护。
- 换机带上实际设置。 支持 rc.3 的运行环境与全局设置位置,合法动态表达式原样保留,自动同步等普通偏好可同步;密钥、代理及原有本机路径字段继续按既有规则保留。
- 更新与自动同步更明确。 更新命令指定提醒版本并使用 npm 官方源,对应安装包可下载后才提醒;新配置默认开启启动取回和完全退出上传,升级保留已有明确选择。
升级注意: 清理会永久移除选中的本地恢复来源,当前 Git 历史和云端历史不随普通清理缩短;保留时间只用于手动清理筛选,不会自动删除。新配置默认开启启动和完全退出时的自动同步,首次仍需手动完成连接与同步;已有明确选择保持不变。设置同步生效后,普通同步偏好可以随另一台电脑更新。中文 README 保持原样,英文 README 按中文版翻译,默认值以本版日志和配置文档为准。
验证: 已完成本地开发阶段的完整自动回归、清理与设置专项、官方格式压力检查及实际候选包的隔离桌面宿主检查;发布构建重新绑定固定源码、实际安装包及验证证据。物理双机 GitHub 实网、完整窗口操作和完整故障/恢复矩阵尚未完成,隔离检查不能代替这些验收。发布验证记录 · 清理说明
v0.20.2
修复首次项目同步、自动同步设置,以及审查发现的文件保护与会话校验问题。
- 项目同步保留编辑器的新保存。 合并改在隔离目录完成,应用前检查本机新修改并保留备份;取消或中断后不再把未完成的冲突提交到远端,中文文件名也能正确处理。
- 首次连接和失败提示更可靠。 区分空远端、缺少项目分支和真实网络错误,统一项目与主数据的凭据和 Git 身份处理;上传前指出新增超限文件,保留原件并支持排除后重试;已提交进旧历史的大文件可先保留本机完整历史备份,再以相同快照重建待上传历史。
- 保护会话和设置的实际含义。 会话增加官方格式语义校验;修正 YAML 注释、引号和 URL 列表解析,损坏登记或路径配置会明确停止;删除模型提供方不再阻塞其他设置或误配本机密钥。
- 保存的选择和状态更准确。 自动同步关闭后保留明确保存的选择;退出时尚未应用的内容不再获得完成回执,工作进程继承宿主公开格式接口的解析位置;Git 与 gh 继承已有代理环境,分块中文输出保持完整。
升级注意: 更新后重新打开 DSH。项目恢复原件会保留在项目旁的 .chatsync-backups 目录及本地恢复记录中,核对前请勿删除。无法获得公开会话格式校验接口时会停止并保留原件;既有大文件历史不会被自动清除。README 保持原样。
验证与限制: 已执行隔离真实 Git 回归、官方格式校验和故障用例,逐项终态见本版证据。真实 Windows 11 Desktop 宿主操作及物理双机 GitHub 实网验收未完成,不宣称全部安全验收通过。本版记录
v0.20.1
会话保护与修复补齐,同步设置更清楚,正常未分组不再触发工作区重建。
- 换机和修复时保留可核对的内容。 完整追加历史可接续,离线分叉可分别保留;损坏或无法安全应用时停止并保留原件。新增会话问题检查、修复预览、备份和核对入口。
- 尊重删除、归档和本机保留范围。 正常未分组与同步异常分别处理,归档保留项目位置;范围关闭和忽略规则保护本机原件。历史会话含敏感内容时,可保留本机原件,生成独立脱敏副本。
- 日常同步更直接。 侧边栏入口可开关,默认备份无需填写地址,更换仓库先检查权限;启动后台同步,失败显示原因和处理入口。修正同步图标圆弧与旋转中心,保持正方形尺寸,避免旋转晃动。
升级注意: 本版最低 DSH 0.2.0-rc.1、Node.js 24,桌面端推荐 0.2.1-rc.2 或更新版。“添加插件”支持输入 chatsync;原包名保留兼容。 自动同步只在启动与正常退出时运行;关闭到托盘不等于退出。修复后的待核对内容需确认后再继续同步。此版本通过 GitHub 提供安装包及完整源码;npm 同步发布同版本安装包。
验证与限制: 已进行源码审查、自动回归、故障用例及本机隔离宿主检查。物理双机验收未通过(未执行);部分故障、环境和完整 Desktop 恢复场景仍未验证,不宣称全部安全验收通过。本版记录 · 逐项证据与发布决定
v0.20.0
重要更新,设置页优化+重启功能优化+归档会话功能移除
- 设置页改为「连接仓库 → 选择内容 → 开始同步 → 换机验收」四步引导,突出主操作,保存成功后带到下一步。动态提示明确标注当前状态、下一步引导或保存结果;区分本地快照、同步失败与单机同步成功,不把一次上传当作双机验收完成。
- 自动重启修复会话分组默认开启,保留配置中明确关闭的选择。只在整轮主数据与工作区同步成功、结果保存和进程锁释放后调度;检测到会话生成或活动状态未知时保留手动提示,避免传输中途重启。
- 增加会话活动识别与显示名称:优先读取宿主 agents 服务,缺失时以日志最近活动兜底;目录或日志无法读取时按未知处理。重启提示列出可能被打断的会话,提供「立即重启 / 稍后」引导;Web 和桌面端按各自宿主执行重启。
- 修复空白会话造成的「未分组」误报:从未开始过轮次的会话不计入未分组数量,日志追加后更新判定;全量会话扫描与幽灵登记清理保持原口径。
- 移除插件中的归档会话管理及取消归档、彻底删除接口,避免直接修改磁盘登记表后被运行中的宿主覆盖。会话归档请使用 DSH 自身功能;同步引擎保留归档登记的处理。
- 遗留冲突副本改为默认折叠的只读预览,移除无对应服务端路由的裁决按钮。说明会话分叉保留一侧、工作区开关同时暂停上传与取回等实际边界。同步方式、总开关与周期可在设置页保存生效。
- 重写中英文快速开始与桌面安装说明,按实际运行时区分 Web / desktop profile,补充换机验收、依赖恢复与文件排除规则。源码保留当前功能审阅记录。
- 升级注意:Web 和桌面插件分别更新并重新打开 DSH。未明确配置关闭自动重启的用户升级后会启用该功能;可在「高级:会话分组修复」关闭。自动同步模式仍默认关闭。专用凭据文件不传输,换机后仍需配置本机 API 密钥与依赖。
- 验证:Windows 11 / Node.js 24.19.0 下 70 项自动测试及补丁回归 8 个断言全部通过;两个隔离副本完成真实 Git 双向同步、工作区恢复、凭据排除和故障重试;两套 DSH Web 0.2.0-rc.2 测试环境通过插件挂载、模式切换和重启保持检查。语法检查、差异检查及 npm 打包预检通过。完整范围见
docs/release-0.20.0-validation.md。未完成两台物理电脑的 GitHub 实网验收,浏览器工具无法访问本机页面,未声称实际设置页布局已目视验收。
v0.12.13
- 桌面端的「立即重启」现在调用随插件安装的 PowerShell 脚本,核对桌面 Host 和主程序后重启桌面应用;Web 端仍只重启 Web 服务。计划任务隐藏命令行窗口。桌面端同步后需要刷新会话列表时提示手动重启,自动重启开关只适用于 Web 端。
- 桌面端不再把 Web 运行时补丁套用到独立的 Web 安装。同步时排除桌面插件市场与插件管理器的本地缓存;Web 和桌面同时运行时,同步操作通过本机进程锁串行执行。
- 验证:Windows 11 上分别对桌面端和 Web 端的重启接口执行实际重启,各自进程更新且另一端保持运行,两项计划任务都返回成功;38 个自动测试和补丁回归检查通过。未完成两台物理电脑的实网验收,也未目视确认所有窗口焦点行为。
- 升级注意:Web 与桌面端需分别更新插件;两端共用
~/.dsh中的会话等数据,但各自使用独立的插件 profile。桌面端需要手动确认重启,正在进行的任务会中断。
v0.12.12
- 修复会话日志分叉时混排事件、重编号导致引用和生命周期关系错误的风险。仅原样选择可确认的追加历史;无法安全接续时保留当前一侧,并在同步详情和命令行列出双方原件的 Git 提交。
- 为会话日志配置本地 Git 合并规则,防止纯文本日志绕过上述检查被 Git 自动拼接;配置与普通文件保持各自的合并策略。
- 修复多帧 zstd 的边界识别,完整检查帧与块长度;解码失败不再跳过损坏帧继续合并。
- 补丁不再凭旧标记覆盖文件;缺少原始备份和录制版本时暂停应用。增加按安装版本停用旧补丁的清单字段,状态文案区分“文件一致”与兼容性验证。
- 一键重启前显示本机是否具备 Windows 重启脚本,缺少条件或同步正在运行时禁用按钮;不再将自动重启描述为默认开启。
- 验证:Windows 11 / Node.js 24.19.0;两个隔离 DSH 0.2.0-rc.1 实例完成插件加载、模式切换及重启保持检查;本机 10 个会话的当前日志通过对应版本校验器只读检查。完整测试与打包结果见兼容验证记录。未验证正式版 DSH 0.2.0,也未执行两台物理电脑的实网验收。
- 升级注意:发生分叉的同一会话不会把双方新增内容拼成一份;请按同步详情中的提交位置查看另一份原件。更新后重启 DSH。用户自建补丁不包含在 npm 包内,需单独审核适用版本。
v0.12.11
- 设置页新增「立即重启 DSH」按钮:同步归组或补丁套用后需重启才生效的场景,可一键经计划任务重启(schtasks 独立进程树,避免在服务器进程树内自杀);未部署 restart-dsh-web.ps1 时给出明确提示。
- 同步引擎把重启调度泛化为
scheduleRestart(reason),保留scheduleRestartAfterRepair向后兼容;新增POST /dsh-sync/api/restart端点。 - 兼容 DSH 0.1.7-rc.x 的新会话格式(
session.v4.jsonl.zstd):会话日志识别改为按目录枚举(未来格式自动兼容),修复 v4 会话无法自动归组、「未分组」自动重启修复不触发的问题;设置卡新增未分组会话提示。 - 中英文 README 新增「功能」章节,介绍会话自动归组、两种同步方式、会话管理、冲突自动合并、分组自动修复与补丁托管;并精简首页、把安装与授权步骤集中到安装指南、增加源码下载与更新日志入口。
- 将本地维护约定纳入仓库;发布流程增加中文更新日志检查,并自动将对应标签的完整源码 ZIP 上传到 GitHub Releases。