Repository navigation
iPaper 1.13.6 — 被拒冲突决定的重新绑定
1.13.5 的镜像验收中 V1/V3/V5 通过、仅 V2「保留服务器版本」方向失败。插桩后拿到决定性证据:面板级按钮确实发送了编辑器捕获的"所见修订",但服务端报告笔记已再次前进(note_revision_conflict + preservedConflictId)——即用户看到冲突后笔记又被写入了。服务端拒绝过期决定并保留未看过的内容是正确安全的行为,问题是界面被拒后仍停留在过期修订,点第二次也不会成功。
修复
- 决定被拒后重新绑定:父级收到
note_revision_conflict时清掉过期的"所见修订"捕获,重新拉取笔记并把待决冲突绑定到最新的冲突行与修订,用户可再次决定并作用于服务器当前版本(被替换内容已由服务端另存副本)。 - 编辑器在笔记冲突行变化时重新上报待决冲突,两个阅读器行为一致。
- 镜像验收脚本把"决定被拒一次"视为合法路径:最多重试三次(每次等待刷新后的按钮),记录每次请求体与响应状态。
验证
- 隔离笔记套件 21 项、复核 5 个复现、后端 25 项全部通过;类型检查与构建通过。
- 1.13.5 镜像上的逐步探针确认 V1 收尾为「已保存」(服务器与编辑器同为最新正文、零冲突)。
- 安全门禁:4×pip-audit 0、Trivy 源码 0、三镜像 0 HIGH/CRITICAL、SBOM、
dev/mainCI success。 - 镜像验收:对本补丁镜像复跑 V1/V2/V3/V5。
组件
| 仓库 | 版本 | Registry 摘要 |
|---|---|---|
ifzzh520/ipaper |
1.13.6 | sha256:31cfc89dc4351d3aeaf355b3d1dab3a4768ac1bac23dead25225a456628d1b1c |
ifzzh520/ipaper-translation-worker |
1.2.0 | sha256:a5fa3b4316802c15e99a7387baa49604166fb6092a1aca34b8c5e34de3d52003 |
ifzzh520/ipaper-document-worker |
1.2.0 | sha256:2c501ad68bdfc2e282518a813c46e548f598b1af85acc1069058741a45587298 |
源码提交 42d579a。
限制与回退
- 回退基线 Web 1.13.5 + Workers 1.2.0;笔记/冲突/来源记录不因回退丢失。
- 不含跨论文笔记工作区、Agent、RAG、图谱与带批注 PDF 导出。