perf(sync): 流式处理冲突快照与解决载荷

This commit is contained in:
2026-09-09 06:16:21 +08:00
parent bd6ccc4237
commit 6373d8ee81
4 changed files with 149 additions and 22 deletions
@@ -615,3 +615,13 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写
- 大文件测试通过,耗时 4.36 秒,日志 `.build/file-ops-stream-large.log`。该测试覆盖人工构造的持久化恢复阶段,不等于完整强杀/断电矩阵,也不是 RSS 测量;文件系统路径替换与全部持久化保证仍按原验收要求继续验证。
- 冲突保留/解决、外部变更发现和部分记录/API 仍有整块内容读取;大附件端到端内存验收和整个生产化目标仍未完成。
- desktop 全目标累计 134 通过、12 ignored(库 119、Host 8、其余集成 7),包括真实 Sync 服务及故障恢复集成,日志 `.build/file-ops-stream-full.log`。Clippy 首次指出流式改造后 workspace.rs 的 Write 导入仅供测试使用,已收为 cfg(test)desktop 全目标 Clippy -D warnings 随后通过,日志 `.build/file-ops-stream-clippy.log`。未把这组结果当作全部大附件 RSS、断电或完整生产化验收通过。
## 增量:冲突快照与解决的流式 payload
- 从 store_payload_file 抽出共用 snapshot_file,新 sync_store_file 先有界计算源摘要,再用已有校验/流式复制/fsync/无覆盖发布流程保存快照,不为没有 operation 的冲突快照创建多余 payload 映射。冲突保留和用户决策前快照均改用此入口。
- 冲突列表当前摘要、解决时本地 CAS 摘要改用有界 hash_file。“保留本地”“保留远端”“保留双方”的文件应用均使用 write_spooled_with_identity;本地快照长度从 spool 元数据取得并由写入入口复核,远端使用已存修订的摘要/长度。既有用户决定持久化、operation/rename/copy ID、版本复核、身份/别名及队列归档事务保留。
- 原同步回归 16 项通过,日志 `.build/sync-conflict-stream-tests.log`。新增本地和远端各 100 MiB 的真实文件测试,三种选择分别验证过期 expected 被拒绝、冲突列表摘要、最终内容、主文件身份、copy 独立身份、重开并重复解决后待发送操作数不增加,以及旧提交仍被判定 SYNC_OPERATION_SUPERSEDED。大文件测试通过,耗时 14.35 秒,日志 `.build/sync-conflict-stream-large.log`
- 首轮全目标编译发现删除决策 fingerprint 仍需要生产 hash 导入,已恢复其非 test 范围,同时移除 sync_inbox 中不再使用的 fs 导入;该问题在全目标回归期间发现,未将仅 lib test 编译通过当作全部目标通过。
- 外部变更扫描、初始绑定对账和部分逻辑记录/API 仍有整块读取;未将这些功能测试当作 RSS 基准或完整强杀/断电矩阵。大附件端到端内存与完整生产化目标继续未完成。
- 最终 desktop 全目标累计 135 通过、12 ignored(库 120、Host 8、其余集成 7),包括实际 Sync 服务与故障恢复集成;日志 `.build/sync-conflict-stream-full.log`。desktop 全目标 Clippy -D warnings 通过,日志 `.build/sync-conflict-stream-clippy.log`。本轮没有重新执行 ignored 沙箱长时验收,全部生产化条件仍未满足。