Files
ElyOffice/tasks/reviews/C14.3-r1.md
T

16 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
apps/ely-mark/web/src/main.js:92 — 在另一模式编辑后返回时,`drop(entry)` 销毁原编辑器及其撤销历史,违反 PRD §14.3 的“保留内容历史与当前修订”。真窗口复现:打开 `Alpha.\n`,可视模式键入 `v`,源码模式键入 `s`,返回可视,连续 Cmd+Z 两次并保存,落盘仍为 `svAlpha.\n`;同模式编辑、撤销的对照用例通过。CEF 探针测得可视历史深度从 1 变为 0,经预览往返的对照仍为 1。方向:让本文件的编辑事务和历史跨模式保持连续,模式切换同步当前修订。证据:`/tmp/ely-c143-r1-logs/mark-history.log`、`history-after.log`、`reviewprobe.log`。
crates/ely-office/src/rename.rs:82 — 重命名完成回调在发起标签已关闭时仍调用 `sessions.open`,创建没有标签承接的会话登记,随后打开该文件会被这个登记挡住。隔离副本仅在文件系统改名调用前延迟 2 秒:发起 `a.md → closed.md`,通过正常 `request_close` 关闭干净标签,等改名完成后重新打开 `closed.md`;实测关闭后的标签数为 0、登记为 `Ok(true)`,重新打开进入 `Open::Focus`,最终仍是 `tabs=0, active=None`。方向:完成回调先核对发起标签的存活和路径身份,再更新登记;关闭标签后完成的操作应保持登记与现存标签一致。证据:`/tmp/ely-c143-r1-logs/rename-race.err`。
crates/ely-web-content/src/surface.rs:118 — `file_url` 把 Windows 驱动器冒号和路径反斜杠都转义到 `file://` 的 authority 中,生成无效 URL。按现有函数算法处理 `C:\Users\Alice\notes\doc.md`,结果为 `file://C%3A%5CUsers%5CAlice%5Cnotes%5Cdoc.md`,URL 解析器直接报 `Invalid URL`;Windows 的内容页面路径和图片目录均经过此函数,因而页面载入及本地图片解析受影响。本轮验证的是路径转换与 URL 解析,Windows 应用运行仍未验证。方向:按平台处理驱动器、UNC 和规范化路径,生成合法 file URL,并让路径围栏使用对应的反向转换。证据:`/tmp/ely-c143-r1-logs/file-url.log`。
apps/ely-mark/web/src/main.js:128 — 新模式异步构建期间 `current` 为 null,后续模式请求直接返回,用户最后选择的模式被丢弃。真 CEF 页面从源码模式连续调用 `ely.mode('visual')`、`ely.mode('preview')`,第二次调用返回 undefined,最终页面模式为 visual。相同路径可由快速连续的 Cmd+1、Cmd+3 触发。方向:保留最新模式请求和对应文本修订,使构建完成后呈现最后一次选择,并覆盖构建中的连续切换。证据:`/tmp/ely-c143-r1-logs/reviewprobe.log` 的 `mode_race`。
tests/scripts/mark-modes.sh:122 — “新建为空文档”的检查只等待 visual 模式日志,缺少内容断言,支撑不了 TASKS.md 的空文档验证声明。隔离副本把 `Desk::on_new` 的空字符串改成 `REVIEW_NONEMPTY\n`,重新构建后完整脚本仍输出 `ok: mark modes`、退出码 0。方向:对新建标签的实际空内容做断言,让非空初始化变异触发失败。证据:`/tmp/ely-c143-r1-logs/new-mutation.diff`、`mark-modes-new-mutation.log`;原实现的 mark-modes.sh、mark-content.sh、mark-session.sh 均独立通过,相关五个 crate 单测共 140 通过、1 忽略,Doc/Table/Show/PDF/Mark 调用点编译检查通过。
crates/ely-web-content/src/handlers.rs:501 — 文件实测 507 行,违反 agents.md 的每文件 500 行上限。方向:拆出完整的一组 CEF handler 职责,使各源码文件符合行数上限。
crates/ely-office/src/rename.rs:29 — `Renaming: Host` 为全部 Host 引入通用扩展 trait,经 lib.rs 和 prelude 公开,产品调用者实际只有 `apps/ely-mark/src/desk.rs`,违反 agents.md 的“无第二个使用者的抽象”约束。全项目调用点扫描确认其他文档应用沿用 FILE 命令表,只有 Desk 调用该 trait 的 rename。方向:将 Mark 专属的改名流程落实到 Desk,保留 ely-files 的平台原子改名函数。