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

14 lines
3.9 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
crates/ely-ipc/src/relay.rs:10 — 原样记录引擎 stderr 会把文档正文写入诊断日志,违反 PRD §18.2。复现:生成一页 PDF,内容流包含 `(ZqxPrivate42) Tj` 和损坏的操作符 `ZqxPrivate42`;对本轮独立构建的 PDF worker 发 OPEN、TEXT,stderr 出现 `syntax error: unknown keyword: 'ZqxPrivate42'`。同一 relay 将该行逐字写入应用的 ely.log;默认诊断导出也会携带该正文。证据:`/tmp/ely-c18-2-r1/pdf-privacy.log`、`relay.log`。修复方向:在引擎原生错误/警告输出与应用日志之间建立内容边界,日志仅记录经过审核的诊断字段;包含文档数据的原始错误通过用户错误通道交付。增加损坏 PDF 的真实 worker 日志回归。
crates/ely-platform/src/diagnostics.rs:101 — “去掉路径与个人姓名”仅替换家目录前缀,仍导出其他完整路径。复现:日志为 `opened /Volumes/ClientSecret/payroll.pdf`,使用家目录 `/Users/ana` 的默认 Redact 调用 bundle,导出的内容仍含 `/Volumes/ClientSecret/payroll.pdf`,文件分隔标题也保留原始路径。补充测试 `probe_bundle`、`probe_paths_and_names` 均失败,见 `/tmp/ely-c18-2-r1/probes.log`;现有 privacy.sh 只检查家目录,两个完整运行均打印成功。修复方向:脱敏日志正文与文件标题中的文件路径及 URL,覆盖外置卷、家目录外的目录和各平台路径形式,并加入对应导出断言。
crates/ely-platform/src/diagnostics.rs:105 — 按原顺序逐个替换姓名会让长姓名被短姓名提前拆开,个人信息仍进入默认导出。复现:账户名为 `Ana`、设置作者名为 `Ana Lee`;of_account 将账户名排在作者名前,apply(`Ana Lee`) 得到 `<user> Lee`,姓氏仍保留。`probe_overlapping_names` 实测失败,见 `/tmp/ely-c18-2-r1/probes.log`。修复方向:优先匹配完整的最长姓名,避免替换结果破坏后续匹配;为账户名与作者名重叠的情况加入回归断言。
crates/ely-platform/src/diagnostics.rs:26 — ely.log 元数据查询的错误被吞掉,诊断页面将读取失败显示为空列表。复现:将日志位置设为指向自身的符号链接,metadata 返回 ELOOP,gather 却返回 `Ok([])`,页面显示“暂无可导出的内容”;目录权限导致的 PermissionDenied 也走同一路径。`probe_log_error` 实测失败,见 `/tmp/ely-c18-2-r1/probes.log`。修复方向:仅将 NotFound 作为日志尚未创建处理,其余元数据错误返回给现有诊断错误界面,并测试读取失败的情况。
crates/ely-ipc/src/relay.rs:10 — relay 将 worker 原始模块 target 改为 `lok-worker`/`pdf-worker` 后再次过滤,导致两端共享 ELY_LOG 时丢失按模块开启的日志。复现:设置 `ELY_LOG=ely_lok=warn`,worker 的 `[... WARN ely_lok::worker] worker reached` 满足其日志过滤条件;应用 relay 使用 `lok-worker` target,落盘日志为 0 字节。独立构建的 relay 探针在 `ELY_LOG=info` 下记录同一告警,见 `/tmp/ely-c18-2-r1/relay.log`、`relay-filter.log`。修复方向:保留结构化 worker 记录的原始模块 target 与等级,使同一 ELY_LOG 过滤规则在汇总后继续有效,并覆盖模块过滤配置的回归。
tests/scripts/privacy.sh:8 — EXIT trap 中终止子进程后直接 wait,在 set -e 下以子进程的 SIGTERM 状态中断清理,成功验收也返回失败。复现:本轮两次完整真窗口运行均输出 `ok: privacy`,随后退出码为 143,两个临时目录均残留;相同 trap 的最小子进程复现也返回 143,后续清理语句跳过。证据:`/tmp/ely-c18-2-r1/privacy.log`、`privacy-repeat.log`、`verification.log`。修复方向:保存验收退出状态,对已设置的 pid 执行终止与回收,显式处理预期的 wait 状态,确保临时目录清理完成后返回原验收状态;同时覆盖成功和启动失败的清理路径。