Compare
Sorry, something went wrong.
No results found
0.9.0:v9 一阶段架构加固(P0 全量修复,协议 v2)
对照《一阶段架构审查》完成客户端全部 P0 与可落地 P1:
- P0-3 Remote-Wins:trashLocal 返回值硬校验,回收站失败绝不覆盖本地
- P0-4 本地 CAS:pull 下载 / auto-merge 写回 / keepBoth / Resolver 保存
统一走 writeIfLocalUnchanged,下载期间的新编辑绝不被远端覆盖
- P0-5 防复活:base-0 撞墓碑先比对 priorHash(E2EE 下载历史版本比对明文),
陈旧副本不上传并登记 pendingDelete;同名新内容基于墓碑 revision 显式重建
- P0-6 状态双副本:state-a/b(generation+checksum)写非活动副本→读回校验,
单份损坏自动回退,两份全坏停机保护,绝不 starting fresh
- P0-7 E2EE:启用后收到明文硬失败停止同步;迁移走服务器状态机
(begin 冻结明文写 → 快照清单 → complete 全量验证);vault-key 替换带 CAS 指纹
- P0-8 repoEpoch:变化即停自动同步、重置接入引导「安全合并」;
另加同 epoch 内 head 落后于游标的防御性 snapshot 对账
- P1-10 队列 generation 防 lost wake-up + pendingOps 持久化(重启不丢)
- P1-11 blocked changes 持久化重试(文件夹同名不再静默 ACK)
- P1-15 非 loopback http:// 在 API client 与配对导入两处硬拒绝
- P1-18 冲突副本名加随机后缀 + 存在性循环
协议升级到 v2(配套 litesync-server 0.9.0,minProtocolVersion=2)。
测试 89/89,lint 0 errors。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>