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

18 lines
4.4 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-tree/src/pick.rs:113 — 异步差异结果只核对 serial,每次 show 又把 serial 归零(:56),不同文件的首读都会得到 1。复现:延迟 a.txt 的读取,切到 b.txt 并等它显示,再放行 a.txt;真窗口 AX 行从“− before-b / + after-b”变成“− before-a / + after-a”,当前选择仍是 b.txt,违反 TREE-03、TREE-04。隔离 GPUI 延迟回调探针同样失败。修复方向:读取序号在窗口生命周期内保持唯一,并在回调核对发起时的仓库、路径、分区与读取身份;补上跨文件延迟完成的回归。
apps/ely-tree/src/diff.rs:197 — 把未选的删除行转成上下文时,照搬其无结尾换行标记,随后写入所选新增行会把两行拼接。复现:索引为 "one\ntwo",工作树为 "one\nTWO\nmore\n",只选 +more 暂存;Git apply 成功,实际索引变成 "one\ntwomore\n",所选独立行被合入保留的 two 行。原有无结尾换行测试只覆盖整对替换;补充探针失败。修复方向:按切片后两侧的实际行边界生成换行标记,保留 EOF 行后追加所选行时正确生成分隔换行,并覆盖暂存与反向取消暂存。
apps/ely-tree/src/work.rs:74 — 局部补丁的 apply 参数继承 apply.whitespace,用户配置能静默改写精确比较中选中的内容。复现:git config apply.whitespace fix,把 a.txt 从 "one\ntwo\n" 改成 "one\nTWO \n",选择 -two 与 +TWO 的两行暂存;操作成功,索引得到 "one\nTWO\n",两个尾随空格消失,违反 TREE-04 的可验证行选择。补充探针直接读取索引确认失败。修复方向:为局部补丁显式固定保留所选字节的 whitespace 行为,并增加带用户 apply.whitespace 配置的索引字节断言。
apps/ely-tree/src/shown.rs:190 — 通过差异输出判断 UTF-8 后,对旧 blob 使用 from_utf8_lossy;差异上下文以外的非法字节被替换成 U+FFFD,文件仍进入文本视图并开放局部暂存。复现:提交首行为 0xff、后续为 2 至 30 的文本文件,再仅追加 last 行;Git 输出的末尾差异是有效 UTF-8,shown::read 返回 Found::Text,展开首段显示替换字符。补充探针失败,违背 agents.md C13.2 对非 UTF-8 文件显示两侧大小并整体暂存的约定。修复方向:验证实际两侧内容的编码,以原始字节判断文件类型;任一侧含非法 UTF-8 时显示二进制大小并限制为整份操作,覆盖非法字节位于差异之外的场景。
apps/ely-tree/src/shown.rs:80 — 机器差异读取继承 diff.suppressBlankEmpty,但 parse 要求每条上下文行具有前导空格。复现:提交 "one\n\ntwo\n",改为 "one\n\nTWO\n",设置 git config diff.suppressBlankEmpty true;点击文件得到“无法读取此差异”,错误为 an unread diff line "",普通文本差异与局部暂存均不可用。补充探针失败。修复方向:显式规范 Git 的补丁输出格式,或兼容该配置生成的空上下文行,并确保后续补丁恢复规范格式;补上配置回归。
apps/ely-tree/src/shown.rs:220 — 空旧文件经 split('\n') 被算成一个空白行,生成文件中实际不存在的折叠行及行号。复现:提交空的 a.txt,再写入 "hello\n";stretches 返回新增 hello 的块以及一个 Folded 行,后者 old=1、new=2、text="",界面可展开虚构的“1 行未改动”。补充探针断言实际行数失败,违反 TREE-03 的差异内容和 C13.2 行号约定。修复方向:空 blob 按零行处理,增加空旧文件的行数与展开内容断言。
../Ely-GPUI-Components/src/git/viewer.rs:513 — 指定组件版本 2e080b8 的此文件实测为 513 行,超过项目和本轮审查要求的 500 行上限。复现:wc -l src/git/viewer.rs 输出 513,渲染实现本身已延伸到 :503。修复方向:将现有实现整理至每个文件最多 500 行,并以实际行数校验。
../Ely-GPUI-Components/src/git/diff.rs:163 — 本次组件改动引入的注释为 11 个词,超过本轮要求的十词上限;同批 src/git/tests.rs:155、:216 的新增注释也各为 11 个词。复现:按空白分词,分别得到 “Marks the words each removal and the addition beside it changed.”、“Past the two layout segments: the hunk's button, then its lines.”、“Each row is a stop; its icons stay hidden until hover.”,均为 11。修复方向:将这三条注释各缩至十词以内,并把组件改动纳入注释长度检查。