perf(sync): 流式发现并重新绑定所有允许文件
This commit is contained in:
@@ -625,3 +625,13 @@ Core 的独立数据目录目前不等于已授权 Vault。Python 旧笔记写
|
||||
- 首轮全目标编译发现删除决策 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 沙箱长时验收,全部生产化条件仍未满足。
|
||||
|
||||
|
||||
## 增量:扫描、首次对账与重新绑定的流式读取
|
||||
|
||||
- 共用 hash_file_info 返回实际读取的摘要与长度;sync_file_info 对普通文件有界流式读取,对逻辑记录仍最多读取 1 MiB 加 1 字节并执行现有 schema 校验。sync_discover 不再读入整块文件,发现变化后用 store_payload_file 保存经过复核的快照再提交观察记录与 outbox。
|
||||
- 首次合并预览使用流式摘要/实际长度,确认后的本地准备使用流式 payload 快照,内容变化仍拒绝旧预览。Workspace.scan 的 Markdown 摘要也改为有界读取,避免 UI 扫描先分配整个大文件。
|
||||
- 空远端绑定原先只调用 Markdown scan;重新绑定时已观察过的附件没有新 outbox,后续 discover 也可能因摘要未变而跳过。本轮改为枚举同步白名单路径(含允许的附件/记录),归档旧绑定队列后为当前文件准备流式快照与本地写入意图,再建立新绑定队列;不再仅以 Markdown 集合作为绑定数据集。
|
||||
- 新增 100 MiB Markdown 与 100 MiB 附件测试,分别走首次合并与空远端绑定:仅改末字节即可使旧预览失效,绑定后重复发现不增加事件,UI scan 后的外部修改仍被 discover 识别一次,重开不重复;切换远端 Vault/账号重新绑定时两类文件均进入新队列且原 file_id 保持。测试通过,耗时 10.36 秒,日志 `.build/sync-discovery-stream-large.log`。先前同步回归 17 项通过,日志 `.build/sync-discovery-stream-tests.log`。
|
||||
- 测试补充阶段修正了 Binding 不实现 Debug 时不能使用 unwrap_err 的测试写法,没有为调试输出扩大生产类型的可见字段。上述测试不是真实进程峰值内存测量、10000 文件基准或完整首次绑定故障矩阵;这些验收仍需继续。
|
||||
- 最终 desktop 全目标累计 136 通过、12 ignored(库 121、Host 8、其余集成 7),包含真实 Sync 服务与故障恢复集成,日志 `.build/sync-discovery-stream-full.log`;desktop 全目标 Clippy -D warnings 通过,日志 `.build/sync-discovery-stream-clippy.log`。仍需独立进程峰值内存和完整基准/部署/发布验收,完整生产化目标未完成。
|
||||
|
||||
Reference in New Issue
Block a user