Files
ElyOffice/tasks/reviews/C12.3-r2.md
T
ZacharyZhang-NYandClaude Opus 5.5 7c5bf48589 C12.3: ElyMail local store
SQLite index, content-addressed originals, rebuildable FTS5 search,
schema versions with a backup before each upgrade and read-only on
failure, and size reporting. Three review rounds; the round 3 fixes
are checked by tests, not reviewed again.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 18:14:09 -04:00

1.5 KiB

FAIL

  • crates/ely-mail-engine/src/store/search.rs:208 — 第 1 轮的 HTML 解析问题仍未从根因修复:foreign 只计未闭合的 svg/math,无法识别 HTML 整合点及退出外来内容的标签。在 <svg><foreignObject> 内,<script/>trackingforeign()</script> 的脚本被索引,<textarea><script>ordinaryforeign</script></textarea> 应显示的文字却未被索引;put 与 rebuild_search 后均如此。html5ever 的树构建器实测把这里的 script、textarea 建为 HTML 元素,并把后者内部的标签当普通文字。修复方向:依据树构建器的当前命名空间、整合点及插入模式决定取文字和分词状态,覆盖这两种输入及重建。证据:.work/C12.3-r2/probe.log、.work/C12.3-r2/html-oracle.log。

  • crates/ely-mail-engine/src/store/messages.rs:242 — 暂存原文写入或改名失败时,没有删除 .part 文件。Windows 上先保存一封 35 字节原文,再把内容文件损坏并设为只读,重新收取时暂存写入成功、改名报拒绝访问;恢复文件权限后删除该邮件,sizes().originals 仍为 35,全部消息已删除却留下完整暂存原文,且没有回收路径。第 1 轮新增的数据库失败清理覆盖不到 keep 内部失败。修复方向:在暂存写入或发布失败时清理本次暂存文件,处理并暴露清理错误,补上发布失败且删除最后引用后无残留的回归测试。证据:.work/C12.3-r2/probe.log、.work/C12.3-r2/probe-source.log。