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

4.3 KiB

FAIL

apps/ely-mark/web/src/preserve.js:74 — 修改段落时直接序列化整个段落,破坏其中的未知扩展语法,违反 PRD §14.3、QA-21。复现:打开 Alpha with [[Wiki Link]].\n,在段首键入 x 后保存,实际字节为 xAlpha with \[\[Wiki Link]].\n;未知链接被加上转义。真窗口原生键入与保存已复现。修复方向:保留未编辑的未知语法原文;无法保证保留的结构使用原文块或源码编辑,并加入在未知语法所在段落编辑的字节断言。证据:/tmp/ely-c142-r1-logs/wiki-bytes.log、wiki-native.log。现有 tests/scripts/mark-session.sh 和四项文本单测均独立运行通过。

apps/ely-mark/web/src/preserve.js:60 — 原文对应与差异仅覆盖顶层节点,引用和列表内部的局部编辑会序列化整个容器,改写无关段落与代码块,违反 PRD §14.3、QA-21。复现:打开 > First.\n>\n> Setext\n> ======\n>\n> Last with [[Wiki]].\n,仅在首段键入 x 并保存,后面的 Setext 标题变成 > # Setext,末段变成 > Last with \[\[Wiki]].;另一个引用样本中,未编辑的 ~~~~python 围栏变成三个反引号。列表首项编辑同样重写后续项目。修复方向:对应到实际修改的子块,保留其余子块原文;无法对应的容器走原文块或源码模式,补充嵌套段落和代码块的保存回归。证据:/tmp/ely-c142-r1-logs/quote-bytes.log、quote-native.log、preservation-results.log。

apps/ely-mark/web/src/preserve.js:79 — 保留编辑器隐藏的块间原文时调用 trim(),随后重新插入到修改块末尾,造成未编辑的链接定义被改写,违反 PRD §14.3、QA-21。复现:打开 Alpha.\n\n[r]: /path " T " \n\nBeta.\n\nTail.\n,将插入点移动到首段末尾并按 Forward Delete 合并两个可见段落,保存结果为 Alpha.Beta.\n\n[r]: /path " T "\n\nTail.\n;链接定义被移到合并段落后,原有三个尾部空格被删除。真窗口键盘操作与保存已复现。修复方向:将隐藏语法作为带原始字节和位置关系的保留片段处理,保持其原文;无法可靠合并的边界使用源码编辑,补充跨隐藏定义的合并和删除测试。证据:/tmp/ely-c142-r1-logs/gap-bytes.log、gap-native-clean.log。

apps/ely-mark/src/view.rs:62 — 页面重载后沿用旧的 changed、reported,而 main.js:8 的页面版本从零开始,恢复后的新编辑会被判为旧文本丢弃,保存仍宣称成功,违反文件会话内容与修订一致性的要求。复现:分别键入 x、z 并保存,使旧版本为 2;通过真实 CEF Page.crash 终止页面,经原生 AX 按下 Reload 后用 CEF Input.insertText 输入 y。页面显示 yxzAlpha with [[Wiki Link]].,日志出现 mark: an older text was dropped;原生 Cmd+S 记录保存成功,磁盘仍为 xzAlpha with \[\[Wiki Link]].\n,新增的 y 丢失。修复方向:为每次页面载入建立独立代次并同步版本基线,过滤旧代次回报,确保保存等待当前代次的全文;加入崩溃恢复后的编辑、保存和关闭测试。证据:/tmp/ely-c142-r1-logs/wiki-native.log、crashed-ax.log、reload-dom.log、reload-bytes.log。

apps/ely-mark/src/engine.rs:52 — 普通 Markdown 读取的 PermissionDenied 原样进入外壳的加密询问路径(open.rs:181),系统权限错误被隐藏为密码错误。复现:创建 UTF-8 文件并设为 chmod 000 后用 ElyMark 打开,窗口出现密码框;输入 abc 并回车后再次要求密码,日志将普通文件记为 is locked、a password failed: true,应用未显示实际读取权限错误。修复方向:在 Mark 载入路径明确区分普通文件读取错误与引擎确认的加密状态,使权限失败显示系统错误并结束打开流程;补充无读取权限的文件测试。证据:/tmp/ely-c142-r1-logs/denied-native.log、denied-ax.log。

apps/ely-mark/web/src/preserve.js:4 — 注释 Pairs of equal runs between a and b, by Myers' diff. 共 11 个英文词,超过 agents.md 的十词限制。复现:去除注释界定符和内联代码标记后按空白分词得到 11。修复方向:缩短至十词以内。证据:/tmp/ely-c142-r1-logs/verification.log;该日志同时记录五个应用的独立编译检查通过、审查副本已删除及原源码散列保持一致。