[INFO] fetching crate opendev-runtime 0.1.4...
[INFO] testing opendev-runtime-0.1.4 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate opendev-runtime 0.1.4 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate opendev-runtime 0.1.4
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate opendev-runtime 0.1.4
[INFO] tweaked toml for crates.io crate opendev-runtime 0.1.4 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate opendev-runtime 0.1.4 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate opendev-runtime 0.1.4 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bc054e7505c9687ffabcc457d129ddd89e730556102e41666bf8dab68d851620
[INFO] running `Command { std: "docker" "start" "-a" "bc054e7505c9687ffabcc457d129ddd89e730556102e41666bf8dab68d851620", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc054e7505c9687ffabcc457d129ddd89e730556102e41666bf8dab68d851620", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc054e7505c9687ffabcc457d129ddd89e730556102e41666bf8dab68d851620", kill_on_drop: false }`
[INFO] [stdout] bc054e7505c9687ffabcc457d129ddd89e730556102e41666bf8dab68d851620
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 753a14724b7cc6657f7b967be0c186c9f6bf1c6023f9e61f54df653ffb917b17
[INFO] running `Command { std: "docker" "start" "-a" "753a14724b7cc6657f7b967be0c186c9f6bf1c6023f9e61f54df653ffb917b17", kill_on_drop: false }`
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling aws-lc-sys v0.39.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling ts-rs-macros v10.1.0
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling iri-string v0.7.11
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ts-rs v10.1.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling opendev-models v0.1.4
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling opendev-config v0.1.4
[INFO] [stderr]    Compiling opendev-runtime v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 18s
[INFO] running `Command { std: "docker" "inspect" "753a14724b7cc6657f7b967be0c186c9f6bf1c6023f9e61f54df653ffb917b17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "753a14724b7cc6657f7b967be0c186c9f6bf1c6023f9e61f54df653ffb917b17", kill_on_drop: false }`
[INFO] [stdout] 753a14724b7cc6657f7b967be0c186c9f6bf1c6023f9e61f54df653ffb917b17
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f44e97a8e9b60934906141ee1031e9119073efe6a24d166dfea973e68c2f81e3
[INFO] running `Command { std: "docker" "start" "-a" "f44e97a8e9b60934906141ee1031e9119073efe6a24d166dfea973e68c2f81e3", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling opendev-config v0.1.4
[INFO] [stderr]    Compiling opendev-runtime v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]  --> src/sound_tests.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |     assert!(now >= 0);
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 46.39s
[INFO] running `Command { std: "docker" "inspect" "f44e97a8e9b60934906141ee1031e9119073efe6a24d166dfea973e68c2f81e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f44e97a8e9b60934906141ee1031e9119073efe6a24d166dfea973e68c2f81e3", kill_on_drop: false }`
[INFO] [stdout] f44e97a8e9b60934906141ee1031e9119073efe6a24d166dfea973e68c2f81e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 231e35b4363389290585b3e0cfa3afa9fdfd6e402226dfcba8cdd3b60064eaa4
[INFO] running `Command { std: "docker" "start" "-a" "231e35b4363389290585b3e0cfa3afa9fdfd6e402226dfcba8cdd3b60064eaa4", kill_on_drop: false }`
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]  --> src/sound_tests.rs:7:13
[INFO] [stderr]   |
[INFO] [stderr] 7 |     assert!(now >= 0);
[INFO] [stderr]   |             ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `opendev-runtime` (lib test) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/opendev_runtime-147ac723c448e30b)
[INFO] [stdout] 
[INFO] [stdout] running 366 tests
[INFO] [stdout] test action_summarizer::tests::test_capitalize_first ... ok
[INFO] [stdout] test action_summarizer::tests::test_default_max_length ... ok
[INFO] [stdout] test action_summarizer::tests::test_summarize_action_verb ... ok
[INFO] [stdout] test action_summarizer::tests::test_first_sentence ... ok
[INFO] [stdout] test action_summarizer::tests::test_verb_already_gerund ... ok
[INFO] [stdout] test action_summarizer::tests::test_summarize_intent_prefix ... ok
[INFO] [stdout] test action_summarizer::tests::test_verb_to_gerund ... ok
[INFO] [stdout] test action_summarizer::tests::test_summarize_fallback ... ok
[INFO] [stdout] test action_summarizer::tests::test_summarize_truncation ... ok
[INFO] [stdout] test approval::tests::test_add_remove_rule ... ok
[INFO] [stdout] test approval::tests::test_history ... ok
[INFO] [stdout] test approval::tests::test_disabled_rule_never_matches ... ok
[INFO] [stdout] test action_summarizer::tests::test_summarize_let_me ... ok
[INFO] [stdout] test approval::tests::test_manager_default_rules ... ok
[INFO] [stdout] test approval::tests::test_rule_command_match ... ok
[INFO] [stdout] test approval::tests::test_update_rule ... ok
[INFO] [stdout] test approval::tests::test_invalid_regex_returns_false ... ok
[INFO] [stdout] test approval::tests::test_clear_persistent_rules ... ok
[INFO] [stdout] test approval::tests::test_rule_pattern_match ... ok
[INFO] [stdout] test approval::tests::test_rule_prefix_match ... ok
[INFO] [stdout] test approval::tests::test_persistent_rules_roundtrip ... ok
[INFO] [stdout] test ask_user_channel::tests::test_ask_user_roundtrip ... ok
[INFO] [stdout] test constants::tests::test_autonomy_level_display ... ok
[INFO] [stdout] test constants::tests::test_autonomy_level_parse ... ok
[INFO] [stdout] test constants::tests::test_autonomy_level_serde_roundtrip ... ok
[INFO] [stdout] test constants::tests::test_chained_safe_commands ... ok
[INFO] [stdout] test constants::tests::test_env_and_path_combined ... ok
[INFO] [stdout] test constants::tests::test_chained_with_unsafe_blocked ... ok
[INFO] [stdout] test constants::tests::test_env_var_prefix_stripped ... ok
[INFO] [stdout] test constants::tests::test_extract_command_prefix ... ok
[INFO] [stdout] test constants::tests::test_file_redirect_blocked ... ok
[INFO] [stdout] test constants::tests::test_is_env_assignment_helper ... ok
[INFO] [stdout] test approval::tests::test_evaluate_command_priority ... ok
[INFO] [stdout] test constants::tests::test_is_safe_command ... ok
[INFO] [stdout] test approval::tests::test_list_persistent_rules_excludes_defaults ... ok
[INFO] [stdout] test constants::tests::test_normalize_segment_helper ... ok
[INFO] [stdout] test constants::tests::test_path_prefix_stripped ... ok
[INFO] [stdout] test constants::tests::test_pipe_all_segments_safe ... ok
[INFO] [stdout] test constants::tests::test_safe_command_build_tools ... ok
[INFO] [stdout] test constants::tests::test_safe_command_case_insensitive ... ok
[INFO] [stdout] test constants::tests::test_pipe_with_unsafe_blocked ... ok
[INFO] [stdout] test constants::tests::test_safe_command_containers_and_ci ... ok
[INFO] [stdout] test constants::tests::test_safe_command_git_extended ... ok
[INFO] [stdout] test constants::tests::test_safe_command_linters_and_testing ... ok
[INFO] [stdout] test constants::tests::test_safe_command_system_info ... ok
[INFO] [stdout] test constants::tests::test_safe_command_text_processing ... ok
[INFO] [stdout] test constants::tests::test_safe_command_version_checks ... ok
[INFO] [stdout] test constants::tests::test_split_shell_segments_helper ... ok
[INFO] [stdout] test constants::tests::test_stderr_redirect_allowed ... ok
[INFO] [stdout] test constants::tests::test_shell_injection_blocked ... ok
[INFO] [stdout] test constants::tests::test_unsafe_commands_still_blocked ... ok
[INFO] [stdout] test cost_tracker::tests::test_anthropic_cache_discount_accuracy ... ok
[INFO] [stdout] test cost_tracker::tests::test_basic_cost_tracking ... ok
[INFO] [stdout] test cost_tracker::tests::test_budget_exactly_met ... ok
[INFO] [stdout] test cost_tracker::tests::test_budget_exceeded_after_usage ... ok
[INFO] [stdout] test cost_tracker::tests::test_cost_sum_across_multiple_calls ... ok
[INFO] [stdout] test cost_tracker::tests::test_format_cost_large ... ok
[INFO] [stdout] test cost_tracker::tests::test_cumulative_tracking ... ok
[INFO] [stdout] test cost_tracker::tests::test_format_cost_small ... ok
[INFO] [stdout] test cost_tracker::tests::test_budget_not_exceeded ... ok
[INFO] [stdout] test cost_tracker::tests::test_budget_serialization ... ok
[INFO] [stdout] test cost_tracker::tests::test_cache_read_tokens ... ok
[INFO] [stdout] test cost_tracker::tests::test_no_budget_not_over ... ok
[INFO] [stdout] test cost_tracker::tests::test_no_pricing_tracks_tokens_only ... ok
[INFO] [stdout] test cost_tracker::tests::test_openai_pricing_accuracy ... ok
[INFO] [stdout] test cost_tracker::tests::test_over_200k_tier_multiplier ... ok
[INFO] [stdout] test cost_tracker::tests::test_restore_missing_cost_tracking ... ok
[INFO] [stdout] test cost_tracker::tests::test_round_f64 ... ok
[INFO] [stdout] test cost_tracker::tests::test_set_budget ... ok
[INFO] [stdout] test cost_tracker::tests::test_tiered_pricing_over_200k ... ok
[INFO] [stdout] test cost_tracker::tests::test_token_usage_from_json ... ok
[INFO] [stdout] test cost_tracker::tests::test_zero_price_model ... ok
[INFO] [stdout] test cost_tracker::tests::test_budget_exceeded ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_positional_args ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_arguments ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_empty_arguments ... ok
[INFO] [stdout] test cost_tracker::tests::test_to_metadata_and_restore ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_combined ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_context_variables ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_parse_frontmatter_none ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_unreplaced_positional_cleaned ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_parse_frontmatter_basic ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_parse_frontmatter_no_closing ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_shell_command ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_parse_frontmatter_quoted_values ... ok
[INFO] [stdout] test custom_commands::tests::test_loader_claude_commands_dir_not_loaded ... ok
[INFO] [stdout] test custom_commands::tests::test_frontmatter_description_overrides_hash ... ok
[INFO] [stdout] test custom_commands::tests::test_loader_caching_and_reload ... ok
[INFO] [stdout] test custom_commands::tests::test_command_info_includes_model_agent ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_shell_no_substitution ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_shell_command_failure ... ok
[INFO] [stdout] test custom_commands::expansion::tests::test_expand_shell_command_with_args ... ok
[INFO] [stdout] test custom_commands::tests::test_loader_empty_dir ... ok
[INFO] [stdout] test custom_commands::tests::test_loader_loads_md_files ... ok
[INFO] [stdout] test debug_logger::tests::test_active_logger ... ok
[INFO] [stdout] test debug_logger::tests::test_noop_logger ... ok
[INFO] [stdout] test custom_commands::tests::test_loader_frontmatter_metadata ... ok
[INFO] [stdout] test custom_commands::tests::test_list_and_get_commands ... ok
[INFO] [stdout] test error_handler::tests::test_available_actions_no_retry_no_edit ... ok
[INFO] [stdout] test debug_logger::tests::test_truncation ... ok
[INFO] [stdout] test error_handler::tests::test_error_action_serialize ... ok
[INFO] [stdout] test error_handler::tests::test_error_action_from_char ... ok
[INFO] [stdout] test error_handler::tests::test_error_action_roundtrip ... ok
[INFO] [stdout] test error_handler::tests::test_is_transient_error ... ok
[INFO] [stdout] test error_handler::tests::test_error_result_constructors ... ok
[INFO] [stdout] test debug_logger::tests::test_elapsed_ms ... ok
[INFO] [stdout] test error_handler::tests::test_available_actions_all ... ok
[INFO] [stdout] test error_handler::tests::test_resolve_choice_invalid ... ok
[INFO] [stdout] test debug_logger::tests::test_nested_truncation ... ok
[INFO] [stdout] test error_handler::tests::test_resolve_choice_valid ... ok
[INFO] [stdout] test errors::tests::test_classify_gateway_401_html ... ok
[INFO] [stdout] test errors::tests::test_classify_context_overflow_anthropic ... ok
[INFO] [stdout] test errors::tests::test_classify_gateway_html ... ok
[INFO] [stdout] test errors::tests::test_classify_context_overflow_openai ... ok
[INFO] [stdout] test errors::tests::test_classify_context_overflow_google ... ok
[INFO] [stdout] test errors::tests::test_classify_auth_by_status_code ... ok
[INFO] [stdout] test errors::tests::test_error_code_auth ... ok
[INFO] [stdout] test errors::tests::test_display_includes_error_code ... ok
[INFO] [stdout] test errors::tests::test_error_code_context_overflow ... ok
[INFO] [stdout] test errors::tests::test_error_code_gateway ... ok
[INFO] [stdout] test errors::tests::test_error_code_api ... ok
[INFO] [stdout] test errors::tests::test_error_code_rate_limit ... ok
[INFO] [stdout] test errors::tests::test_error_code_unknown ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_auth ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_context_overflow ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_fallback_serialization ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_gateway ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_non_retryable_api ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_rate_limit_default_delay ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_rate_limit_with_retry_after ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_reduce_context_serialization ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_retryable_api ... ok
[INFO] [stdout] test errors::tests::test_recovery_strategy_serialization ... ok
[INFO] [stdout] test errors::tests::test_structured_error_display ... ok
[INFO] [stdout] test errors::tests::test_structured_error_serialization ... ok
[INFO] [stdout] test errors::tests::test_to_json_context_overflow_includes_tokens ... ok
[INFO] [stdout] test errors::tests::test_to_json_includes_error_code ... ok
[INFO] [stdout] test errors::tests::test_to_json_omits_none_fields ... ok
[INFO] [stdout] test event_bus::tests::test_budget_exhausted_event_topic ... ok
[INFO] [stdout] test event_bus::tests::test_budget_exhausted_received_by_cost_subscriber ... ok
[INFO] [stdout] test event_bus::tests::test_budget_exhausted_serialization ... ok
[INFO] [stdout] test event_bus::tests::test_bus_clone ... ok
[INFO] [stdout] test event_bus::tests::test_bus_creation ... ok
[INFO] [stdout] test event_bus::tests::test_debug_format ... ok
[INFO] [stdout] test event_bus::tests::test_event_creation ... ok
[INFO] [stdout] test errors::tests::test_classify_unknown ... ok
[INFO] [stdout] test event_bus::tests::test_event_topic_serialization ... ok
[INFO] [stdout] test event_bus::tests::test_filtered_subscriber ... ok
[INFO] [stdout] test event_bus::tests::test_group_events_by_type ... ok
[INFO] [stdout] test event_bus::tests::test_group_runtime_events_by_topic ... ok
[INFO] [stdout] test event_bus::tests::test_legacy_event_into_runtime_event ... ok
[INFO] [stdout] test event_bus::tests::test_multiple_subscribers ... ok
[INFO] [stdout] test errors::tests::test_classify_rate_limit ... ok
[INFO] [stdout] test event_bus::tests::test_no_subscribers ... ok
[INFO] [stdout] test event_bus::tests::test_now_ms_is_positive ... ok
[INFO] [stdout] test event_bus::tests::test_publish_subscribe ... ok
[INFO] [stdout] test event_bus::tests::test_runtime_event_serialization ... ok
[INFO] [stdout] test event_bus::tests::test_runtime_event_topic ... ok
[INFO] [stdout] test errors::tests::test_classify_rate_limit_with_retry_after ... ok
[INFO] [stdout] test event_bus::tests::test_topic_subscriber_filters ... ok
[INFO] [stdout] test errors::tests::test_classify_generic_500 ... ok
[INFO] [stdout] test event_bus::tests::test_topic_subscriber_multiple_topics ... ok
[INFO] [stdout] test event_bus::tests::test_topic_subscriber_topics_accessor ... ok
[INFO] [stdout] test event_bus::tests::test_typed_publish_subscribe ... ok
[INFO] [stdout] test file_watcher::tests::test_file_watcher_inactivity_timeout ... ignored, slow: macOS FSEvents debouncer cleanup takes ~24s
[INFO] [stdout] test file_watcher::tests::test_file_watcher_start_and_stop ... ignored, slow: macOS FSEvents debouncer cleanup takes ~24s
[INFO] [stdout] test gitignore::tests::test_matches_pattern_doublestar ... ok
[INFO] [stdout] test file_watcher::tests::test_file_watcher_config_default ... ok
[INFO] [stdout] test file_watcher::tests::test_should_ignore_git ... ok
[INFO] [stdout] test gitignore::tests::test_always_ignored ... ok
[INFO] [stdout] test gitignore::tests::test_always_ignored_dirs ... ok
[INFO] [stdout] test gitignore::tests::test_empty_gitignore ... ok
[INFO] [stdout] test interrupt::tests::test_background_clone_shares_state ... ok
[INFO] [stdout] test gitignore::tests::test_matches_pattern_no_slash ... ok
[INFO] [stdout] test gitignore::tests::test_relative_path ... ok
[INFO] [stdout] test gitignore::tests::test_simple_match ... ok
[INFO] [stdout] test errors::tests::test_classify_auth_by_pattern ... ok
[INFO] [stdout] test gitignore::tests::test_negation_pattern ... ok
[INFO] [stdout] test gitignore::tests::test_parser_with_gitignore ... ok
[INFO] [stdout] test gitignore::tests::test_path_outside_root ... ok
[INFO] [stdout] test interrupt::tests::test_child_token ... ok
[INFO] [stdout] test interrupt::tests::test_clone_shares_state ... ok
[INFO] [stdout] test interrupt::tests::test_request_background_cancels_but_no_hard_flag ... ok
[INFO] [stdout] test interrupt::tests::test_request_background_sets_flag ... ok
[INFO] [stdout] test interrupt::tests::test_request_sets_flag ... ok
[INFO] [stdout] test interrupt::tests::test_debug_format ... ok
[INFO] [stdout] test interrupt::tests::test_force_interrupt ... ok
[INFO] [stdout] test interrupt::tests::test_new_token_not_requested ... ok
[INFO] [stdout] test interrupt::tests::test_reset ... ok
[INFO] [stdout] test interrupt::tests::test_request_idempotent ... ok
[INFO] [stdout] test interrupt::tests::test_throw_if_requested_ok ... ok
[INFO] [stdout] test interrupt::tests::test_throw_if_requested_err ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_clone_shares_state ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_fallible_init_failure_allows_retry ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_debug_format ... ok
[INFO] [stdout] test lazy_init::tests::test_create_lazy_subsystems ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_init_on_first_use ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_fallible_init_success ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_name ... ok
[INFO] [stdout] test lazy_init::tests::test_lazy_init_only_once ... ok
[INFO] [stdout] test lazy_init::tests::test_sync_lazy_debug_format ... ok
[INFO] [stdout] test lazy_init::tests::test_sync_lazy_init ... ok
[INFO] [stdout] test permissions::glob::tests::test_glob_double_star ... ok
[INFO] [stdout] test permissions::glob::tests::test_glob_exact_match ... ok
[INFO] [stdout] test permissions::glob::tests::test_glob_star ... ok
[INFO] [stdout] test lazy_init::tests::test_sync_lazy_name ... ok
[INFO] [stdout] test lazy_init::tests::test_sync_lazy_try_get ... ok
[INFO] [stdout] test permissions::glob::tests::test_glob_star_matches_slash_in_permission_mode ... ok
[INFO] [stdout] test permissions::glob::tests::test_glob_path_star_no_slash ... ok
[INFO] [stdout] test permissions::glob::tests::test_glob_question_mark ... ok
[INFO] [stdout] test permissions::tests::test_defaults_deny_env_files ... ok
[INFO] [stdout] test permissions::tests::test_is_sensitive_file ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_directory_scope ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_basic_allow ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_empty_returns_none ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_remove_rules ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_priority_ordering ... ok
[INFO] [stdout] test plan_index::tests::test_corrupted_index_returns_default ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_prompt_action ... ok
[INFO] [stdout] test permissions::tests::test_ruleset_scoped_and_unscoped_mix ... ok
[INFO] [stdout] test plan_index::tests::test_empty_index ... ok
[INFO] [stdout] test plan_approval::tests::test_plan_approval_roundtrip ... ok
[INFO] [stdout] test plan_index::tests::test_add_and_list ... ok
[INFO] [stdout] test plan_index::tests::test_persistence_across_instances ... ok
[INFO] [stdout] test plan_index::tests::test_remove_nonexistent_is_noop ... ok
[INFO] [stdout] test plan_names::tests::test_fallback_with_suffix ... ok
[INFO] [stdout] test plan_names::tests::test_collision_avoidance ... ok
[INFO] [stdout] test plan_names::tests::test_generate_plan_name_unique ... ok
[INFO] [stdout] test plan_names::tests::test_word_lists_not_empty ... ok
[INFO] [stdout] test sandbox::tests::test_command_with_env_prefix ... ok
[INFO] [stdout] test sandbox::tests::test_command_with_full_path ... ok
[INFO] [stdout] test sandbox::tests::test_disabled_allows_everything ... ok
[INFO] [stdout] test sandbox::tests::test_empty_command ... ok
[INFO] [stdout] test sandbox::tests::test_enabled_blocks_unlisted_commands ... ok
[INFO] [stdout] test sandbox::tests::test_error_messages_are_descriptive ... ok
[INFO] [stdout] test sandbox::tests::test_extract_base_command ... ok
[INFO] [stdout] test interrupt::tests::test_cancelled_future ... ok
[INFO] [stdout] test sandbox::tests::test_for_project_preset ... ok
[INFO] [stdout] test plan_index::tests::test_get_by_session ... ok
[INFO] [stdout] test sandbox::tests::test_path_traversal_blocked ... ok
[INFO] [stdout] test interrupt::tests::test_select_with_cancelled ... ok
[INFO] [stdout] test sandbox::tests::test_writable_path_within_project ... ok
[INFO] [stdout] test plan_index::tests::test_upsert_replaces ... ok
[INFO] [stdout] test plan_index::tests::test_remove_entry ... ok
[INFO] [stdout] test sandbox::tests::test_multiple_writable_paths ... ok
[INFO] [stdout] test plan_index::tests::test_get_by_project ... ok
[INFO] [stdout] test plan_names::tests::test_generate_plan_name_format ... ok
[INFO] [stdout] test secrets::tests::test_detect_github_token ... ok
[INFO] [stdout] test secrets::tests::test_detect_bearer_token ... ok
[INFO] [stdout] test secrets::tests::test_detect_google_key ... ok
[INFO] [stdout] test secrets::tests::test_detect_anthropic_key ... ok
[INFO] [stdout] test secrets::tests::test_detect_passwd_variant ... ok
[INFO] [stdout] test secrets::tests::test_detect_openai_key ... ok
[INFO] [stdout] test secrets::tests::test_detect_password_case_insensitive ... ok
[INFO] [stdout] test secrets::tests::test_no_false_positive_short_string ... ok
[INFO] [stdout] test secrets::tests::test_redact_secrets_multiple ... ok
[INFO] [stdout] test session_model::tests::test_apply_empty_overlay_is_noop ... ok
[INFO] [stdout] test session_model::tests::test_apply_ignores_invalid_fields ... ok
[INFO] [stdout] test secrets::tests::test_redact_secrets_single ... ok
[INFO] [stdout] test session_model::tests::test_get_set_clear_session_model ... ok
[INFO] [stdout] test session_model::tests::test_new_manager_inactive ... ok
[INFO] [stdout] test session_model::tests::test_restore_overlay ... ok
[INFO] [stdout] test session_model::tests::test_session_model_fields_contains_expected ... ok
[INFO] [stdout] test session_model::tests::test_validate_empty ... ok
[INFO] [stdout] test session_model::tests::test_validate_session_model ... ok
[INFO] [stdout] test session_status::tests::test_debug_format ... ok
[INFO] [stdout] test secrets::tests::test_detect_password_assignment ... ok
[INFO] [stdout] test session_status::tests::test_default_is_idle ... ok
[INFO] [stdout] test session_status::tests::test_event_bus_idle_publishes ... ok
[INFO] [stdout] test secrets::tests::test_redact_preserves_surrounding_text ... ok
[INFO] [stdout] test session_status::tests::test_event_bus_integration ... ok
[INFO] [stdout] test session_status::tests::test_has_retrying ... ok
[INFO] [stdout] test session_status::tests::test_list ... ok
[INFO] [stdout] test secrets::tests::test_redact_no_secrets ... ok
[INFO] [stdout] test session_status::tests::test_multiple_sessions ... ok
[INFO] [stdout] test secrets::tests::test_detect_groq_key ... ok
[INFO] [stdout] test session_model::tests::test_apply_overlay ... ok
[INFO] [stdout] test session_status::tests::test_set_busy ... ok
[INFO] [stdout] test session_status::tests::test_status_display ... ok
[INFO] [stdout] test session_status::tests::test_status_serde ... ok
[INFO] [stdout] test snapshot::tests::test_debug_format ... ok
[INFO] [stdout] test session_status::tests::test_set_idle_removes ... ok
[INFO] [stdout] test secrets::tests::test_secret_match_positions ... ok
[INFO] [stdout] test snapshot::tests::test_compute_project_id ... ok
[INFO] [stdout] test session_status::tests::test_set_retry ... ok
[INFO] [stdout] test secrets::tests::test_detect_base64_blob ... ok
[INFO] [stdout] test snapshot::tests::test_snapshot_dir_location ... ok
[INFO] [stdout] test sound::tests::test_now_ms ... ok
[INFO] [stdout] test state_snapshot::tests::test_mark_completed ... ok
[INFO] [stdout] test state_snapshot::tests::test_record_tool_result ... ok
[INFO] [stdout] test state_snapshot::tests::test_remove_nonexistent ... ok
[INFO] [stdout] test state_snapshot::tests::test_cleanup_old_removes_expired ... ok
[INFO] [stdout] test state_snapshot::tests::test_load_nonexistent ... ok
[INFO] [stdout] test state_snapshot::tests::test_remove_snapshot ... ok
[INFO] [stdout] test state_snapshot::tests::test_snapshot_new ... ok
[INFO] [stdout] test state_snapshot::tests::test_find_incomplete_sessions ... ok
[INFO] [stdout] test state_snapshot::tests::test_save_and_load ... ok
[INFO] [stdout] test state_snapshot::tests::test_snapshot_path ... ok
[INFO] [stdout] test state_snapshot::tests::test_snapshot_serialization_roundtrip ... ok
[INFO] [stdout] test task_scheduler::tests::test_cancel_nonexistent_returns_false ... ok
[INFO] [stdout] test task_scheduler::tests::test_debug_format ... ok
[INFO] [stdout] test task_scheduler::tests::test_default_scheduler ... ok
[INFO] [stdout] test task_scheduler::tests::test_schedule_once_respects_delay ... ok
[INFO] [stdout] test sound::tests::test_cooldown_logic ... ok
[INFO] [stdout] test todo::manager::tests::test_add_with_status ... ok
[INFO] [stdout] test todo::manager::tests::test_clear_after_interrupt ... ok
[INFO] [stdout] test todo::manager::tests::test_find_todo_formats ... ok
[INFO] [stdout] test todo::manager::tests::test_format_status ... ok
[INFO] [stdout] test todo::manager::tests::test_format_status_sorted ... ok
[INFO] [stdout] test todo::manager::tests::test_get_active_todo_message ... ok
[INFO] [stdout] test todo::manager::tests::test_has_incomplete_todos ... ok
[INFO] [stdout] test todo::manager::tests::test_has_work_in_progress ... ok
[INFO] [stdout] test todo::manager::tests::test_interrupt_preserves_completed ... ok
[INFO] [stdout] test todo::manager::tests::test_interrupt_resume_cycle ... ok
[INFO] [stdout] test todo::manager::tests::test_multiple_interrupt_resume_cycles ... ok
[INFO] [stdout] test todo::manager::tests::test_next_pending ... ok
[INFO] [stdout] test todo::manager::tests::test_remove_and_clear ... ok
[INFO] [stdout] test todo::manager::tests::test_reset_stuck_todos ... ok
[INFO] [stdout] test todo::manager::tests::test_reset_stuck_todos_none_doing ... ok
[INFO] [stdout] test todo::manager::tests::test_set_status_nonexistent ... ok
[INFO] [stdout] test todo::manager::tests::test_single_active_constraint ... ok
[INFO] [stdout] test todo::manager::tests::test_todo_manager_basic ... ok
[INFO] [stdout] test todo::manager::tests::test_todo_manager_from_steps ... ok
[INFO] [stdout] test todo::manager::tests::test_write_todos ... ok
[INFO] [stdout] test todo::manager::tests::test_write_todos_after_interrupt ... ok
[INFO] [stdout] test todo::manager::tests::test_write_todos_with_children ... ok
[INFO] [stdout] test todo::parsing::tests::test_extract_numbered_step_formats ... ok
[INFO] [stdout] test todo::parsing::tests::test_parse_plan_steps_basic ... ok
[INFO] [stdout] test todo::parsing::tests::test_parse_plan_steps_empty ... ok
[INFO] [stdout] test todo::parsing::tests::test_parse_plan_steps_stops_at_next_section ... ok
[INFO] [stdout] test todo::parsing::tests::test_parse_plan_steps_with_bold ... ok
[INFO] [stdout] test todo::parsing::tests::test_parse_status ... ok
[INFO] [stdout] test todo::parsing::tests::test_strip_markdown ... ok
[INFO] [stdout] test todo::status::tests::test_todo_status_display ... ok
[INFO] [stdout] test tool_approval_channel::tests::test_tool_approval_roundtrip ... ok
[INFO] [stdout] test snapshot::tests::test_take_snapshot_no_files ... ok
[INFO] [stdout] test tool_summarizer::tests::test_background_result_budget_enforcement ... ok
[INFO] [stdout] test tool_summarizer::tests::test_background_result_no_messages ... ok
[INFO] [stdout] test tool_summarizer::tests::test_background_result_content_truncation ... ok
[INFO] [stdout] test tool_summarizer::tests::test_background_result_no_subagent_tools ... ok
[INFO] [stdout] test tool_summarizer::tests::test_background_result_thin_content_appends_subagents ... ok
[INFO] [stdout] test tool_summarizer::tests::test_bash_long_output ... ok
[INFO] [stdout] test tool_summarizer::tests::test_bash_short_output ... ok
[INFO] [stdout] test tool_summarizer::tests::test_edit_file ... ok
[INFO] [stdout] test tool_summarizer::tests::test_empty_output ... ok
[INFO] [stdout] test tool_summarizer::tests::test_error_summary ... ok
[INFO] [stdout] test tool_summarizer::tests::test_error_truncation ... ok
[INFO] [stdout] test tool_summarizer::tests::test_generic_long ... ok
[INFO] [stdout] test tool_summarizer::tests::test_generic_short ... ok
[INFO] [stdout] test tool_summarizer::tests::test_background_result_rich_content_used_as_is ... ok
[INFO] [stdout] test tool_summarizer::tests::test_git_short ... ok
[INFO] [stdout] test tool_summarizer::tests::test_list_files ... ok
[INFO] [stdout] test tool_summarizer::tests::test_no_output ... ok
[INFO] [stdout] test tool_summarizer::tests::test_read_file ... ok
[INFO] [stdout] test snapshot::tests::test_take_snapshot_nonexistent_files ... ok
[INFO] [stdout] test tool_summarizer::tests::test_safe_truncate_ascii ... ok
[INFO] [stdout] test tool_summarizer::tests::test_search_no_matches ... ok
[INFO] [stdout] test tool_summarizer::tests::test_safe_truncate_multibyte ... ok
[INFO] [stdout] test tool_summarizer::tests::test_web_fetch ... ok
[INFO] [stdout] test tool_summarizer::tests::test_write_file ... ok
[INFO] [stdout] test tool_summarizer::tests::test_search_with_matches ... ok
[INFO] [stdout] test task_scheduler::tests::test_schedule_once_executes ... ok
[INFO] [stdout] test snapshot::tests::test_snapshot_and_revert ... ok
[INFO] [stdout] test task_scheduler::tests::test_schedule_periodic_fires_multiple_times ... ok
[INFO] [stdout] test task_scheduler::tests::test_cancel_task ... ok
[INFO] [stdout] test task_scheduler::tests::test_shutdown_cancels_all ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 364 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.69s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-7cd4bf8595b97246)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test cost_tracker_accumulates ... ok
[INFO] [stdout] test command_history_records ... ok
[INFO] [stdout] test cost_tracker_with_pricing ... ok
[INFO] [stdout] test danger_rule_regex_matching ... ok
[INFO] [stdout] test command_rule_exact_matching ... ok
[INFO] [stdout] test disabled_rule_never_matches ... ok
[INFO] [stdout] test interrupt_token_lifecycle ... ok
[INFO] [stdout] test interrupt_token_reset ... ok
[INFO] [stdout] test interrupt_token_clone_shares_state ... ok
[INFO] [stdout] test list_persistent_excludes_defaults ... ok
[INFO] [stdout] test clear_persistent_rules_keeps_defaults ... ok
[INFO] [stdout] test default_rules_present ... ok
[INFO] [stdout] test evaluate_command_no_match_returns_none ... ok
[INFO] [stdout] test interrupt_token_throw_if_requested ... ok
[INFO] [stdout] test invalid_regex_returns_false ... ok
[INFO] [stdout] test parse_plan_steps_from_markdown ... ok
[INFO] [stdout] test rule_crud_operations ... ok
[INFO] [stdout] test todo_manager_crud_and_status ... ok
[INFO] [stdout] test prefix_rule_boundary_matching ... ok
[INFO] [stdout] test persistent_rules_project_scope_roundtrip ... ok
[INFO] [stdout] test pattern_rule_regex_matching ... ok
[INFO] [stdout] test evaluate_command_highest_priority_wins ... ok
[INFO] [stderr]    Doc-tests opendev_runtime
[INFO] [stdout] test todo_next_pending ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/interrupt.rs - interrupt::InterruptToken (line 20) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.89s; merged doctests compilation took 0.86s
[INFO] running `Command { std: "docker" "inspect" "231e35b4363389290585b3e0cfa3afa9fdfd6e402226dfcba8cdd3b60064eaa4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "231e35b4363389290585b3e0cfa3afa9fdfd6e402226dfcba8cdd3b60064eaa4", kill_on_drop: false }`
[INFO] [stdout] 231e35b4363389290585b3e0cfa3afa9fdfd6e402226dfcba8cdd3b60064eaa4
