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>
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。