Files
ElyOffice/tasks/reviews/C08.5-r1.md
T

18 lines
4.7 KiB
Markdown

FAIL
apps/ely-doc/src/compare.rs:34 — 比较副本在输入队列完成前保存,审阅结果遗漏刚提交的编辑,违反 DOC-13。复现:正文为 `Initial`,通过 `LokView::insert("PendingText")` 排队输入,随即调用 `compare`;等待比较标签最终名称和输入队列完成后保存并读回,正文仍为 `Initial`,原标签随后包含 `PendingText`。临时探针 `review_compare_includes_queued_text` 已失败。修复方向:沿用保存流程的 `settled` / `when_settled` 守卫,待源标签排队输入完成后创建比较副本,并补充排队输入回归测试。
apps/ely-doc/src/merge/run.rs:83 — 合并模板在源标签输入队列完成前保存,预览及生成会遗漏待处理文字或字段,违反 DOC-14。复现:正文为 `Dear `,在一次调度中调用 `insert_field("Name")` 后立即预览 `Name=Ada` 的记录;等待最终预览名称和输入队列完成后读回,预览正文为 `Dear `,预期为 `Dear Ada`。临时探针 `review_preview_includes_queued_field` 已失败。修复方向:预览和生成统一等待源标签输入完成,再取得模板快照;测试覆盖字段排队期间发起预览和生成。
apps/ely-doc/src/merge/run.rs:68 — 逐列对已经填充过的正文执行全局替换,后续列会改写先前列的 CSV 值,违反 DOC-14 的记录内容保真。复现:模板为 `Dear «Name» of «City»`,列顺序为 `Name,City`,记录为 `«City»,London`;等待填充完成后读回正文得到 `Dear London of London`,预期为 `Dear «City» of London`。临时探针 `review_merge_preserves_literal_field_markers_in_data` 已失败。修复方向:基于原模板的字段位置进行一次性填充,保证 CSV 值作为字面数据保留,并补充值含其他字段标记的回归测试。
apps/ely-doc/src/merge/run.rs:159 — 输出文件只在启动后台任务前通过 `exists()` 检查,随后内核直接保存到目标路径;检查与写入之间出现的文件会被覆盖,违反本任务承诺的拒绝覆盖行为。复现:调用 `generate` 后、推进后台调度前,在首条目标路径写入 `EXTERNAL CONTENT`;完成生成后该文件变成 DOCX ZIP。临时探针 `review_generate_preserves_target_created_after_preflight` 已失败,现有测试仅覆盖调用前已存在的目标。修复方向:以排他创建或排他发布保证最终目标的所有权,将内核输出先写入独立暂存路径;遇到占用时暴露错误并保留已有文件,补充检查后目标被占用的测试。
apps/ely-doc/src/find.rs:143 — 查找缓存只随新的搜索回调更新,正文编辑完成后保留过期的匹配数量和矩形,违反 DOC-12 的查找结果正确性。复现:正文为 `cat dog`,查找 `cat` 并定位第一项,通过输入 `cow` 替换所选文字;待编辑和回调完成,查找框的总数仍为 1,实际匹配数为 0。临时探针 `review_find_updates_after_edit` 已失败。修复方向:观察文档编辑代际,在编辑完成后重新执行当前查询并更新匹配缓存,同时覆盖删除匹配、添加匹配及匹配位置变化的回归场景。
apps/ely-doc/src/find.rs:151 — 上下一处仅更新当前序号,结果落在视口外时页面保持原滚动位置,DOC-12 的定位操作无法展示所选结果。复现:100 个 `filler` 段落后放一个 `needle`,视口为 800×600 且滚动位置为 `(0,0)`;查找下一处后结果矩形为 `(1418,34218,626,275)` twips,滚动位置仍为 `(0,0)`,视口高度为 9000 twips。临时 LOK 视图探针 `review_search_reveals_match_below_viewport` 已失败。修复方向:选中搜索结果时调整视口以展示结果,并保留内核搜索选区;补充跨页上下一处和替换后的定位测试。
crates/ely-lok/src/commands/tools.rs:7 — 查找及替换的 `SearchString` 使用 `Arg::Text`,其 `trim().is_empty()` 校验拒绝合法的纯空白查询,违反 DOC-12。复现:正文为 `a b c`,在查找框输入一个空格;参数校验报 `find.run needs SearchItem.SearchString`,匹配总数保持 0,预期为 2,替换纯空白同样受影响。临时探针 `review_find_accepts_a_space_query` 已失败。修复方向:给搜索字符串使用保留空白的参数校验,空查询由查找流程明确处理,并测试纯空格的查找与替换。
../Ely-GPUI-Components/src/menus/hosts.rs:243 — commit `967d1e4` 新增的 `ContextMenu::manual` 文档注释包含 18 个英文词,超过本轮要求的十词上限。复现:对该新增注释去掉 `///` 后按空白分词得到 18;项目内的 `tests/scripts/comments.py` 扫描范围覆盖项目目录,组件仓库的这一行需单独核对。修复方向:将该注释缩为单行十词以内。