[INFO] fetching crate opendev-agents 0.1.4...
[INFO] testing opendev-agents-0.1.4 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate opendev-agents 0.1.4 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate opendev-agents 0.1.4
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate opendev-agents 0.1.4
[INFO] tweaked toml for crates.io crate opendev-agents 0.1.4 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate opendev-agents 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-agents 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-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 130295ad7b41c7ac30dc548b72ac8805bc013af51d721e552970cc9c1540c712
[INFO] running `Command { std: "docker" "start" "-a" "130295ad7b41c7ac30dc548b72ac8805bc013af51d721e552970cc9c1540c712", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "130295ad7b41c7ac30dc548b72ac8805bc013af51d721e552970cc9c1540c712", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "130295ad7b41c7ac30dc548b72ac8805bc013af51d721e552970cc9c1540c712", kill_on_drop: false }`
[INFO] [stdout] 130295ad7b41c7ac30dc548b72ac8805bc013af51d721e552970cc9c1540c712
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] e71ef43f58fd66fc16b72e7bda38cdc3b91bae5068762d37283f543b89a901a8
[INFO] running `Command { std: "docker" "start" "-a" "e71ef43f58fd66fc16b72e7bda38cdc3b91bae5068762d37283f543b89a901a8", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling iri-string v0.7.11
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling aws-lc-sys v0.39.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling ts-rs-macros v10.1.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling ts-rs v10.1.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling opendev-models v0.1.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[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 opendev-context v0.1.4
[INFO] [stderr]    Compiling opendev-memory v0.1.4
[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
[INFO] [stderr]    Compiling opendev-http v0.1.4
[INFO] [stderr]    Compiling opendev-tools-core v0.1.4
[INFO] [stderr]    Compiling opendev-agents v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 50s
[INFO] running `Command { std: "docker" "inspect" "e71ef43f58fd66fc16b72e7bda38cdc3b91bae5068762d37283f543b89a901a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e71ef43f58fd66fc16b72e7bda38cdc3b91bae5068762d37283f543b89a901a8", kill_on_drop: false }`
[INFO] [stdout] e71ef43f58fd66fc16b72e7bda38cdc3b91bae5068762d37283f543b89a901a8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 20a42244cd451a1eeb86756c4525d8d2aae4458bb9e00568b9d3d33ea7e2ec1f
[INFO] running `Command { std: "docker" "start" "-a" "20a42244cd451a1eeb86756c4525d8d2aae4458bb9e00568b9d3d33ea7e2ec1f", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling ts-rs v10.1.0
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling opendev-models v0.1.4
[INFO] [stderr]    Compiling clap v4.6.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 tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling opendev-memory v0.1.4
[INFO] [stderr]    Compiling opendev-context v0.1.4
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.5.1
[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.12.28
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling opendev-config v0.1.4
[INFO] [stderr]    Compiling opendev-http v0.1.4
[INFO] [stderr]    Compiling opendev-tools-core v0.1.4
[INFO] [stderr]    Compiling opendev-runtime v0.1.4
[INFO] [stderr]    Compiling opendev-agents v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::prompts::embedded`
[INFO] [stdout]  --> src/react_loop/helpers/tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::prompts::embedded;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::permissions::PermissionAction`
[INFO] [stdout]  --> src/subagents/spec/types_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::super::permissions::PermissionAction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warning`
[INFO] [stdout]    --> src/doom_loop_tests.rs:144:18
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let (action, warning) = det.check(&[tc.clone()]);
[INFO] [stdout]     |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warning`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warning`
[INFO] [stdout]    --> src/doom_loop_tests.rs:167:18
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let (action, warning) = det.check(&[tc.clone()]);
[INFO] [stdout]     |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_agent_with_tools` is never used
[INFO] [stdout]  --> src/main_agent_tests.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn make_agent_with_tools() -> MainAgent {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 46s
[INFO] running `Command { std: "docker" "inspect" "20a42244cd451a1eeb86756c4525d8d2aae4458bb9e00568b9d3d33ea7e2ec1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20a42244cd451a1eeb86756c4525d8d2aae4458bb9e00568b9d3d33ea7e2ec1f", kill_on_drop: false }`
[INFO] [stdout] 20a42244cd451a1eeb86756c4525d8d2aae4458bb9e00568b9d3d33ea7e2ec1f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 107a5ccef36397de834b11ae753084629f162080398678055f462f4cc3c54efd
[INFO] running `Command { std: "docker" "start" "-a" "107a5ccef36397de834b11ae753084629f162080398678055f462f4cc3c54efd", 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: unused import: `crate::prompts::embedded`
[INFO] [stderr]  --> src/react_loop/helpers/tests.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::prompts::embedded;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::super::permissions::PermissionAction`
[INFO] [stderr]  --> src/subagents/spec/types_tests.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use super::super::permissions::PermissionAction;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `warning`
[INFO] [stderr]    --> src/doom_loop_tests.rs:144:18
[INFO] [stderr]     |
[INFO] [stderr] 144 |     let (action, warning) = det.check(&[tc.clone()]);
[INFO] [stderr]     |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warning`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `warning`
[INFO] [stderr]    --> src/doom_loop_tests.rs:167:18
[INFO] [stderr]     |
[INFO] [stderr] 167 |     let (action, warning) = det.check(&[tc.clone()]);
[INFO] [stderr]     |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warning`
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_agent_with_tools` is never used
[INFO] [stderr]  --> src/main_agent_tests.rs:9:4
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn make_agent_with_tools() -> MainAgent {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `opendev-agents` (lib test) generated 5 warnings (run `cargo fix --lib -p opendev-agents --tests` to apply 4 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/opendev_agents-75374ea9ad0ba62d)
[INFO] [stdout] 
[INFO] [stdout] running 396 tests
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_empty ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_file_path_key ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_different_files ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_same_file ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_mixed ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_mixed_path_and_no_path ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_single_call ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_extract_file_path_none ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_extract_file_path_with_file_path ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_extract_file_path_with_path ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_handoff_create ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_handoff_with_errors ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_handoff_to_context_message ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_handoff_to_context_message_empty_findings ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_extract_file_path_with_file ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_handoff_empty_messages ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_partial_result_empty ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_partial_result_from_interrupted_state ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_handoff_message_serialization ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_can_parallelize_no_path ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_partial_result_summary ... ok
[INFO] [stdout] test agent_types::definitions::tests::test_agent_definition_effective_system_prompt ... ok
[INFO] [stdout] test agent_types::definitions::tests::test_agent_definition_from_role ... ok
[INFO] [stdout] test agent_types::definitions::tests::test_agent_definition_with_tools ... ok
[INFO] [stdout] test agent_types::roles::tests::test_agent_role_default_system_prompt ... ok
[INFO] [stdout] test agent_types::definitions::tests::test_agent_definition_filter_tool_schemas ... ok
[INFO] [stdout] test agent_types::roles::tests::test_agent_role_default_tools ... ok
[INFO] [stdout] test agent_types::coordination::tests::test_partial_result_serialization ... ok
[INFO] [stdout] test agent_types::definitions::tests::test_agent_definition_is_tool_allowed ... ok
[INFO] [stdout] test agent_types::roles::tests::test_agent_role_display ... ok
[INFO] [stdout] test agent_types::definitions::tests::test_agent_definition_serialization ... ok
[INFO] [stdout] test doom_loop::tests::test_fingerprint_deterministic ... ok
[INFO] [stdout] test doom_loop::tests::test_parallel_tool_calls_redirect ... ok
[INFO] [stdout] test doom_loop::tests::test_recovery_action_force_stop_returns_compact ... ok
[INFO] [stdout] test doom_loop::tests::test_recovery_action_none_returns_empty_nudge ... ok
[INFO] [stdout] test doom_loop::tests::test_no_doom_loop_varied_calls ... ok
[INFO] [stdout] test doom_loop::tests::test_recovery_action_notify_returns_step_back ... ok
[INFO] [stdout] test llm_calls::model_detection::tests::test_is_reasoning_model ... ok
[INFO] [stdout] test doom_loop::tests::test_single_step_doom_loop ... ok
[INFO] [stdout] test doom_loop::tests::test_recovery_action_redirect_returns_nudge ... ok
[INFO] [stdout] test doom_loop::tests::test_reset ... ok
[INFO] [stdout] test doom_loop::tests::test_three_step_cycle ... ok
[INFO] [stdout] test llm_calls::tests::test_action_payload_reasoning_model ... ok
[INFO] [stdout] test llm_calls::model_detection::tests::test_supports_temperature ... ok
[INFO] [stdout] test doom_loop::tests::test_two_step_cycle ... ok
[INFO] [stdout] test llm_calls::model_detection::tests::test_uses_max_completion_tokens ... ok
[INFO] [stdout] test llm_calls::model_detection::tests::test_case_insensitive_model_detection ... ok
[INFO] [stdout] test llm_calls::tests::test_clean_messages_strips_internal ... ok
[INFO] [stdout] test llm_calls::tests::test_clean_messages_preserves_non_object ... ok
[INFO] [stdout] test llm_calls::tests::test_build_action_payload ... ok
[INFO] [stdout] test llm_calls::tests::test_clean_messages_strips_underscore_keys ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_action_response_no_choices ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_action_response_with_tool_calls ... ok
[INFO] [stdout] test main_agent::tests::test_agent_debug ... ok
[INFO] [stdout] test main_agent::tests::test_build_schemas_with_filter ... ok
[INFO] [stdout] test main_agent::tests::test_build_system_prompt_trait ... ok
[INFO] [stdout] test main_agent::tests::test_build_tool_schemas_empty ... ok
[INFO] [stdout] test main_agent::tests::test_call_llm_no_http_client ... ok
[INFO] [stdout] test main_agent::tests::test_config_new ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_exact ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_mcp_wildcard ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_question_mark ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_star_all ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_star_middle ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_star_prefix ... ok
[INFO] [stdout] test main_agent::tests::test_glob_match_star_suffix ... ok
[INFO] [stdout] test main_agent::tests::test_messages_contain_images_false ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_response_cleans_provider_tokens ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_action_response_success ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_response_with_reasoning_content ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_action_response_finish_reason_null ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_action_response_finish_reason_stop ... ok
[INFO] [stdout] test main_agent::tests::test_messages_contain_images_true ... ok
[INFO] [stdout] test llm_calls::tests::test_parse_action_response_extracts_finish_reason ... ok
[INFO] [stdout] test main_agent::tests::test_require_http_client_err ... ok
[INFO] [stdout] test main_agent::tests::test_new_agent ... ok
[INFO] [stdout] test main_agent::tests::test_set_system_prompt ... ok
[INFO] [stdout] test main_agent::tests::test_refresh_tools ... ok
[INFO] [stdout] test main_agent::tests::test_subagent_detection ... ok
[INFO] [stdout] test prompts::composer::conditions::tests::test_ctx_present_condition ... ok
[INFO] [stdout] test main_agent::tests::test_run_no_http_client ... ok
[INFO] [stdout] test prompts::composer::factories::tests::test_create_composer_dispatch ... ok
[INFO] [stdout] test prompts::composer::factories::tests::test_create_default_composer_section_count ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_missing_file ... ok
[INFO] [stdout] test prompts::composer::conditions::tests::test_ctx_eq_condition ... ok
[INFO] [stdout] test prompts::composer::conditions::tests::test_ctx_in_condition ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_strips_frontmatter ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_with_condition ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_priority_ordering ... ok
[INFO] [stdout] test prompts::composer::tests::test_embedded_templates_used_by_default_composer ... ok
[INFO] [stdout] test prompts::composer::tests::test_section_count_and_names ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_basic ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_two_part ... ok
[INFO] [stdout] test prompts::composer::tests::test_strip_frontmatter ... ok
[INFO] [stdout] test prompts::composer::tests::test_substitute_variables_basic ... ok
[INFO] [stdout] test prompts::composer::tests::test_substitute_variables_missing_left_as_is ... ok
[INFO] [stdout] test prompts::composer::tests::test_substitute_variables_no_placeholders ... ok
[INFO] [stdout] test prompts::embedded::tests::test_build_init_prompt_no_args ... ok
[INFO] [stdout] test prompts::composer::tests::test_substitute_variables_multiple ... ok
[INFO] [stdout] test prompts::embedded::tests::test_all_templates_embedded ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_two_part_with_vars ... ok
[INFO] [stdout] test prompts::composer::tests::test_compose_with_vars ... ok
[INFO] [stdout] test prompts::embedded::tests::test_get_embedded_unknown ... ok
[INFO] [stdout] test prompts::embedded::tests::test_subagent_templates ... ok
[INFO] [stdout] test prompts::embedded::tests::test_get_embedded_known ... ok
[INFO] [stdout] test prompts::embedded::tests::test_no_empty_templates ... ok
[INFO] [stdout] test prompts::embedded::tests::test_system_main_templates ... ok
[INFO] [stdout] test prompts::embedded::tests::test_tool_templates ... ok
[INFO] [stdout] test prompts::embedded::tests::test_build_init_prompt_with_args ... ok
[INFO] [stdout] test prompts::loader::tests::test_get_prompt_path_txt_when_no_md ... ok
[INFO] [stdout] test prompts::loader::tests::test_get_prompt_path_md ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_embedded_system_prompt ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_prompt_md ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_prompt_with_fallback ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_prompt_txt_fallback ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_prompt_md_preferred_over_txt ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_tool_description_embedded_takes_priority ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_prompt_not_found ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_tool_description_from_embedded ... ok
[INFO] [stdout] test prompts::reminders::tests::test_append_directive ... ok
[INFO] [stdout] test prompts::reminders::tests::test_append_nudge ... ok
[INFO] [stdout] test prompts::reminders::tests::test_get_reminder_missing ... ok
[INFO] [stdout] test prompts::reminders::tests::test_get_reminder_with_vars ... ok
[INFO] [stdout] test prompts::reminders::tests::test_inject_system_message_directive ... ok
[INFO] [stdout] test prompts::reminders::tests::test_inject_system_message_internal ... ok
[INFO] [stdout] test prompts::reminders::tests::test_parse_sections_finds_templates ... ok
[INFO] [stdout] test prompts::reminders::tests::test_message_class_as_str ... ok
[INFO] [stdout] test react_loop::config::tests::test_default_config ... ok
[INFO] [stdout] test react_loop::config::tests::test_evaluate_permission_with_action_rule ... ok
[INFO] [stdout] test react_loop::config::tests::test_evaluate_permission_no_match ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_all_parallelizable_single_tool ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_all_parallelizable_multiple_read_only ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_all_parallelizable_with_task_complete ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_all_parallelizable_with_write_tool ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_agent_result_interrupted_with_partial_content ... ok
[INFO] [stdout] test prompts::loader::tests::test_load_tool_description_from_filesystem ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_check_iteration_limit_bounded ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_edit_mismatch ... ok
[INFO] [stdout] test react_loop::config::tests::test_evaluate_permission_empty_rules ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_file_not_found ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_permission ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_generic ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_rate_limit ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_count_subagent_tool_calls_parallel ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_default_config_has_empty_permissions ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_blanket_allow ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_blanket_deny ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_empty_rules ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_no_match ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_pattern_rules ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_specific_overrides_wildcard ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_evaluate_permission_wildcard_tool_pattern ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_extract_task_complete_args ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_extract_task_complete_args_defaults ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_format_tool_result_failure ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_format_tool_result_success ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_format_tool_result_success_with_status ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_is_task_complete ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_iteration_metrics_default ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_mcp_permission_allow_specific ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_mcp_permission_rule_matches ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_mcp_tool_needs_approval_gate ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_metrics_accumulation ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_metrics_clear ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_not_shallow_subagent_many_tools ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_iteration_appends_message ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_iteration_failed ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_iteration_increments_no_tool_counter ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_iteration_interrupted ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_iteration_max_iterations ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_iteration_resets_no_tool_counter_on_tool_call ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_response_failed ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_response_interrupted ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_response_no_tool_calls ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_process_response_with_tool_calls ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_shallow_subagent_failed_no_warning ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_shallow_subagent_no_tools ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_shallow_subagent_one_tool ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_tool_call_metric ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_turn_result_equality ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_chat_template_tokens ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_empty ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_function_tags ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_timeout ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_mixed_tokens ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_none ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_normal_text ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_only_tokens_returns_none ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_classify_error_syntax ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_default_config ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_internal_markers ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_tool_call_tags ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_parameter_tags ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_whitespace_trimming ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_tool_response_tags ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_system_marker_only_at_line_start ... ok
[INFO] [stdout] test response::cleaner::tests::test_clean_system_markers ... ok
[INFO] [stdout] test react_loop::helpers::tests::test_check_iteration_limit_unlimited ... ok
[INFO] [stdout] test skills::discovery::tests::test_is_cache_stale_builtin_never_stale ... ok
[INFO] [stdout] test skills::discovery::tests::test_is_cache_stale_deleted_file ... ok
[INFO] [stdout] test skills::discovery::tests::test_is_cache_stale_modified_file ... ok
[INFO] [stdout] test skills::discovery::tests::test_is_cache_stale_no_mtime_not_stale ... ok
[INFO] [stdout] test skills::discovery::tests::test_skill_source_url_display ... ok
[INFO] [stdout] test skills::discovery::tests::test_is_cache_stale_unmodified_file ... ok
[INFO] [stdout] test skills::loader::tests::test_add_urls ... ok
[INFO] [stdout] test skills::loader::tests::test_build_skills_index ... ok
[INFO] [stdout] test skills::loader::tests::test_build_skills_index_empty_when_no_skills ... ok
[INFO] [stdout] test skills::loader::tests::test_companion_files_discovered_for_directory_skill ... ok
[INFO] [stdout] test skills::loader::tests::test_companion_files_for_builtin_skill ... ok
[INFO] [stdout] test skills::loader::tests::test_clear_cache ... ok
[INFO] [stdout] test skills::discovery::tests::test_pull_url_skills_invalid_url ... ok
[INFO] [stdout] test skills::discovery::tests::test_fetch_url_invalid_command ... ok
[INFO] [stdout] test skills::loader::tests::test_companion_files_nested_subdirs ... ok
[INFO] [stdout] test skills::loader::tests::test_companion_files_max_limit ... ok
[INFO] [stdout] test skills::loader::tests::test_discover_builtin_skills ... ok
[INFO] [stdout] test skills::loader::tests::test_expand_variables ... ok
[INFO] [stdout] test skills::loader::tests::test_expand_variables_missing_key_left_intact ... ok
[INFO] [stdout] test skills::loader::tests::test_expand_variables_no_match ... ok
[INFO] [stdout] test skills::loader::tests::test_discover_filesystem_skills ... ok
[INFO] [stdout] test skills::loader::tests::test_get_skill_names ... ok
[INFO] [stdout] test skills::loader::tests::test_load_builtin_skill ... ok
[INFO] [stdout] test skills::loader::tests::test_discover_skills_from_opendev_skills_dir ... ok
[INFO] [stdout] test skills::loader::tests::test_companion_files_empty_for_flat_skill ... ok
[INFO] [stdout] test skills::loader::tests::test_discover_skills_from_commands_dir ... ok
[INFO] [stdout] test skills::loader::tests::test_load_namespaced_skill ... ok
[INFO] [stdout] test skills::loader::tests::test_first_dir_has_highest_priority ... ok
[INFO] [stdout] test skills::loader::tests::test_load_filesystem_skill ... ok
[INFO] [stdout] test skills::loader::tests::test_load_nonexistent_skill_returns_none ... ok
[INFO] [stdout] test skills::loader::tests::test_project_skill_overrides_builtin ... ok
[INFO] [stdout] test skills::loader::tests::test_pull_url_skills_simulated_cache ... ok
[INFO] [stdout] test skills::loader::tests::test_skill_name_fallback_to_filename ... ok
[INFO] [stdout] test skills::metadata::tests::test_estimate_tokens_no_path ... ok
[INFO] [stdout] test skills::metadata::tests::test_estimate_tokens_real_file ... ok
[INFO] [stdout] test skills::metadata::tests::test_full_name_custom_namespace ... ok
[INFO] [stdout] test skills::metadata::tests::test_full_name_default_namespace ... ok
[INFO] [stdout] test skills::metadata::tests::test_estimate_tokens_missing_file ... ok
[INFO] [stdout] test skills::metadata::tests::test_loaded_skill_estimate_tokens ... ok
[INFO] [stdout] test skills::metadata::tests::test_loaded_skill_estimate_tokens_empty ... ok
[INFO] [stdout] test skills::metadata::tests::test_loaded_skill_estimate_tokens_small ... ok
[INFO] [stdout] test skills::loader::tests::test_load_skill_with_model_override ... ok
[INFO] [stdout] test skills::metadata::tests::test_skill_source_equality ... ok
[INFO] [stdout] test skills::metadata::tests::test_full_name_empty_namespace_is_not_default ... ok
[INFO] [stdout] test skills::metadata::tests::test_skill_source_display ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_basic ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_no_agent_field ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_no_model_field ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_empty_name_fallback ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_with_agent ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_quoted_values ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_with_model ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_simple_yaml ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_simple_yaml_single_quotes ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_missing_returns_none ... ok
[INFO] [stdout] test skills::parsing::tests::test_parse_frontmatter_with_namespace ... ok
[INFO] [stdout] test skills::parsing::tests::test_strip_frontmatter ... ok
[INFO] [stdout] test skills::loader::tests::test_url_skills_dont_override_local ... ok
[INFO] [stdout] test skills::loader::tests::test_load_skill_reloads_after_file_change ... ok
[INFO] [stdout] test skills::parsing::tests::test_strip_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_frontmatter_basic ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_frontmatter_no_closing ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_frontmatter_none ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_permission_blanket_action ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_permission_mixed ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_permission_with_patterns ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_simple_yaml_disabled ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_agent_with_permission ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_disabled_agent ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_custom_agent_md ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_nonexistent_dir ... ok
[INFO] [stdout] test subagents::custom_loader::parser::tests::test_parse_simple_yaml ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_recursive_nested_directories ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_color ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_recursive_skips_non_md ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_no_frontmatter ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_primary_mode_skipped ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_extended_fields ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_max_tokens_camel_case ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_top_p ... ok
[INFO] [stdout] test subagents::manager::scanning::tests::test_scan_empty_dir ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_max_tokens ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_mode_all ... ok
[INFO] [stdout] test subagents::manager::scanning::tests::test_scan_project_structure_basic ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_max_steps_alias ... ok
[INFO] [stdout] test subagents::custom_loader::tests::test_load_with_model_override ... ok
[INFO] [stdout] test subagents::manager::scanning::tests::test_scan_project_structure_skips_noise ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_disable_removes_agent ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_creates_new_agent ... ok
[INFO] [stdout] test subagents::manager::tests::test_build_enum_description ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_invalid_permission_action_skipped ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_mode ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_max_steps_and_color ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_model ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_multiple_agents ... ok
[INFO] [stdout] test subagents::manager::scanning::tests::test_scan_top_level_dirs_basic ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_permission_rules ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_hidden ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_prompt_and_description ... ok
[INFO] [stdout] test subagents::manager::tests::test_config_override_temperature_and_top_p ... ok
[INFO] [stdout] test subagents::manager::tests::test_custom_agent_overrides_builtin ... ok
[INFO] [stdout] test subagents::manager::tests::test_disabled_agents_excluded_from_names ... ok
[INFO] [stdout] test subagents::manager::tests::test_claude_agents_dir_not_loaded ... ok
[INFO] [stdout] test subagents::manager::tests::test_disabled_agents_still_gettable ... ok
[INFO] [stdout] test subagents::manager::tests::test_disabled_agents_in_all_names ... ok
[INFO] [stdout] test subagents::manager::tests::test_disabled_agents_excluded_from_enum_description ... ok
[INFO] [stdout] test subagents::manager::tests::test_hidden_agents_excluded_from_enum_description ... ok
[INFO] [stdout] test subagents::manager::tests::test_get_by_type ... ok
[INFO] [stdout] test subagents::manager::tests::test_hidden_agents_excluded_from_names ... ok
[INFO] [stdout] test subagents::manager::tests::test_names ... ok
[INFO] [stdout] test subagents::manager::tests::test_custom_agent_with_steps_and_temperature ... ok
[INFO] [stdout] test subagents::manager::tests::test_manager_new_empty ... ok
[INFO] [stdout] test subagents::manager::tests::test_register_and_get ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_configured ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_hidden_falls_back ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_disabled_falls_back ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_none_configured ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_not_found_falls_back ... ok
[INFO] [stdout] test subagents::manager::tests::test_hidden_agents_still_gettable ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_no_primary_capable ... ok
[INFO] [stdout] test subagents::manager::tests::test_unregister ... ok
[INFO] [stdout] test subagents::manager::tests::test_with_builtins ... ok
[INFO] [stdout] test subagents::manager::tests::test_dot_agents_directory_not_loaded ... ok
[INFO] [stdout] test subagents::manager::types::tests::test_event_bridge_forwards_token_usage ... ok
[INFO] [stdout] test subagents::manager::types::tests::test_event_bridge_forwards_tool_finished ... ok
[INFO] [stdout] test subagents::manager::types::tests::test_event_bridge_forwards_tool_started ... ok
[INFO] [stdout] test subagents::manager::tests::test_only_opendev_agents_dir_loaded ... ok
[INFO] [stdout] test subagents::manager::types::tests::test_subagent_type_canonical_name ... ok
[INFO] [stdout] test subagents::manager::types::tests::test_event_bridge_noop_methods ... ok
[INFO] [stdout] test subagents::manager::types::tests::test_subagent_type_from_name ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_build_exploration_observation_deduplicates_files ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_simple_runner_extract_tool_info ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_build_exploration_observation ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_simple_runner_parse_token_usage ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_simple_runner_name ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_simple_runner_parse_tool_calls_empty ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_simple_runner_parse_content ... ok
[INFO] [stdout] test subagents::runner::simple::tests::test_simple_runner_parse_tool_calls_present ... ok
[INFO] [stdout] test subagents::runner::standard::tests::test_standard_runner_name ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_color_skipped_when_none ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_color_serde ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_disable_field ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_disabled_tools_blanket_deny ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_disable_serde ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_disabled_tools_pattern_deny_not_blanket ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_evaluate_permission_blanket_action ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_evaluate_permission_no_rules ... ok
[INFO] [stdout] test subagents::manager::tests::test_with_builtins_and_custom ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_evaluate_permission_pattern_matching ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_evaluate_permission_wildcard_tool ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_subagent_spec_with_hidden ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_subagent_spec_with_max_steps ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_subagent_spec_with_model ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_subagent_spec_with_temperature ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_subagent_spec_with_tools ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_top_p_serde ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_with_color ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_with_max_tokens ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_with_top_p ... ok
[INFO] [stdout] test subagents::spec::builtins::tests::test_ask_user_builtin ... ok
[INFO] [stdout] test subagents::spec::builtins::tests::test_build_builtin ... ok
[INFO] [stdout] test subagents::spec::builtins::tests::test_code_explorer_builtin ... ok
[INFO] [stdout] test subagents::spec::builtins::tests::test_general_builtin ... ok
[INFO] [stdout] test subagents::spec::builtins::tests::test_planner_builtin ... ok
[INFO] [stdout] test subagents::spec::builtins::tests::test_project_init_builtin ... ok
[INFO] [stdout] test subagents::spec::mode::tests::test_agent_mode_capabilities ... ok
[INFO] [stdout] test subagents::spec::mode::tests::test_agent_mode_default ... ok
[INFO] [stdout] test subagents::spec::mode::tests::test_agent_mode_from_str ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_glob_match_basic ... ok
[INFO] [stdout] test subagents::spec::mode::tests::test_agent_mode_serde ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_glob_match_exact ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_permission_action_serde ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_permission_rule_single_action ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_permission_rule_patterns ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_permission_skipped_when_empty ... ok
[INFO] [stdout] test subagents::spec::permissions::tests::test_permission_serde_roundtrip ... ok
[INFO] [stdout] test subagents::spec::types::tests::test_subagent_spec_defaults ... ok
[INFO] [stdout] test subagents::spec::types::tests::test_subagent_spec_new ... ok
[INFO] [stdout] test subagents::spec::types::tests::test_subagent_spec_serde ... ok
[INFO] [stdout] test traits::tests::test_agent_deps_builder ... ok
[INFO] [stdout] test subagents::spec::types::tests::test_subagent_spec_serde_extended_fields ... ok
[INFO] [stdout] test traits::tests::test_agent_error_display ... ok
[INFO] [stdout] test traits::tests::test_agent_result_backgrounded ... ok
[INFO] [stdout] test traits::tests::test_agent_result_fail ... ok
[INFO] [stdout] test traits::tests::test_agent_result_interrupted ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_max_tokens_default_none ... ok
[INFO] [stdout] test traits::tests::test_agent_result_ok ... ok
[INFO] [stdout] test traits::tests::test_interrupt_token_as_task_monitor_background ... ok
[INFO] [stdout] test subagents::spec::builder::tests::test_max_tokens_serde ... ok
[INFO] [stdout] test traits::tests::test_llm_response_constructors_finish_reason_none ... ok
[INFO] [stdout] test traits::tests::test_llm_response_fail ... ok
[INFO] [stdout] test traits::tests::test_llm_response_interrupted ... ok
[INFO] [stdout] test traits::tests::test_task_monitor_background_default ... ok
[INFO] [stdout] test traits::tests::test_llm_response_ok ... ok
[INFO] [stdout] test subagents::manager::tests::test_resolve_default_agent_subagent_only_falls_back ... ok
[INFO] [stdout] test main_agent::tests::test_with_http_client ... ok
[INFO] [stdout] test main_agent::tests::test_run_preserves_history ... ok
[INFO] [stdout] test main_agent::tests::test_require_http_client_ok ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 396 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-5ac5bfbad77127a2)
[INFO] [stdout] 
[INFO] [stdout] running 53 tests
[INFO] [stdout] test agent_deps_builder ... ok
[INFO] [stdout] test action_payload_includes_tools ... ok
[INFO] [stdout] test all_embedded_templates_load ... ok
[INFO] [stdout] test bounded_iterations_trigger_at_limit ... ok
[INFO] [stdout] test clean_messages_strips_internal_keys ... ok
[INFO] [stdout] test agent_result_constructors ... ok
[INFO] [stdout] test default_composer_section_count ... ok
[INFO] [stdout] test error_classification_covers_patterns ... ok
[INFO] [stdout] test extract_task_complete_args ... ok
[INFO] [stdout] test extract_task_complete_defaults ... ok
[INFO] [stdout] test doom_loop_two_step_cycle_detection ... ok
[INFO] [stdout] test doom_loop_full_escalation_sequence ... ok
[INFO] [stdout] test doom_loop_reset_clears_state ... ok
[INFO] [stdout] test doom_loop_varied_calls_no_detection ... ok
[INFO] [stdout] test format_tool_result_failure ... ok
[INFO] [stdout] test format_tool_result_success ... ok
[INFO] [stdout] test format_tool_result_with_status ... ok
[INFO] [stdout] test mock_llm_task_complete_flow ... ok
[INFO] [stdout] test mixed_read_write_not_parallelizable ... ok
[INFO] [stdout] test mock_llm_tool_call_dispatch ... ok
[INFO] [stdout] test multiple_read_only_tools_are_parallel ... ok
[INFO] [stdout] test mock_llm_parallel_tool_calls ... ok
[INFO] [stdout] test discover_all_builtin_skills ... ok
[INFO] [stdout] test process_iteration_appends_to_history ... ok
[INFO] [stdout] test process_iteration_error_on_llm_failure ... ok
[INFO] [stdout] test process_iteration_increments_counter_on_completion ... ok
[INFO] [stdout] test process_iteration_max_iterations ... ok
[INFO] [stdout] test process_iteration_resets_counter_on_tool_call ... ok
[INFO] [stdout] test process_response_continues_on_failure ... ok
[INFO] [stdout] test process_response_returns_complete_without_tools ... ok
[INFO] [stdout] test process_response_returns_interrupted ... ok
[INFO] [stdout] test process_response_returns_tool_call ... ok
[INFO] [stdout] test load_nonexistent_skill_returns_none ... ok
[INFO] [stdout] test prompt_composer_assembles_in_priority_order ... ok
[INFO] [stdout] test load_builtin_skill_strips_frontmatter ... ok
[INFO] [stdout] test project_skill_overrides_builtin ... ok
[INFO] [stdout] test prompt_loader_md_preferred_over_txt ... ok
[INFO] [stdout] test prompt_loader_resolution_order ... ok
[INFO] [stdout] test prompt_composer_excludes_conditional_section ... ok
[INFO] [stdout] test single_tool_not_parallelizable ... ok
[INFO] [stdout] test skill_directory_priority_ordering ... ok
[INFO] [stdout] test prompt_variable_substitution ... ok
[INFO] [stdout] test task_complete_blocks_parallel ... ok
[INFO] [stdout] test task_complete_detection_and_extraction ... ok
[INFO] [stdout] test two_part_cache_splitting ... ok
[INFO] [stdout] test unlimited_iterations_never_hit_limit ... ok
[INFO] [stdout] test parse_action_response_no_choices ... ok
[INFO] [stdout] test parse_action_response_with_tools ... ok
[INFO] [stdout] test skills_index_format ... ok
[INFO] [stdout] test parse_action_response_extracts_reasoning ... ok
[INFO] [stdout] test parse_action_response_cleans_tokens ... ok
[INFO] [stdout] test response_cleaner_strips_all_token_types ... ok
[INFO] [stdout] test namespaced_skill_lookup ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests opendev_agents
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/prompts/composer/mod.rs - prompts::composer::substitute_variables (line 233) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.51s; merged doctests compilation took 1.44s
[INFO] running `Command { std: "docker" "inspect" "107a5ccef36397de834b11ae753084629f162080398678055f462f4cc3c54efd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "107a5ccef36397de834b11ae753084629f162080398678055f462f4cc3c54efd", kill_on_drop: false }`
[INFO] [stdout] 107a5ccef36397de834b11ae753084629f162080398678055f462f4cc3c54efd
