Repository navigation
feat(sync): 逐笔记 Sync Receipt(本地修订 / 云端 ACK / 冲突) - #821
Conversation
…ipts on both formats
…s DCC-011 required
Android PJZ110 真机验收反馈已接收,修复已提交(2026-10-10)确认旧 HEAD 已直接更新本 PR 源分支
以上变更已加入 DCC-011 数据一致性回归。最新 HEAD 的 Contract coverage mapping、Client offline and Native safety、Backend durability and recovery 均通过;生产构建在本评论发布时仍处于运行中,不提前宣布全部通过。 保持 Draft,未合并。 仍需要以新 HEAD 重建的独立 Android Release 验收 APK重复 5s/7s Markdown ACK 延迟、12s 富文本 ACK 延迟、断网重启及在途 A→B→A 切换,重点检查 UI 不再错误确认且不生成新的假冲突。旧测试留下的 unresolved 冲突不做自动清理。此前提到的启动时桥接顺序异常另行跟踪;报告不构成真实 Wi‑Fi、附件及第二物理设备验收。 |
I18n Release CI 失败项已从基础分支独立修复原失败 Job: https://github.com/cropflre/nowen-note/actions/runs/38058357986/job/114231347386 现已通过独立 PR #825 修复并 squash 合并进
**注意:**上述老 Job 记录绑定的是旧提交/旧 PR 合并上下文,历史运行不会自动改成绿色;更新本 PR 与基础分支的合并上下文并触发新 CI 后,才能将这项门禁认定为本 PR 最新状态。#821 的 Android 延迟 ACK 真机复验仍待完成,继续保持 Draft。 |
Shared lint baseline fix applied已将 #826 合并后的 release/v1.5.2 更新到本 PR(合并提交
|
Crypto CI 回归追踪更新到 已提交 |
目的
给普通笔记编辑器引入逐笔记同步收据,不再以全局 lastSyncAt、全局待同步数量为零暗示当前笔记已经云端确认。
主要改动
数据保护边界
2026-10-10 Android PJZ110 验收反馈与修复
精确提交
d8bacc6的 Android 真机验收未通过。正文本地保留、断网重启、重连、A/B 隔离已获得设备测试证据,但有两种独立的错误云端确认以及连续编辑自身回声假冲突。不能用旧提交的 CI 通过替代真机验收。后续修复已追加到此 PR:
notes.create/update/remove/emptyTrash在 SQLite 事务成功提交之后广播收据失效;真实 Outbox 的 pending 优先于旧 mutation ACK。新增 Markdown、富文本和SyncStatusBadge事件接线测试。applied/duplicateACK 读取校验result.version,在原来的出队事务中存储serverVersion;VERSION_CONFLICT继续读取result.serverVersion,不得混用。回归:增加真实 SQLite 本地 Outbox 事务后通知测试、实际编辑器徽标事件测试、applied/duplicate/conflict 协议测试、真实并发冲突反例,并加入 DCC-011 数据一致性契约门禁。
最新自动化结果:Data Consistency Contract 3 个 job 全通过;Frontend Release Gate 通过(契约 CI,前端构建 CI)。其他非本 PR 的工作流仍有既有基线失败,不能宣称所有 CI 全绿。
仍待人工验收:在独立包名的 Android 15 真机复测 ACK 延迟 5s/7s、富文本 12s、在途切账号;先确认新 APK 的源码提交与构建资产一致。既有测试制造的 unresolved 冲突不会被新逻辑擅自清空,需单独核实后决定处理。PR 继续保留 Draft。
验收
2e953f4)2e953f4)