3.2 KiB
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 初始化失败的回归。