Skip to content

fix(reliability): harden diagnostics and test infrastructure - #734

Merged
lanyue-llk merged 1 commit into
mainfrom
codex/pr640-reliability-final
Sep 22, 2026
Merged

lanyue-llk merged 1 commit into
mainfrom
codex/pr640-reliability-final

Conversation

@lanyue-llk

@lanyue-llk lanyue-llk commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

启动器关闭 stderr 后,浏览器记录脚本错误会因日志组件再次写入损坏管道而中止进程。本 PR 保留正常错误日志,关闭日志组件对自身写入失败的二次输出;同时修复 CI 产物校验和跨平台测试夹具,为后续功能 PR 提供稳定的测试前提。

Reviewer 图解入口

artifact-site:七个 PR 的职责、依赖、原 11 类与 35 题证据。建议审查顺序:734 → 735 → 736 → 737 → 738 → 739 → 740;实际依赖以指南中的有向图为准。

图解与验收证据见站点报告;精确 HEAD 与完整成功、失败记录见下文。

当前 HEAD 746e376f0179988d0aa6250cb055aee2baaebb4f 已基于 main@a54ba82a7ac6462429d2f60cd0dbd0d67c589e84 或其直接父 PR 重放;2e9c28529fb4 的真实任务/专项证据和新提交的补丁等价边界分别核对。旧测试结果只对应归档二进制;当前 HEAD 由本 PR 的 CI 单独验证。

修复机制

  • stderr:使用 tracing 的标准配置处理损坏诊断输出,并用真实子进程分别验证正常日志与关闭管道。
  • SQLite:保留 Linux 非 UTF-8 文件名场景,在 macOS 验证非 ASCII 文件名;先建立正常数据库再移动文件,隔离数据库创建与快照路径处理。
  • 布局夹具:按实际 glyph baseline 与 padding 位移验证基线关系;滚动条场景使用仓库内 Ahem 字体和不可断词,固定输入而保留最终宽度与文本几何断言。
  • 网络夹具:等待真实 socket 接入、保留 libcurl 端点和请求语义断言,避免把调度时序当作功能失败。
  • CI:验证下载结果和归档有效性,再解包发布产物。
flowchart TD
A[页面脚本错误] --> B[tracing 记录错误]
B --> C{stderr 可写?}
C -->|是| D[保留正常错误日志]
C -->|否| E[禁用日志组件自身写入失败的二次输出]
D --> F[浏览器继续完成请求]
E --> F
Loading

图示说明本 PR 的 stderr 故障处理路径。

对应验收

本 PR 验收诊断管道、CI 归档和测试夹具契约,不认领功能 35 题。

历史本地版本 22e161c8(基于 de1093d9c)已通过 cargo fmt --all、cargo clippy --workspace --all-targets --all-features -- -D warnings、cargo nextest run --no-fail-fast:18,416 通过、0 失败、13 项既有跳过。CI 脚本测试为 13/13。真实 release CLI 对照中,旧版本关闭 stderr 后 SIGABRT;修复版 exit 0 且页面内容完整,正常 stderr 仍记录脚本错误。

历史 Rust 门禁, 历史 rebase 来源, release 红绿证据, CI 脚本验证。这些结果对应所列历史版本;不表示当前 HEAD 已完成相同验收。

当前版本 标识与验证范围
HEAD 746e376f0179988d0aa6250cb055aee2baaebb4f
直接基线 a54ba82a7ac6462429d2f60cd0dbd0d67c589e84
main 基线 a54ba82a7ac6462429d2f60cd0dbd0d67c589e84
当前版本门禁 以该 HEAD 的 Format、Clippy、Nextest 结果为准;历史结果不替代当前门禁

已在 main@a54ba82a7ac6462429d2f60cd0dbd0d67c589e84 上仅重放本 PR 自身提交:11 个改动文件的 blob 和稳定 patch-id 与原 HEAD 完全相同,提交 author/committer 仍关联 lanyue-llk。原已测提交 2e9c28529fb45a22d01b1888d1e0d314cd9dc068 保存在 codex/pr640-tested-20260922-engineering;原 HEAD 的测试和 CI 只证明该旧二进制,新 HEAD 的 CI 须单独完成。

范围与依赖

直接基于 main。布局、文本、停止加载、表单分区依赖本 PR;输入与网络经布局分区间接依赖本 PR。布局生产修复由布局分区提供,工程分区只提供确定性夹具。

本 PR 替代 725,基于更新后的 main;旧 PR 保留讨论与 review 历史。原始 #640 也保留作为拆分来源。

整组功能范围为历史 1.1.9 的 34 个失败任务加 1.1.8 已失败的 386,共 35 题:布局 27、输入 4、网络 3、文本 1。历史 67 是传输超时,保留证据但不归因本组功能修复。逐 case 历史及当前归属;历史 11 类分组。历史 main@de109 的 90 题基线 为 55/90,其运行顺序与后续子集不同,结果差异本身不作为独立因果证明。

7 个 PR 的依赖及逐题验收索引、PR 与提交账号核验。

35 题最终逐项来源总表;布局是 v3 的 26 题加 v4 单独 547,不是单轮 27/27。

@github-actions

Copy link
Copy Markdown

Sequential Navigation Soak A/B

⚠️ Benchmark infrastructure failed before a comparison could be produced.

Workflow: timed_out. Inspect the workflow run for the failing build, harness, or artifact step.

No navigation resilience or memory conclusion is available for this run.

@github-actions

Copy link
Copy Markdown

CI Regression Report

Source CI run · source state at render: timed_out · artifacts: 3/5

Check Status Signal
Release regression ✅ HEAD/base failures 0/0; raw binary 0.00%
Frontend differential ✅ 1,020/1,020 cases matched; 0 issues
Agent episodes ⚪ artifact unavailable or invalid
Runtime/CDP contracts ⚪ artifact unavailable or invalid
CDP smoke ✅ 48/48 groups passed; 535 scenarios
Release regression — ✅ HEAD/base failures 0/0; raw binary 0.00%

Package and image size

Metric Base HEAD Delta Delta %
Raw binary 146.36 MiB 146.36 MiB 0 B 0.00%
Stripped binary 100.45 MiB 100.45 MiB 0 B 0.00%
gzip binary 50.09 MiB 50.09 MiB −503 B −0.000958%
Rootfs 153.26 MiB 153.26 MiB 0 B 0.00%
gzip rootfs 58.86 MiB 58.86 MiB −820 B −0.001329%

Startup latency and PSS

Case Base p50 HEAD p50 Delta Base PSS HEAD PSS Delta
Serve ready 27.13 ms 27.25 ms +0.12 ms 3.57 MiB 3.99 MiB +432.00 KiB
CDP first page 49.38 ms 51.52 ms +2.13 ms 3.91 MiB 3.65 MiB −265.00 KiB
CDP warm page 13.00 ms 13.15 ms +0.15 ms 48.61 MiB 48.18 MiB −436.50 KiB
CLI about:blank 13.40 ms 14.74 ms +1.34 ms 2.18 MiB 3.65 MiB +1.47 MiB
CLI local JS 18.64 ms 17.96 ms −0.69 ms 2.84 MiB 4.47 MiB +1.63 MiB

Concurrency matrix

Concurrency Base p50 HEAD p50 Delta Base PSS HEAD PSS Delta HEAD failures Unstable B/H
1 15.95 ms 16.55 ms +0.60 ms 1.09 MiB 1.09 MiB −1.00 KiB 0 0/0
5 19.39 ms 20.30 ms +0.91 ms 14.35 MiB 12.51 MiB −1.84 MiB 0 0/0
10 18.72 ms 19.91 ms +1.19 ms 27.88 MiB 12.69 MiB −15.19 MiB 0 0/0
25 19.68 ms 20.03 ms +0.35 ms 12.90 MiB 13.31 MiB +419.50 KiB 0 0/0
100 20.03 ms 20.75 ms +0.73 ms 27.67 MiB 17.92 MiB −9.75 MiB 0 0/0
Frontend differential — ✅ 1,020/1,020 cases matched; 0 issues
Match DOM mismatch Diagnostic mismatch Moli error Reference error Infrastructure error Mismatched frames Duration
1,020 0 0 0 0 0 0 8m 5.42s
Agent episodes · Moli vs Chromium — ⚪ artifact unavailable or invalid

Artifact unavailable or invalid. See the source CI run for infrastructure details.

Runtime and CDP session contracts — ⚪ artifact unavailable or invalid

Artifact unavailable or invalid. See the source CI run for infrastructure details.

CDP smoke — ✅ 48/48 groups passed; 535 scenarios

Workers: 4 · cumulative group time: 148.71 s · failed groups: 0

Slowest group Scenarios Duration Status
target-lifecycle 24 16.83 s ✅
multi-page 45 11.52 s ✅
chromium-cdp 56 10.96 s ✅
dom-input 27 10.67 s ✅
layout-screenshot 5 7.59 s ✅

All artifact fields are parsed by the trusted default-branch renderer; missing or invalid inputs remain visible as unavailable.

@github-actions

Copy link
Copy Markdown

Spider Bench A/B

⚠️ Spider Bench infrastructure failed before a comparison could be produced.

Workflow: timed_out. Inspect the workflow run for the failing build, harness, or artifact step.

No benchmark result or performance conclusion is available for this run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant