10 lines
3.2 KiB
Markdown
10 lines
3.2 KiB
Markdown
FAIL
|
||
|
||
crates/ely-platform/src/diagnostics.rs:130 — 引号路径的结束位置未处理转义,默认脱敏会保留路径内转义引号之后的文件名。具体复现:把 macOS 崩溃报告格式的 `{"usedImages":[{"path":"/Volumes/ClientSecret/Tax \"Salary Report\".pdf"}]}` 作为诊断包的一部分,调用 `bundle(..., Some(&Redact::default()))`,结果为 `{"usedImages":[{"path":"<path>"Salary Report\".pdf"}]}`,仍含 `Salary Report`。现有脱敏测试通过,新增断言在原实现失败;临时副本识别转义后的结束引号后通过。证据:`/tmp/ely-c18-2-r3/diagnostic-extra.log`、`diagnostic-baseline-tests.log`、`diagnostic-repair-tests.log`。修复方向:按输入格式识别完整引号字符串,处理转义引号,再替换整个路径;覆盖崩溃报告中的合法带引号文件名。
|
||
|
||
crates/ely-platform/src/diagnostics.rs:163 — 按字节截取日志尾部后直接脱敏,截断点落在路径中间时,路径前缀消失,剩余文件名被原样导出。具体复现:日志以 `opened '/Volumes/ClientSecret/Tax Salary Report.pdf'\n` 开始,后接填充日志,使最后 4 MiB 恰好从 `Tax Salary Report.pdf` 开始;经 `gather(AppId::Doc)` 和默认脱敏的 `bundle` 导出,第一行仍含该文件名。新增断言在原实现失败;副本跳过被截断的首行后通过,原有日志尾部测试也通过。证据:`/tmp/ely-c18-2-r3/diagnostic-probe.log`、`diagnostic-baseline-tests.log`、`diagnostic-repair-tests.log`。修复方向:尾部读取从完整记录边界开始,覆盖截断点位于路径及姓名内部的回归。
|
||
|
||
crates/ely-platform/src/diagnostics.rs:97 — `of_account` 忽略姓名来源的读取错误,导出流程继续把缺少作者名的过滤器当作成功脱敏。具体复现:隔离 HOME 下的共享配置为 `{"version":1,"appearance":"ZqxAuthor42","author":"ZqxAuthor42"}`;启动真实 ElyDoc 后,设置读取失败的应用日志含姓名 `ZqxAuthor42`。使用 `Redact::of_account()` 导出该应用日志,调用成功且姓名完整保留。账户姓名读取的 `.ok()` 也会丢弃读取错误。证据:`/tmp/ely-c18-2-r3/invalid-settings-app.log`、`diagnostic-extra.log`;副本让姓名来源错误经 `Result` 返回后,阻止脱敏导出的断言通过。修复方向:将脱敏资料读取错误传回设置导出流程,显示具体失败并保留重试入口,资料读取成功后再导出。
|
||
|
||
crates/ely-lok/src/bin/ely-lok-worker.rs:14 — worker 启动失败仍用非结构化 `eprintln!` 输出原因,该记录被新的 `relay` 当作原生输出丢弃,客户端也仅收到管道关闭。具体复现:使用有效的空 profile 目录,对不存在的安装目录调用真实 `Worker::spawn`;worker 的原始错误为 `lok-worker: No such file or directory (os error 2)`,客户端只返回 `the lok worker failed: the lok worker closed its output (exit status: 1)`,文件系统错误原因消失。证据:`/tmp/ely-c18-2-r3/startup-probe.log`。修复方向:让 worker 自己的启动失败使用中继可识别的结构化记录,并通过启动错误通道向客户端保留可显示的失败原因;增加真实 worker 初始化失败的回归。
|