[INFO] cloning repository https://github.com/ketani23/steward
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ketani23/steward" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fketani23%2Fsteward", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fketani23%2Fsteward'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6ebec1ed322cb413e9d0e5bd604de33f3fabce54
[INFO] testing ketani23/steward against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fketani23%2Fsteward" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ketani23/steward
[INFO] finished tweaking git repo https://github.com/ketani23/steward
[INFO] tweaked toml for git repo https://github.com/ketani23/steward written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ketani23/steward on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ketani23/steward 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] testing ketani23/steward against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fketani23%2Fsteward" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ketani23/steward
[INFO] finished tweaking git repo https://github.com/ketani23/steward
[INFO] tweaked toml for git repo https://github.com/ketani23/steward written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ketani23/steward on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ketani23/steward 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 81375cdfb93f9d08f61218d85efe61815f72e6e482e45bcdcac82451daa30dfd
[INFO] running `Command { std: "docker" "start" "-a" "81375cdfb93f9d08f61218d85efe61815f72e6e482e45bcdcac82451daa30dfd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "81375cdfb93f9d08f61218d85efe61815f72e6e482e45bcdcac82451daa30dfd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "81375cdfb93f9d08f61218d85efe61815f72e6e482e45bcdcac82451daa30dfd", kill_on_drop: false }`
[INFO] [stdout] 81375cdfb93f9d08f61218d85efe61815f72e6e482e45bcdcac82451daa30dfd
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] aa0c0b0e4d834686e9b66682f3051ca9bb2f95b099f5181d081aa81218d26cdf
[INFO] running `Command { std: "docker" "start" "-a" "aa0c0b0e4d834686e9b66682f3051ca9bb2f95b099f5181d081aa81218d26cdf", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[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 displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling axum-macros v0.5.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling glob-match v0.2.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling steward-types v0.1.0 (/opt/rustwide/workdir/crates/steward-types)
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling steward-tools v0.1.0 (/opt/rustwide/workdir/crates/steward-tools)
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling steward-channels v0.1.0 (/opt/rustwide/workdir/crates/steward-channels)
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling pgvector v0.4.1
[INFO] [stderr]    Compiling steward-security v0.1.0 (/opt/rustwide/workdir/crates/steward-security)
[INFO] [stderr]    Compiling steward-memory v0.1.0 (/opt/rustwide/workdir/crates/steward-memory)
[INFO] [stderr]    Compiling steward-core v0.1.0 (/opt/rustwide/workdir/crates/steward-core)
[INFO] [stderr]    Compiling steward-server v0.1.0 (/opt/rustwide/workdir/crates/steward-server)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 41s
[INFO] running `Command { std: "docker" "inspect" "aa0c0b0e4d834686e9b66682f3051ca9bb2f95b099f5181d081aa81218d26cdf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa0c0b0e4d834686e9b66682f3051ca9bb2f95b099f5181d081aa81218d26cdf", kill_on_drop: false }`
[INFO] [stdout] aa0c0b0e4d834686e9b66682f3051ca9bb2f95b099f5181d081aa81218d26cdf
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 18ed36e0020fc5421b2f396572e650d1f2a9c4fc52381a76442b87960d96e8c4
[INFO] running `Command { std: "docker" "start" "-a" "18ed36e0020fc5421b2f396572e650d1f2a9c4fc52381a76442b87960d96e8c4", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling steward-types v0.1.0 (/opt/rustwide/workdir/crates/steward-types)
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling pgvector v0.4.1
[INFO] [stderr]    Compiling steward-security v0.1.0 (/opt/rustwide/workdir/crates/steward-security)
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling steward-memory v0.1.0 (/opt/rustwide/workdir/crates/steward-memory)
[INFO] [stderr]    Compiling steward-tools v0.1.0 (/opt/rustwide/workdir/crates/steward-tools)
[INFO] [stderr]    Compiling steward-core v0.1.0 (/opt/rustwide/workdir/crates/steward-core)
[INFO] [stderr]    Compiling steward-channels v0.1.0 (/opt/rustwide/workdir/crates/steward-channels)
[INFO] [stderr]    Compiling steward-integration-tests v0.1.0 (/opt/rustwide/workdir/tests/integration)
[INFO] [stderr]    Compiling steward-server v0.1.0 (/opt/rustwide/workdir/crates/steward-server)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 01s
[INFO] running `Command { std: "docker" "inspect" "18ed36e0020fc5421b2f396572e650d1f2a9c4fc52381a76442b87960d96e8c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "18ed36e0020fc5421b2f396572e650d1f2a9c4fc52381a76442b87960d96e8c4", kill_on_drop: false }`
[INFO] [stdout] 18ed36e0020fc5421b2f396572e650d1f2a9c4fc52381a76442b87960d96e8c4
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 526fa2c9e37396348e050ddedbaa6639876a768ba99732fdff133d838b517765
[INFO] running `Command { std: "docker" "start" "-a" "526fa2c9e37396348e050ddedbaa6639876a768ba99732fdff133d838b517765", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steward_channels-bee7d3ece87978dd)
[INFO] [stdout] 
[INFO] [stdout] running 102 tests
[INFO] [stdout] test confirmation::tests::test_format_guardian_decisions ... ok
[INFO] [stdout] test confirmation::tests::test_summarize_params_non_object ... ok
[INFO] [stdout] test confirmation::tests::test_summarize_params_with_password_field ... ok
[INFO] [stdout] test confirmation::tests::test_format_empty_params ... ok
[INFO] [stdout] test confirmation::tests::test_format_permission_tiers ... ok
[INFO] [stdout] test confirmation::tests::test_format_truncates_long_params ... ok
[INFO] [stdout] test confirmation::tests::test_format_approval_text_message ... ok
[INFO] [stdout] test confirmation::tests::test_format_filters_sensitive_params ... ok
[INFO] [stdout] test manager::tests::test_approval_routes_to_correct_channel ... ok
[INFO] [stdout] test manager::tests::test_approval_fallback_to_default_channel ... ok
[INFO] [stdout] test manager::tests::test_explicit_default_overrides_auto ... ok
[INFO] [stdout] test manager::tests::test_approval_routes_to_originating_channel ... ok
[INFO] [stdout] test manager::tests::test_first_registered_becomes_default ... ok
[INFO] [stdout] test manager::tests::test_concurrent_sends_to_different_channels ... ok
[INFO] [stdout] test manager::tests::test_first_registered_stays_default_after_more_registrations ... ok
[INFO] [stdout] test manager::tests::test_default_channel_is_none_initially ... ok
[INFO] [stdout] test manager::tests::test_merged_inbound_stream_from_multiple_channels ... ok
[INFO] [stdout] test manager::tests::test_register_channel_while_sending ... ok
[INFO] [stdout] test manager::tests::test_send_message_fallback_to_default_channel ... ok
[INFO] [stdout] test manager::tests::test_send_message_no_adapter_no_default_fails ... ok
[INFO] [stdout] test manager::tests::test_register_multiple_channels ... ok
[INFO] [stdout] test manager::tests::test_set_default_channel ... ok
[INFO] [stdout] test manager::tests::test_replace_adapter_for_same_channel_type ... ok
[INFO] [stdout] test manager::tests::test_set_default_channel_unregistered_fails ... ok
[INFO] [stdout] test manager::tests::test_register_single_channel ... ok
[INFO] [stdout] test manager::tests::test_start_listening_twice_fails ... ok
[INFO] [stdout] test telegram::tests::test_approval_callback_approved ... ok
[INFO] [stdout] test manager::tests::test_send_message_fallback_to_conversation_channel ... ok
[INFO] [stdout] test telegram::tests::test_approval_callback_rejected ... ok
[INFO] [stdout] test telegram::tests::test_approval_callback_unknown_id ... ok
[INFO] [stdout] test telegram::tests::test_config_api_url ... ok
[INFO] [stdout] test telegram::tests::test_config_defaults ... ok
[INFO] [stdout] test manager::tests::test_send_message_routes_to_correct_channel ... ok
[INFO] [stdout] test telegram::tests::test_deserialize_callback_query_update ... ok
[INFO] [stdout] test telegram::tests::test_deserialize_api_response_error ... ok
[INFO] [stdout] test telegram::tests::test_deserialize_api_response_with_updates ... ok
[INFO] [stdout] test telegram::tests::test_handle_message_allowed_user ... ok
[INFO] [stdout] test telegram::tests::test_is_user_allowed ... ok
[INFO] [stdout] test telegram::tests::test_approval_timeout ... ok
[INFO] [stdout] test telegram::tests::test_deserialize_text_message_update ... ok
[INFO] [stdout] test telegram::tests::test_parse_callback_query_reject ... ok
[INFO] [stdout] test telegram::tests::test_parse_callback_query_approve ... ok
[INFO] [stdout] test telegram::tests::test_parse_callback_query_no_data ... ok
[INFO] [stdout] test telegram::tests::test_parse_message_empty_allowlist ... ok
[INFO] [stdout] test telegram::tests::test_parse_callback_query_unknown_data ... ok
[INFO] [stdout] test telegram::tests::test_parse_message_no_sender ... ok
[INFO] [stdout] test telegram::tests::test_parse_message_no_text ... ok
[INFO] [stdout] test telegram::tests::test_parse_message_unauthorized_user ... ok
[INFO] [stdout] test telegram::tests::test_parse_text_message_allowed_user ... ok
[INFO] [stdout] test telegram::tests::test_polling_worker_handle_message_allowed ... ok
[INFO] [stdout] test telegram::tests::test_polling_worker_handle_callback_approved ... ok
[INFO] [stdout] test telegram::tests::test_polling_worker_process_update_callback ... ok
[INFO] [stdout] test telegram::tests::test_polling_worker_process_update_message ... ok
[INFO] [stdout] test manager::tests::test_inbound_messages_track_conversation_channel ... ok
[INFO] [stdout] test telegram::tests::test_process_update_with_callback_query ... ok
[INFO] [stdout] test telegram::tests::test_process_update_with_message ... ok
[INFO] [stdout] test telegram::tests::test_rate_limiter_allows_within_limit ... ok
[INFO] [stdout] test telegram::tests::test_rate_limiter_blocks_over_limit ... ok
[INFO] [stdout] test telegram::tests::test_rate_limiter_recovers_after_window ... ok
[INFO] [stdout] test telegram::tests::test_rate_limiter_zero_limit ... ok
[INFO] [stdout] test telegram::tests::test_send_message_rate_limited ... ok
[INFO] [stdout] test telegram::tests::test_start_listening_once ... ok
[INFO] [stdout] test telegram::tests::test_start_listening_twice_fails ... ok
[INFO] [stdout] test telegram::tests::test_user_display_name_first_only ... ok
[INFO] [stdout] test telegram::tests::test_user_display_name_with_last_name ... ok
[INFO] [stdout] test telegram::tests::test_user_display_name_with_username ... ok
[INFO] [stdout] test whatsapp::tests::test_approval_callback_approved ... ok
[INFO] [stdout] test whatsapp::tests::test_approval_callback_rejected ... ok
[INFO] [stdout] test whatsapp::tests::test_approval_callback_unknown_id ... ok
[INFO] [stdout] test whatsapp::tests::test_approval_timeout ... ok
[INFO] [stdout] test whatsapp::tests::test_invalid_signature ... ok
[INFO] [stdout] test whatsapp::tests::test_malformed_signature_no_prefix ... ok
[INFO] [stdout] test whatsapp::tests::test_missing_signature ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_document_message ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_document_message_no_caption ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_image_message ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_image_message_no_caption ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_message_missing_fields ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_text_message ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_text_message_no_contact ... ok
[INFO] [stdout] test whatsapp::tests::test_parse_unsupported_message_type ... ok
[INFO] [stdout] test whatsapp::tests::test_rate_limiter_allows_within_limit ... ok
[INFO] [stdout] test whatsapp::tests::test_rate_limiter_blocks_over_limit ... ok
[INFO] [stdout] test whatsapp::tests::test_rate_limiter_recovers_after_window ... ok
[INFO] [stdout] test whatsapp::tests::test_signature_with_different_body ... ok
[INFO] [stdout] test whatsapp::tests::test_signature_with_different_secret ... ok
[INFO] [stdout] test telegram::tests::test_approval_callback_unauthorized_user ... ok
[INFO] [stdout] test whatsapp::tests::test_start_listening_once ... ok
[INFO] [stdout] test whatsapp::tests::test_valid_signature ... ok
[INFO] [stdout] test telegram::tests::test_handle_message_no_sender ... ok
[INFO] [stdout] test whatsapp::tests::test_start_listening_twice_fails ... ok
[INFO] [stdout] test whatsapp::tests::test_webhook_interactive_button_callback ... ok
[INFO] [stdout] test whatsapp::tests::test_webhook_receive_valid_text_message ... ok
[INFO] [stdout] test whatsapp::tests::test_webhook_verify_success ... ok
[INFO] [stdout] test whatsapp::tests::test_webhook_receive_invalid_signature ... ok
[INFO] [stdout] test whatsapp::tests::test_webhook_receive_missing_signature ... ok
[INFO] [stdout] test whatsapp::tests::test_webhook_verify_wrong_token ... ok
[INFO] [stdout] test telegram::tests::test_handle_message_no_text ... ok
[INFO] [stdout] test telegram::tests::test_polling_worker_handle_callback_unauthorized ... ok
[INFO] [stdout] test telegram::tests::test_handle_message_unauthorized_user ... ok
[INFO] [stdout] test telegram::tests::test_polling_worker_handle_message_unauthorized ... ok
[INFO] [stdout] test telegram::tests::test_process_update_callback_takes_priority ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steward_core-ff5512b5f1da3729)
[INFO] [stdout] 
[INFO] [stdout] running 179 tests
[INFO] [stdout] test agent::tests::test_build_user_prompt_with_context ... ok
[INFO] [stdout] test agent::tests::test_build_user_prompt_no_context ... ok
[INFO] [stdout] test agent::tests::test_conversation_history_injected_into_second_call ... ok
[INFO] [stdout] test agent::tests::test_conversation_history_stores_sanitized_text ... ok
[INFO] [stdout] test agent::tests::test_default_agent_config ... ok
[INFO] [stdout] test agent::tests::test_egress_blocks_response ... ok
[INFO] [stdout] test agent::tests::test_every_step_produces_audit_log ... ok
[INFO] [stdout] test agent::tests::test_conversation_history_stored_after_turn ... ok
[INFO] [stdout] test agent::tests::test_egress_blocks_tool_result ... ok
[INFO] [stdout] test agent::tests::test_conversation_history_isolated_by_session ... ok
[INFO] [stdout] test agent::tests::test_forbidden_action ... ok
[INFO] [stdout] test agent::tests::test_group_chat_sender_name_is_sanitized ... ok
[INFO] [stdout] test agent::tests::test_group_chat_message_tagged_with_sender ... ok
[INFO] [stdout] test agent::tests::test_group_chat_bracket_injection_stripped ... ok
[INFO] [stdout] test agent::tests::test_group_chat_system_prompt_addition ... ok
[INFO] [stdout] test agent::tests::test_guardian_blocks_action ... ok
[INFO] [stdout] test agent::tests::test_guardian_failure_prevents_execution ... ok
[INFO] [stdout] test agent::tests::test_guardian_escalates_to_human_approved ... ok
[INFO] [stdout] test agent::tests::test_human_approval_flow_rejected ... ok
[INFO] [stdout] test agent::tests::test_happy_path_conversation_no_tools ... ok
[INFO] [stdout] test agent::tests::test_happy_path_tool_use ... ok
[INFO] [stdout] test agent::tests::test_human_approval_flow_approved ... ok
[INFO] [stdout] test agent::tests::test_ingress_detections_logged ... ok
[INFO] [stdout] test agent::tests::test_non_group_chat_no_system_prompt_addition ... ok
[INFO] [stdout] test agent::tests::test_known_agent_channel_none_matches_any_channel ... ok
[INFO] [stdout] test agent::tests::test_non_owner_sender_not_tagged_as_owner ... ok
[INFO] [stdout] test agent::tests::test_known_agent_message_gets_tagged ... ok
[INFO] [stdout] test agent::tests::test_known_agent_wrong_channel_not_tagged ... ok
[INFO] [stdout] test agent::tests::test_multi_turn_tool_use ... ok
[INFO] [stdout] test agent::tests::test_rate_limit_exceeded ... ok
[INFO] [stdout] test agent::tests::test_readonly_allows_date ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_find_delete_flag ... ok
[INFO] [stdout] test agent::tests::test_owner_message_gets_tagged ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_env_executes_arbitrary_command ... ok
[INFO] [stdout] test agent::tests::test_owner_wrong_channel_not_tagged ... ok
[INFO] [stdout] test agent::tests::test_memory_context_included_in_prompt ... ok
[INFO] [stdout] test agent::tests::test_llm_failure ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_find_fprint_flag ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_metacharacter_redirect ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_metacharacter_and_and ... ok
[INFO] [stdout] test agent::tests::test_readonly_whitelist_allows_find_without_exec ... ok
[INFO] [stdout] test agent::tests::test_readonly_shell_command_with_guardian_escalation_requires_human_approval ... ok
[INFO] [stdout] test agent::tests::test_readonly_whitelist_allows_safe_commands ... ok
[INFO] [stdout] test agent::tests::test_readonly_whitelist_rejects_dangerous_commands ... ok
[INFO] [stdout] test agent::tests::test_readonly_whitelist_rejects_find_with_exec ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_find_execdir_flag ... ok
[INFO] [stdout] test agent::tests::test_readonly_whitelist_allows_path_prefixed_binary ... ok
[INFO] [stdout] test agent::tests::test_sanitize_sender_name_strips_brackets ... ok
[INFO] [stdout] test agent::tests::test_sanitize_sender_name_strips_control_chars ... ok
[INFO] [stdout] test agent::tests::test_sanitize_sender_name_truncates_to_64 ... ok
[INFO] [stdout] test agent::tests::test_session_key_telegram_different_chat_ids_are_isolated ... ok
[INFO] [stdout] test agent::tests::test_session_key_webchat_different_principals_same_session_id_are_isolated ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_metacharacter_semicolon ... ok
[INFO] [stdout] test agent::tests::test_session_key_webchat_falls_back_to_default_principal_without_metadata ... ok
[INFO] [stdout] test agent::tests::test_session_key_webchat_falls_back_to_principal_and_sender_without_session_id ... ok
[INFO] [stdout] test agent::tests::test_session_key_webchat_same_principal_same_session_id_share_session ... ok
[INFO] [stdout] test agent::tests::test_session_key_webchat_with_principal_and_session_id ... ok
[INFO] [stdout] test agent::tests::test_session_key_whatsapp_uses_channel_sender_fallback ... ok
[INFO] [stdout] test agent::tests::test_tool_execution_failure ... ok
[INFO] [stdout] test conversation::tests::test_history_trimmed_to_max ... ok
[INFO] [stdout] test conversation::tests::test_multiple_turns_accumulate ... ok
[INFO] [stdout] test conversation::tests::test_different_sessions_are_isolated ... ok
[INFO] [stdout] test conversation::tests::test_empty_store_returns_no_history ... ok
[INFO] [stdout] test agent::tests::test_readonly_rejects_metacharacter_pipe ... ok
[INFO] [stdout] test conversation::tests::test_store_turn_and_retrieve ... ok
[INFO] [stdout] test conversation::tests::test_unknown_session_returns_empty ... ok
[INFO] [stdout] test guardian::tests::test_allow_verdict ... ok
[INFO] [stdout] test guardian::tests::test_block_verdict ... ok
[INFO] [stdout] test guardian::tests::test_confidence_at_threshold_allows ... ok
[INFO] [stdout] test guardian::tests::test_confidence_clamped_to_range ... ok
[INFO] [stdout] test agent::tests::test_session_key_telegram_uses_chat_id_from_metadata ... ok
[INFO] [stdout] test guardian::tests::test_escalate_verdict ... ok
[INFO] [stdout] test guardian::tests::test_extract_json_embedded_in_text ... ok
[INFO] [stdout] test guardian::tests::test_extract_json_from_code_fence ... ok
[INFO] [stdout] test guardian::tests::test_extract_json_with_whitespace ... ok
[INFO] [stdout] test guardian::tests::test_injection_in_parameters_detected ... ok
[INFO] [stdout] test guardian::tests::test_extract_json_bare ... ok
[INFO] [stdout] test agent::tests::test_readonly_whitelist_rejects_missing_command ... ok
[INFO] [stdout] test guardian::tests::test_json_in_code_fences ... ok
[INFO] [stdout] test guardian::tests::test_injection_in_params_does_not_affect_guardian_prompt_structure ... ok
[INFO] [stdout] test guardian::tests::test_llm_failure_returns_error ... ok
[INFO] [stdout] test guardian::tests::test_malformed_output_escalates ... ok
[INFO] [stdout] test guardian::tests::test_missing_injection_indicators_defaults_to_empty ... ok
[INFO] [stdout] test agent::tests::test_session_key_telegram_falls_back_to_sender_if_no_chat_id ... ok
[INFO] [stdout] test guardian::tests::test_low_confidence_allow_escalates ... ok
[INFO] [stdout] test guardian::tests::test_low_confidence_block_stays_blocked ... ok
[INFO] [stdout] test guardian::tests::test_partial_json_escalates ... ok
[INFO] [stdout] test guardian::tests::test_missing_required_fields_escalates ... ok
[INFO] [stdout] test guardian::tests::test_prompt_does_not_leak_external_content ... ok
[INFO] [stdout] test llm::anthropic::tests::test_empty_system_prompt_omitted ... ok
[INFO] [stdout] test guardian::tests::test_negative_confidence_clamped ... ok
[INFO] [stdout] test llm::anthropic::tests::test_rate_limit_headers_respected ... ok
[INFO] [stdout] test guardian::tests::test_unrecognized_decision_escalates ... ok
[INFO] [stdout] test llm::anthropic::tests::test_response_deserialization_text ... ok
[INFO] [stdout] test llm::anthropic::tests::test_request_body_structure ... ok
[INFO] [stdout] test llm::anthropic::tests::test_successful_completion ... ok
[INFO] [stdout] test llm::anthropic::tests::test_request_serialization ... ok
[INFO] [stdout] test llm::anthropic::tests::test_tool_serialization ... ok
[INFO] [stdout] test llm::anthropic::tests::test_response_deserialization_tool_use ... ok
[INFO] [stdout] test llm::anthropic::tests::test_auth_failure ... ok
[INFO] [stdout] test llm::ollama::tests::test_empty_system_becomes_no_system_message ... ok
[INFO] [stdout] test llm::anthropic::tests::test_completion_with_tools ... ok
[INFO] [stdout] test llm::ollama::tests::test_message_conversion ... ok
[INFO] [stdout] test llm::ollama::tests::test_connection_refused ... ok
[INFO] [stdout] test llm::anthropic::tests::test_rate_limit_error ... ok
[INFO] [stdout] test llm::ollama::tests::test_missing_token_counts_default_to_zero ... ok
[INFO] [stdout] test llm::ollama::tests::test_response_deserialization_tool_calls ... ok
[INFO] [stdout] test llm::ollama::tests::test_response_deserialization_text ... ok
[INFO] [stdout] test llm::ollama::tests::test_request_body_has_stream_false ... ok
[INFO] [stdout] test llm::ollama::tests::test_tool_conversion ... ok
[INFO] [stdout] test llm::router::tests::test_all_providers_fail ... ok
[INFO] [stdout] test llm::ollama::tests::test_server_error ... ok
[INFO] [stdout] test llm::ollama::tests::test_successful_completion ... ok
[INFO] [stdout] test llm::router::tests::test_fallback_on_primary_failure ... ok
[INFO] [stdout] test llm::router::tests::test_from_providers_empty ... ok
[INFO] [stdout] test llm::router::tests::test_from_providers_single ... ok
[INFO] [stdout] test llm::router::tests::test_primary_succeeds ... ok
[INFO] [stdout] test llm::ollama::tests::test_completion_with_tool_calls ... ok
[INFO] [stdout] test llm::router::tests::test_complete_with_tools_fallback ... ok
[INFO] [stdout] test llm::router::tests::test_second_fallback_succeeds ... ok
[INFO] [stdout] test permissions::tests::test_exact_match ... ok
[INFO] [stdout] test permissions::tests::test_classify_auto_execute ... ok
[INFO] [stdout] test permissions::tests::test_classify_forbidden ... ok
[INFO] [stdout] test permissions::tests::test_new_with_invalid_yaml ... ok
[INFO] [stdout] test conversation::tests::test_existing_session_not_evicted_on_update ... ok
[INFO] [stdout] test permissions::tests::test_classify_human_approval ... ok
[INFO] [stdout] test permissions::tests::test_hot_reload_preserves_rate_limit_state ... ok
[INFO] [stdout] test permissions::tests::test_new_with_nonexistent_file ... ok
[INFO] [stdout] test permissions::tests::test_hot_reload_changes_classification ... ok
[INFO] [stdout] test permissions::tests::test_classify_log_and_execute ... ok
[INFO] [stdout] test permissions::tests::test_no_rate_limit_returns_ok ... ok
[INFO] [stdout] test permissions::tests::test_parse_rate_limit_invalid_format ... ok
[INFO] [stdout] test permissions::tests::test_parse_rate_limit_minute ... ok
[INFO] [stdout] test permissions::tests::test_parse_rate_limit_hour ... ok
[INFO] [stdout] test permissions::tests::test_parse_default_manifest ... ok
[INFO] [stdout] test permissions::tests::test_tier_priority_human_approval_over_auto ... ok
[INFO] [stdout] test permissions::tests::test_token_bucket_basic ... ok
[INFO] [stdout] test permissions::tests::test_token_bucket_retry_after ... ok
[INFO] [stdout] test permissions::tests::test_rate_limit_exceeded ... ok
[INFO] [stdout] test permissions::tests::test_unknown_action_defaults_to_human_approval ... ok
[INFO] [stdout] test permissions::tests::test_parse_rate_limit_second ... ok
[INFO] [stdout] test permissions::tests::test_tier_priority_forbidden_wins ... ok
[INFO] [stdout] test permissions::tests::test_wildcard_does_not_match_bare_prefix ... ok
[INFO] [stdout] test permissions::tests::test_wildcard_does_not_match_different_prefix ... ok
[INFO] [stdout] test permissions::tests::test_wildcard_matches_subaction ... ok
[INFO] [stdout] test permissions::tests::test_wildcard_tier_priority ... ok
[INFO] [stdout] test router::tests::test_case_insensitive ... ok
[INFO] [stdout] test permissions::tests::test_wildcard_classification ... ok
[INFO] [stdout] test router::tests::test_create_event ... ok
[INFO] [stdout] test router::tests::test_delete_file ... ok
[INFO] [stdout] test router::tests::test_empty_message ... ok
[INFO] [stdout] test router::tests::test_draft_email ... ok
[INFO] [stdout] test router::tests::test_greeting_good_morning ... ok
[INFO] [stdout] test router::tests::test_greeting_hi ... ok
[INFO] [stdout] test permissions::tests::test_rate_limit_within_limits ... ok
[INFO] [stdout] test router::tests::test_long_greeting_becomes_tool_assisted ... ok
[INFO] [stdout] test router::tests::test_greeting_thanks ... ok
[INFO] [stdout] test router::tests::test_order_action ... ok
[INFO] [stdout] test router::tests::test_question_with_lookup ... ok
[INFO] [stdout] test router::tests::test_question_can_you ... ok
[INFO] [stdout] test router::tests::test_run_command ... ok
[INFO] [stdout] test router::tests::test_question_without_specific_words ... ok
[INFO] [stdout] test router::tests::test_schedule_action ... ok
[INFO] [stdout] test permissions::tests::test_unknown_action_no_rate_limit ... ok
[INFO] [stdout] test router::tests::test_default_returns_new_router ... ok
[INFO] [stdout] test router::tests::test_greeting_hello ... ok
[INFO] [stdout] test router::tests::test_search_request ... ok
[INFO] [stdout] test router::tests::test_send_email ... ok
[INFO] [stdout] test router::tests::test_service_reference_calendar ... ok
[INFO] [stdout] test router::tests::test_service_reference_email ... ok
[INFO] [stdout] test router::tests::test_simple_chat ... ok
[INFO] [stdout] test router::tests::test_turn_on_lights ... ok
[INFO] [stdout] test router::tests::test_show_me ... ok
[INFO] [stdout] test router::tests::test_update_action ... ok
[INFO] [stdout] test router::tests::test_whitespace_only ... ok
[INFO] [stdout] test router::tests::test_who_are_you ... ok
[INFO] [stdout] test llm::anthropic::tests::test_timeout_error ... ok
[INFO] [stdout] test conversation::tests::test_session_cap_evicts_oldest_on_overflow ... ok
[INFO] [stdout] test permissions::tests::test_rate_limit_refill ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 179 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.83s
[INFO] [stdout] 
[INFO] [stderr]      Running smoke_test.rs (/opt/rustwide/target/debug/deps/smoke_test-b036fac7b6d33214)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test smoke_injection_attack_detected ... ok
[INFO] [stdout] test smoke_happy_path_full_pipeline ... ok
[INFO] [stdout] test smoke_audit_trail_complete ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steward_memory-760481c86c2bfbd8)
[INFO] [stdout] 
[INFO] [stdout] running 83 tests
[INFO] [stdout] test embedding::tests::test_openai_embed_live ... ignored
[INFO] [stdout] test extraction::tests::test_default_config ... ok
[INFO] [stdout] test embedding::tests::test_mock_embedding_provider ... ok
[INFO] [stdout] test extraction::tests::test_build_extraction_prompt ... ok
[INFO] [stdout] test extraction::tests::test_parse_extraction_response_invalid ... ok
[INFO] [stdout] test embedding::tests::test_mock_embed_returns_fixed_vector ... ok
[INFO] [stdout] test extraction::tests::test_parse_extraction_response_empty ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_empty_inputs ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_both_methods ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_fts_only ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_mixed_overlap ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_vector_only ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_with_different_k ... ok
[INFO] [stdout] test search::tests::test_compute_rrf_with_different_weights ... ok
[INFO] [stdout] test search::tests::test_empty_results ... ignored
[INFO] [stdout] test search::tests::test_fts_search_returns_relevant_results ... ignored
[INFO] [stdout] test extraction::tests::test_parse_extraction_response_embedded_json ... ok
[INFO] [stdout] test extraction::tests::test_parse_extraction_response_valid ... ok
[INFO] [stdout] test search::tests::test_hybrid_store_rejects_confidence_above_one ... ok
[INFO] [stdout] test search::tests::test_hybrid_store_rejects_negative_confidence ... ok
[INFO] [stdout] test search::tests::test_hybrid_store_rejects_nan_trust_score ... ok
[INFO] [stdout] test search::tests::test_hybrid_store_rejects_nan_confidence ... ok
[INFO] [stdout] test search::tests::test_hybrid_store_rejects_negative_trust_score ... ok
[INFO] [stdout] test embedding::tests::test_new_uses_default_model ... ok
[INFO] [stdout] test embedding::tests::test_new_defaults_to_1536_dimensions ... ok
[INFO] [stdout] test embedding::tests::test_with_client_uses_custom_model ... ok
[INFO] [stdout] test search::tests::test_hybrid_update_trust_rejects_above_one ... ok
[INFO] [stdout] test search::tests::test_hybrid_store_rejects_trust_score_above_one ... ok
[INFO] [stdout] test search::tests::test_immutable_core_memory_check ... ok
[INFO] [stdout] test search::tests::test_pgvector_to_vec_empty ... ok
[INFO] [stdout] test search::tests::test_hybrid_update_trust_rejects_nan ... ok
[INFO] [stdout] test search::tests::test_hybrid_update_trust_rejects_negative ... ok
[INFO] [stdout] test search::tests::test_provenance_from_str_unknown_defaults ... ok
[INFO] [stdout] test search::tests::test_provenance_roundtrip ... ok
[INFO] [stdout] test search::tests::test_rrf_fusion_ranks_combined_results ... ignored
[INFO] [stdout] test search::tests::test_provenance_to_str_all_variants ... ok
[INFO] [stdout] test search::tests::test_rrf_ranking_order ... ok
[INFO] [stdout] test search::tests::test_rrf_score_component_basic ... ok
[INFO] [stdout] test search::tests::test_scope_filtering ... ignored
[INFO] [stdout] test search::tests::test_scoped_search_includes_shared ... ignored
[INFO] [stdout] test search::tests::test_pgvector_to_vec ... ok
[INFO] [stdout] test search::tests::test_rrf_score_component_high_rank ... ok
[INFO] [stdout] test search::tests::test_pgvector_to_vec_invalid ... ok
[INFO] [stdout] test search::tests::test_search_with_limit ... ignored
[INFO] [stdout] test search::tests::test_store_and_search_roundtrip ... ignored
[INFO] [stdout] test search::tests::test_store_duplicate_id_returns_error ... ignored
[INFO] [stdout] test search::tests::test_rrf_score_component_with_weight ... ok
[INFO] [stdout] test search::tests::test_trust_score_weighting_penalizes_low_trust ... ignored
[INFO] [stdout] test search::tests::test_update_trust_nonexistent ... ignored
[INFO] [stdout] test search::tests::test_update_trust_user_instruction_is_immutable ... ignored
[INFO] [stdout] test search::tests::test_update_trust_user_instruction_mutable_at_low_trust ... ignored
[INFO] [stdout] test search::tests::test_trust_score_weighting ... ok
[INFO] [stdout] test search::tests::test_validate_confidence_above_one_rejected ... ok
[INFO] [stdout] test search::tests::test_validate_confidence_negative_rejected ... ok
[INFO] [stdout] test search::tests::test_validate_confidence_nan_rejected ... ok
[INFO] [stdout] test search::tests::test_validate_trust_score_nan_rejected ... ok
[INFO] [stdout] test search::tests::test_vector_search_returns_similar_entries ... ignored
[INFO] [stdout] test workspace::tests::test_get_by_provenance_respects_limit ... ignored
[INFO] [stdout] test workspace::tests::test_get_nonexistent ... ignored
[INFO] [stdout] test search::tests::test_validate_trust_score_negative_rejected ... ok
[INFO] [stdout] test workspace::tests::test_immutable_core_memory_protection ... ignored
[INFO] [stdout] test workspace::tests::test_provenance_filtering ... ignored
[INFO] [stdout] test search::tests::test_validate_trust_score_above_one_rejected ... ok
[INFO] [stdout] test workspace::tests::test_immutable_core_memory_check ... ok
[INFO] [stdout] test search::tests::test_vec_to_pgvector_empty ... ok
[INFO] [stdout] test workspace::tests::test_store_and_retrieve ... ignored
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steward_security-dc77741e16fcb0ac)
[INFO] [stdout] test workspace::tests::test_store_with_explicit_id ... ignored
[INFO] [stdout] test workspace::tests::test_provenance_to_str_values ... ok
[INFO] [stdout] test workspace::tests::test_provenance_roundtrip ... ok
[INFO] [stdout] test search::tests::test_provenance_from_str_all_variants ... ok
[INFO] [stdout] test workspace::tests::test_store_without_embedding ... ignored
[INFO] [stdout] test search::tests::test_validate_trust_score_valid ... ok
[INFO] [stdout] test workspace::tests::test_trust_score_update ... ignored
[INFO] [stdout] test workspace::tests::test_update_trust_nonexistent ... ignored
[INFO] [stdout] test workspace::tests::test_user_instruction_mutable_when_not_max_trust ... ignored
[INFO] [stdout] test workspace::tests::test_str_to_provenance_unknown ... ok
[INFO] [stdout] test workspace::tests::test_validate_confidence_invalid_rejected ... ok
[INFO] [stdout] test search::tests::test_vec_to_pgvector ... ok
[INFO] [stdout] test workspace::tests::test_validate_trust_score_above_one_rejected ... ok
[INFO] [stdout] test workspace::tests::test_validate_trust_score_nan_rejected ... ok
[INFO] [stdout] test workspace::tests::test_validate_trust_score_negative_rejected ... ok
[INFO] [stdout] test workspace::tests::test_vector_embedding_storage ... ignored
[INFO] [stdout] test workspace::tests::test_validate_trust_score_valid ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 58 passed; 0 failed; 25 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 185 tests
[INFO] [stdout] test audit::tests::integration::test_postgres_concurrent_logging ... ignored
[INFO] [stdout] test audit::tests::integration::test_postgres_insert_and_query ... ignored
[INFO] [stdout] test audit::tests::integration::test_postgres_query_filters ... ignored
[INFO] [stdout] test audit::tests::integration::test_postgres_redaction_before_storage ... ignored
[INFO] [stdout] test audit::tests::test_inmemory_empty_query_returns_empty ... ok
[INFO] [stdout] test audit::tests::test_inmemory_append_only ... ok
[INFO] [stdout] test audit::tests::test_inmemory_filter_by_event_type ... ok
[INFO] [stdout] test audit::tests::test_inmemory_filter_by_outcome ... ok
[INFO] [stdout] test audit::tests::test_inmemory_concurrent_logging ... ok
[INFO] [stdout] test audit::tests::test_inmemory_clone_shares_state ... ok
[INFO] [stdout] test audit::tests::test_inmemory_combined_filters ... ok
[INFO] [stdout] test audit::tests::test_inmemory_filter_by_time_range ... ok
[INFO] [stdout] test audit::tests::test_inmemory_log_and_query ... ok
[INFO] [stdout] test audit::tests::test_inmemory_filter_with_limit ... ok
[INFO] [stdout] test audit::tests::test_inmemory_filter_no_action_with_tool_name_filter ... ok
[INFO] [stdout] test audit::tests::test_audit_event_serialization_roundtrip ... ok
[INFO] [stdout] test audit::tests::test_audit_event_serialization_all_outcomes ... ok
[INFO] [stdout] test audit::tests::test_audit_event_with_guardian_verdict_serialization ... ok
[INFO] [stdout] test audit::tests::test_inmemory_multiple_events_in_order ... ok
[INFO] [stdout] test audit::tests::test_inmemory_with_leak_detector_redacts_reasoning ... ok
[INFO] [stdout] test audit::tests::test_inmemory_with_leak_detector_redacts_metadata ... ok
[INFO] [stdout] test audit::tests::test_inmemory_without_leak_detector_no_redaction ... ok
[INFO] [stdout] test audit::tests::test_inmemory_with_leak_detector_redacts_parameters ... ok
[INFO] [stdout] test egress::tests::test_egress_decision_pass_serializes ... ok
[INFO] [stdout] test egress::tests::test_egress_decision_warn_serializes ... ok
[INFO] [stdout] test egress::tests::test_egress_decision_block_serializes ... ok
[INFO] [stdout] test egress::tests::test_entropy_empty ... ok
[INFO] [stdout] test egress::tests::test_entropy_higher_for_varied ... ok
[INFO] [stdout] test egress::tests::test_entropy_low_for_repetitive ... ok
[INFO] [stdout] test audit::tests::test_inmemory_filter_by_tool_name ... ok
[INFO] [stdout] test egress::tests::test_credit_card_with_luhn_blocked ... ok
[INFO] [stdout] test egress::tests::test_json_data_dump_warns ... ok
[INFO] [stdout] test egress::tests::test_luhn_invalid ... ok
[INFO] [stdout] test egress::tests::test_luhn_too_short ... ok
[INFO] [stdout] test egress::tests::test_luhn_valid_mastercard ... ok
[INFO] [stdout] test egress::tests::test_luhn_valid_visa ... ok
[INFO] [stdout] test egress::tests::test_luhn_with_spaces ... ok
[INFO] [stdout] test egress::tests::test_email_address_detected_low_severity ... ok
[INFO] [stdout] test egress::tests::test_empty_allowlist_skips_validation ... ok
[INFO] [stdout] test egress::tests::test_allowed_recipient_passes ... ok
[INFO] [stdout] test egress::tests::test_credit_card_without_luhn_passes ... ok
[INFO] [stdout] test egress::tests::test_icd_code_detected_blocks ... ok
[INFO] [stdout] test egress::tests::test_csv_data_dump_warns ... ok
[INFO] [stdout] test egress::tests::test_normal_email_content_passes ... ok
[INFO] [stdout] test egress::tests::test_normal_content_passes ... ok
[INFO] [stdout] test egress::tests::test_no_secret_leak_passes ... ok
[INFO] [stdout] test egress::tests::test_phone_number_detected_warns ... ok
[INFO] [stdout] test egress::tests::test_normal_text_no_false_positives ... ok
[INFO] [stdout] test egress::tests::test_non_communication_action_skips_recipient_check ... ok
[INFO] [stdout] test egress::tests::test_multiple_findings_all_reported ... ok
[INFO] [stdout] test egress::tests::test_medication_name_detected_blocks ... ok
[INFO] [stdout] test egress::tests::test_register_invalid_pattern_does_not_crash ... ok
[INFO] [stdout] test egress::tests::test_secret_leak_blocks ... ok
[INFO] [stdout] test egress::tests::test_register_custom_pattern ... ok
[INFO] [stdout] test egress::tests::test_physical_address_detected_warns ... ok
[INFO] [stdout] test egress::tests::test_volume_not_tracked_for_non_communication ... ok
[INFO] [stdout] test egress::tests::test_ssn_detected_and_blocked ... ok
[INFO] [stdout] test egress::tests::test_volume_anomaly_blocks ... ok
[INFO] [stdout] test egress::tests::test_unknown_recipient_warns ... ok
[INFO] [stdout] test egress::tests::test_wildcard_recipient_passes ... ok
[INFO] [stdout] test ingress::tests::test_content_tagging_escapes_quotes_in_source ... ok
[INFO] [stdout] test ingress::tests::test_content_tagging_email ... ok
[INFO] [stdout] test ingress::tests::test_content_tagging_web_no_sender ... ok
[INFO] [stdout] test ingress::tests::test_content_tagging_whatsapp ... ok
[INFO] [stdout] test ingress::tests::test_context_budget_exact_limit ... ok
[INFO] [stdout] test ingress::tests::test_context_budget_multibyte_truncation ... ok
[INFO] [stdout] test ingress::tests::test_context_budget_not_exceeded ... ok
[INFO] [stdout] test ingress::tests::test_context_budget_truncation ... ok
[INFO] [stdout] test ingress::tests::test_detect_data_text_html ... ok
[INFO] [stdout] test ingress::tests::test_detect_delimiter_manipulation_html ... ok
[INFO] [stdout] test ingress::tests::test_detect_base64_block ... ok
[INFO] [stdout] test ingress::tests::test_detect_delimiter_manipulation_markdown_code_block ... ok
[INFO] [stdout] test ingress::tests::test_detect_directive_density ... ok
[INFO] [stdout] test ingress::tests::test_detect_disregard_above ... ok
[INFO] [stdout] test ingress::tests::test_detect_delimiter_manipulation_xml ... ok
[INFO] [stdout] test ingress::tests::test_detect_forget_instructions ... ok
[INFO] [stdout] test ingress::tests::test_detect_html_script_injection ... ok
[INFO] [stdout] test ingress::tests::test_detect_excessive_whitespace ... ok
[INFO] [stdout] test ingress::tests::test_detect_ignore_previous_instructions ... ok
[INFO] [stdout] test ingress::tests::test_detect_ignore_prior_instructions ... ok
[INFO] [stdout] test ingress::tests::test_detect_instruction_override ... ok
[INFO] [stdout] test ingress::tests::test_detect_important_directive ... ok
[INFO] [stdout] test ingress::tests::test_detect_javascript_uri ... ok
[INFO] [stdout] test ingress::tests::test_detect_role_play_you_are_now ... ok
[INFO] [stdout] test ingress::tests::test_detect_role_play_act_as ... ok
[INFO] [stdout] test ingress::tests::test_detect_role_play_pretend_to_be ... ok
[INFO] [stdout] test ingress::tests::test_detect_system_prompt_injection ... ok
[INFO] [stdout] test ingress::tests::test_detect_system_prompt_uppercase ... ok
[INFO] [stdout] test ingress::tests::test_detect_unicode_lro ... ok
[INFO] [stdout] test ingress::tests::test_detect_unicode_direction_override ... ok
[INFO] [stdout] test ingress::tests::test_detection_confidence_score ... ok
[INFO] [stdout] test ingress::tests::test_detection_includes_matched_text ... ok
[INFO] [stdout] test ingress::tests::test_empty_input ... ok
[INFO] [stdout] test ingress::tests::test_detection_includes_offset ... ok
[INFO] [stdout] test ingress::tests::test_excessive_newlines_normalized ... ok
[INFO] [stdout] test ingress::tests::test_empty_trusted_senders_all_get_tagged ... ok
[INFO] [stdout] test ingress::tests::test_full_sanitize_malicious_content ... ok
[INFO] [stdout] test ingress::tests::test_full_sanitize_clean_content ... ok
[INFO] [stdout] test ingress::tests::test_multiple_patterns_detected ... ok
[INFO] [stdout] test ingress::tests::test_no_false_positive_casual_message ... ok
[INFO] [stdout] test ingress::tests::test_nested_external_content_tags ... ok
[INFO] [stdout] test ingress::tests::test_no_false_positive_normal_email ... ok
[INFO] [stdout] test ingress::tests::test_multiple_trusted_senders ... ok
[INFO] [stdout] test ingress::tests::test_no_false_positive_normal_whitespace ... ok
[INFO] [stdout] test ingress::tests::test_no_false_positive_short_base64_like ... ok
[INFO] [stdout] test ingress::tests::test_no_false_positive_technical_docs ... ok
[INFO] [stdout] test ingress::tests::test_no_sender_not_trusted ... ok
[INFO] [stdout] test ingress::tests::test_no_false_positive_system_in_sentence ... ok
[INFO] [stdout] test ingress::tests::test_trusted_sender_content_is_still_escaped ... ok
[INFO] [stdout] test ingress::tests::test_trusted_sender_skips_external_content_tags ... ok
[INFO] [stdout] test ingress::tests::test_trusted_sender_source_preserved_in_result ... ok
[INFO] [stdout] test ingress::tests::test_trusted_sender_still_detects_injections ... ok
[INFO] [stdout] test ingress::tests::test_unicode_override_escaped ... ok
[INFO] [stdout] test ingress::tests::test_untrusted_sender_still_gets_external_content_tags ... ok
[INFO] [stdout] test ingress::tests::test_very_long_input_with_injections ... ok
[INFO] [stdout] test leak_detector::tests::test_aws_access_key ... ok
[INFO] [stdout] test leak_detector::tests::test_anthropic_api_key ... ok
[INFO] [stdout] test leak_detector::tests::test_aws_secret_key ... ok
[INFO] [stdout] test leak_detector::tests::test_base64_data_no_false_positive ... ok
[INFO] [stdout] test leak_detector::tests::test_bearer_token ... ok
[INFO] [stdout] test leak_detector::tests::test_bearer_token_case_insensitive ... ok
[INFO] [stdout] test leak_detector::tests::test_detection_fields_populated ... ok
[INFO] [stdout] test leak_detector::tests::test_ec_private_key ... ok
[INFO] [stdout] test leak_detector::tests::test_detections_sorted_by_offset ... ok
[INFO] [stdout] test leak_detector::tests::test_ed25519_private_key ... ok
[INFO] [stdout] test leak_detector::tests::test_empty_input ... ok
[INFO] [stdout] test leak_detector::tests::test_gcp_api_key ... ok
[INFO] [stdout] test leak_detector::tests::test_github_oauth_token ... ok
[INFO] [stdout] test leak_detector::tests::test_github_personal_access_token ... ok
[INFO] [stdout] test leak_detector::tests::test_github_refresh_token ... ok
[INFO] [stdout] test leak_detector::tests::test_github_server_token ... ok
[INFO] [stdout] test leak_detector::tests::test_hex_string_no_false_positive ... ok
[INFO] [stdout] test leak_detector::tests::test_github_user_token ... ok
[INFO] [stdout] test leak_detector::tests::test_luhn_check_invalid ... ok
[INFO] [stdout] test leak_detector::tests::test_luhn_check_valid ... ok
[INFO] [stdout] test leak_detector::tests::test_luhn_rejects_uniform_sequences ... ok
[INFO] [stdout] test leak_detector::tests::test_invalid_ssn_area_000 ... ok
[INFO] [stdout] test leak_detector::tests::test_invalid_card_fails_luhn ... ok
[INFO] [stdout] test leak_detector::tests::test_invalid_ssn_area_666 ... ok
[INFO] [stdout] test leak_detector::tests::test_invalid_ssn_area_900_plus ... ok
[INFO] [stdout] test leak_detector::tests::test_invalid_ssn_group_00 ... ok
[INFO] [stdout] test leak_detector::tests::test_invalid_ssn_serial_0000 ... ok
[INFO] [stdout] test leak_detector::tests::test_jwt ... ok
[INFO] [stdout] test leak_detector::tests::test_no_false_positive_on_url_without_password ... ok
[INFO] [stdout] test leak_detector::tests::test_normal_url_no_false_positive ... ok
[INFO] [stdout] test leak_detector::tests::test_multiple_patterns_in_content ... ok
[INFO] [stdout] test leak_detector::tests::test_openai_api_key ... ok
[INFO] [stdout] test leak_detector::tests::test_password_in_url ... ok
[INFO] [stdout] test leak_detector::tests::test_openai_does_not_match_anthropic ... ok
[INFO] [stdout] test leak_detector::tests::test_redaction_no_secrets ... ok
[INFO] [stdout] test leak_detector::tests::test_redaction_preserves_non_secret_content ... ok
[INFO] [stdout] test leak_detector::tests::test_rsa_private_key ... ok
[INFO] [stdout] test secret_broker::tests::test_decrypt_rejects_invalid_nonce_length ... ok
[INFO] [stdout] test secret_broker::tests::test_different_master_keys_produce_different_keys ... ok
[INFO] [stdout] test secret_broker::tests::test_different_salts_produce_different_keys ... ok
[INFO] [stdout] test secret_broker::tests::test_each_encryption_uses_unique_nonce ... ok
[INFO] [stdout] test secret_broker::tests::test_encrypt_decrypt_empty_plaintext ... ok
[INFO] [stdout] test secret_broker::tests::test_encrypt_decrypt_round_trip ... ok
[INFO] [stdout] test secret_broker::tests::test_encrypt_decrypt_round_trip_long_value ... ok
[INFO] [stdout] test secret_broker::tests::test_expired_credential_rejected_on_inject ... ok
[INFO] [stdout] test leak_detector::tests::test_redaction_multiple_secrets ... ok
[INFO] [stdout] test secret_broker::tests::test_from_env_missing_var ... ok
[INFO] [stdout] test secret_broker::tests::test_expired_tokens_cleaned_up ... ok
[INFO] [stdout] test secret_broker::tests::test_inject_blocks_when_credential_in_params ... ok
[INFO] [stdout] test secret_broker::tests::test_inject_credentials_basic ... ok
[INFO] [stdout] test secret_broker::tests::test_inject_credentials_nonexistent_key ... ok
[INFO] [stdout] test secret_broker::tests::test_key_id_mismatch_rejected ... ok
[INFO] [stdout] test secret_broker::tests::test_provision_token_basic ... ok
[INFO] [stdout] test secret_broker::tests::test_provision_token_nonexistent_credential ... ok
[INFO] [stdout] test secret_broker::tests::test_provision_token_single_use ... ok
[INFO] [stdout] test secret_broker::tests::test_rotate_credential ... ok
[INFO] [stdout] test secret_broker::tests::test_inject_multiple_credentials ... ok
[INFO] [stdout] test secret_broker::tests::test_rotate_nonexistent_credential_fails ... ok
[INFO] [stdout] test secret_broker::tests::test_store_overwrites_existing_key ... ok
[INFO] [stdout] test secret_broker::tests::test_store_rejects_invalid_nonce_length ... ok
[INFO] [stdout] test secret_broker::tests::test_tampered_ciphertext_fails_decryption ... ok
[INFO] [stdout] test secret_broker::tests::test_tampered_nonce_fails_decryption ... ok
[INFO] [stdout] test secret_broker::tests::test_wrong_master_key_fails_decryption ... ok
[INFO] [stdout] test secret_broker::tests::test_token_has_correct_expiry ... ok
[INFO] [stdout] test leak_detector::tests::test_uuid_no_false_positive ... ok
[INFO] [stdout] test leak_detector::tests::test_valid_card_with_dashes ... ok
[INFO] [stdout] test leak_detector::tests::test_valid_card_with_spaces ... ok
[INFO] [stdout] test leak_detector::tests::test_valid_ssn ... ok
[INFO] [stdout] test leak_detector::tests::test_valid_visa_card ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/steward-769bb25087c62f5b)
[INFO] [stdout] test leak_detector::tests::test_very_long_input ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 181 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 5.23s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test tests::test_build_api_keys_map_legacy_single_key_uses_default_principal ... ok
[INFO] [stdout] test tests::test_build_api_keys_map_multi_key_takes_precedence_over_legacy ... ok
[INFO] [stdout] test tests::test_chat_200_with_correct_token ... ok
[INFO] [stdout] test tests::test_build_api_keys_map_neither_set_returns_empty ... ok
[INFO] [stdout] test tests::test_chat_400_on_missing_text_field ... ok
[INFO] [stdout] test tests::test_chat_401_when_auth_required_and_no_header ... ok
[INFO] [stdout] test tests::test_caller_cannot_hijack_session_across_principals ... ok
[INFO] [stdout] test tests::test_chat_400_on_non_object_metadata_array ... ok
[INFO] [stdout] test tests::test_chat_401_when_wrong_token_supplied ... ok
[INFO] [stdout] test tests::test_parse_api_keys_empty_string ... ok
[INFO] [stdout] test tests::test_parse_api_keys_skips_empty_name_or_key ... ok
[INFO] [stdout] test tests::test_chat_400_on_non_object_metadata_string ... ok
[INFO] [stdout] test tests::test_invalid_session_id_returns_400 ... ok
[INFO] [stdout] test tests::test_oversized_session_id_returns_400 ... ok
[INFO] [stdout] test tests::test_chat_401_when_no_api_key_configured ... ok
[INFO] [stdout] test tests::test_parse_trusted_senders_trims_whitespace ... ok
[INFO] [stdout] test tests::test_parse_trusted_senders_no_whitespace ... ok
[INFO] [stdout] test tests::test_parse_trusted_senders_skips_empty_tokens ... ok
[INFO] [stdout] test tests::test_parse_api_keys_valid_entries ... ok
[INFO] [stdout] test tests::test_parse_api_keys_skips_entries_without_colon ... ok
[INFO] [stdout] test tests::test_two_api_keys_same_sender_id_get_different_principals ... ok
[INFO] [stdout] test tests::test_valid_uuid_session_id_accepted ... ok
[INFO] [stdout] test tests::test_session_id_roundtrip ... ok
[INFO] [stdout] test tests::test_chat_response_includes_session_id ... ok
[INFO] [stdout] test tests::test_parse_api_keys_trims_whitespace ... ok
[INFO] [stdout] test tests::test_parse_trusted_senders_empty_string ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steward_tools-04902789d65f1ab2)
[INFO] [stdout] 
[INFO] [stdout] running 306 tests
[INFO] [stdout] test built_in::file_edit::tests::test_missing_parameters ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_absolute_outside_rejected ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_nonexistent_file_returns_error ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_tool_definition_schema_requires_all_fields ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_multiple_matches_returns_error ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_empty_old_text_rejected ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_old_text_not_found_returns_error ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_replace_preserves_rest_of_file ... ok
[INFO] [stdout] test built_in::file_list::tests::test_empty_directory ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_traversal_dotdot_rejected ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_replaces_unique_match ... ok
[INFO] [stdout] test built_in::file_edit::tests::test_replaces_multiline_match ... ok
[INFO] [stdout] test built_in::file_list::tests::test_absolute_outside_rejected ... ok
[INFO] [stdout] test built_in::file_list::tests::test_format_listing_has_file_entries ... ok
[INFO] [stdout] test built_in::file_list::tests::test_format_listing_dirs_prefix_d ... ok
[INFO] [stdout] test built_in::file_list::tests::test_format_listing_empty ... ok
[INFO] [stdout] test built_in::file_list::tests::test_max_depth_limits_recursion ... ok
[INFO] [stdout] test built_in::file_list::tests::test_max_depth_clamped_at_hard_limit ... ok
[INFO] [stdout] test built_in::file_list::tests::test_lists_specific_subdir ... ok
[INFO] [stdout] test built_in::file_list::tests::test_sanitize_display_escapes_cr_and_tab ... ok
[INFO] [stdout] test built_in::file_list::tests::test_sanitize_display_escapes_newline ... ok
[INFO] [stdout] test built_in::file_list::tests::test_lists_workspace_root_by_default ... ok
[INFO] [stdout] test built_in::file_list::tests::test_non_recursive_does_not_descend ... ok
[INFO] [stdout] test built_in::file_list::tests::test_sanitize_display_replaces_other_control_chars ... ok
[INFO] [stdout] test built_in::file_list::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::file_list::tests::test_tool_definition_permission_tier_is_log_and_execute ... ok
[INFO] [stdout] test built_in::file_list::tests::test_recursive_listing ... ok
[INFO] [stdout] test built_in::file_read::tests::test_absolute_outside_rejected ... ok
[INFO] [stdout] test built_in::file_list::tests::test_listing_escapes_newline_in_filename ... ok
[INFO] [stdout] test built_in::file_list::tests::test_traversal_dotdot_rejected ... ok
[INFO] [stdout] test built_in::file_read::tests::test_missing_path_parameter ... ok
[INFO] [stdout] test built_in::file_read::tests::test_limit_zero_returns_nothing ... ok
[INFO] [stdout] test built_in::file_read::tests::test_nonexistent_file_returns_error ... ok
[INFO] [stdout] test built_in::file_read::tests::test_full_file_not_truncated ... ok
[INFO] [stdout] test built_in::file_read::tests::test_offset_skips_lines ... ok
[INFO] [stdout] test built_in::file_read::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::file_read::tests::test_limit_truncates_output ... ok
[INFO] [stdout] test built_in::file_list::tests::test_sanitize_display_passes_printable_unicode ... ok
[INFO] [stdout] test built_in::file_read::tests::test_tool_definition_schema_has_path ... ok
[INFO] [stdout] test built_in::file_read::tests::test_traversal_dotdot_rejected ... ok
[INFO] [stdout] test built_in::file_write::tests::test_absolute_outside_rejected ... ok
[INFO] [stdout] test built_in::file_list::tests::test_recursive_symlink_escape_not_followed ... ok
[INFO] [stdout] test built_in::file_read::tests::test_exact_limit_not_truncated ... ok
[INFO] [stdout] test built_in::file_read::tests::test_symlink_rejected_by_open_safely ... ok
[INFO] [stdout] test built_in::file_write::tests::test_bytes_written_reported ... ok
[INFO] [stdout] test built_in::file_write::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::file_write::tests::test_tool_definition_schema_requires_path_and_content ... ok
[INFO] [stdout] test built_in::file_write::tests::test_traversal_dotdot_rejected ... ok
[INFO] [stdout] test built_in::file_write::tests::test_missing_content_parameter ... ok
[INFO] [stdout] test built_in::file_write::tests::test_missing_path_parameter ... ok
[INFO] [stdout] test built_in::file_write::tests::test_creates_new_file ... ok
[INFO] [stdout] test built_in::file_write::tests::test_overwrites_existing_file ... ok
[INFO] [stdout] test built_in::file_read::tests::test_reads_file_content ... ok
[INFO] [stdout] test built_in::memory_search::tests::test_tool_definition_name_and_tier ... ok
[INFO] [stdout] test built_in::memory_search::tests::test_execute_limits_to_20 ... ok
[INFO] [stdout] test built_in::memory_store::tests::test_execute_returns_uuid ... ok
[INFO] [stdout] test built_in::memory_search::tests::test_execute_missing_query_param ... ok
[INFO] [stdout] test built_in::memory_store::tests::test_execute_empty_content_rejected ... ok
[INFO] [stdout] test built_in::memory_search::tests::test_execute_formats_results ... ok
[INFO] [stdout] test built_in::memory_store::tests::test_tool_definition_name_and_tier ... ok
[INFO] [stdout] test built_in::shell::tests::test_allowlist_blocks_unlisted_command ... ok
[INFO] [stdout] test built_in::shell::tests::test_default_config ... ok
[INFO] [stdout] test built_in::shell::tests::test_denylist_blocks_listed_command ... ok
[INFO] [stdout] test built_in::shell::tests::test_empty_command ... ok
[INFO] [stdout] test built_in::shell::tests::test_environment_filtering ... ok
[INFO] [stdout] test built_in::memory_store::tests::test_execute_stores_entry ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_and_and ... ok
[INFO] [stdout] test built_in::shell::tests::test_exit_code_zero_is_success ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_backtick ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_dollar_paren ... ok
[INFO] [stdout] test built_in::file_list::tests::test_entry_count_does_not_exceed_max_entries ... ok
[INFO] [stdout] test built_in::file_write::tests::test_creates_parent_directories ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_pipe ... ok
[INFO] [stdout] test built_in::shell::tests::test_denylist_overrides_allowlist ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_redirect_in ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_or_or ... ok
[INFO] [stdout] test built_in::shell::tests::test_exit_code_nonzero_is_failure ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_redirect_out ... ok
[INFO] [stdout] test built_in::shell::tests::test_binary_not_found ... ok
[INFO] [stdout] test built_in::shell::tests::test_allowlist_allows_listed_command ... ok
[INFO] [stdout] test built_in::shell::tests::test_metacharacter_semicolon ... ok
[INFO] [stdout] test built_in::shell::tests::test_missing_command_parameter ... ok
[INFO] [stdout] test built_in::shell::tests::test_tool_definition_has_command_in_schema ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_not_global_blocks_benchmarking ... ok
[INFO] [stdout] test built_in::shell::tests::test_whitespace_only_command ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_not_global_blocks_carrier_grade_nat ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_not_global_blocks_ietf_protocol_assignments ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_allows_public_ips ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_ipv4_mapped_rfc1918 ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_ipv6_link_local ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_ipv6_loopback ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_ipv6_ula ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_loopback_ipv4 ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_rfc1918 ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_link_local ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_parse_params_missing_url_fails ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_parse_params_url_only ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_ipv4_mapped_loopback ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_parse_params_with_max_chars ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_is_private_blocks_ipv4_mapped_imds ... ok
[INFO] [stdout] test built_in::shell::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_file_scheme ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_ftp_scheme ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_127_0_0_1 ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_redirect_hop_private_url_is_rejected ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_allows_public_ip ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_imds_169_254_169_254 ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_ipv6_mapped_loopback ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_ipv6_mapped_private_10 ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_ipv6_mapped_imds ... ok
[INFO] [stdout] test built_in::shell::tests::test_working_directory ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_ipv6_link_local ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_private_192_168_range ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_private_10_range ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_private_172_range ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_ssrf_blocks_localhost ... ok
[INFO] [stdout] test built_in::shell::tests::test_output_truncation ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_decodes_nbsp ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_collapses_whitespace ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_removes_script_block ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_removes_style_block ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_script_case_insensitive ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_tool_definition_url_is_required ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_truncate_exact_length_unchanged ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_removes_tags ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_tool_definition_max_chars_is_optional ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_truncate_multibyte_chars_counted_correctly ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_truncate_short_text_unchanged ... ok
[INFO] [stdout] test built_in::web_search::tests::test_format_results_numbered_correctly ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_empty_input ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_truncate_long_text_at_boundary ... ok
[INFO] [stdout] test built_in::web_search::tests::test_parse_brave_response_no_web_field ... ok
[INFO] [stdout] test built_in::web_search::tests::test_parse_brave_response_with_results ... ok
[INFO] [stdout] test built_in::web_search::tests::test_count_clamped_to_max ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_plain_text_passthrough ... ok
[INFO] [stdout] test built_in::web_search::tests::test_parse_brave_response_empty_results ... ok
[INFO] [stdout] test built_in::web_fetch::tests::test_strip_html_decodes_entities ... ok
[INFO] [stdout] test built_in::web_search::tests::test_parse_params_missing_query_fails ... ok
[INFO] [stdout] test built_in::web_search::tests::test_parse_params_with_count ... ok
[INFO] [stdout] test built_in::web_search::tests::test_parse_params_with_query_only ... ok
[INFO] [stdout] test built_in::web_search::tests::test_tool_definition_count_is_optional ... ok
[INFO] [stdout] test built_in::workspace::tests::test_normalize_multiple_parents ... ok
[INFO] [stdout] test built_in::web_search::tests::test_tool_definition_name_source_tier ... ok
[INFO] [stdout] test built_in::workspace::tests::test_normalize_removes_cur_dir ... ok
[INFO] [stdout] test built_in::workspace::tests::test_open_safely_accepts_regular_file ... ok
[INFO] [stdout] test built_in::workspace::tests::test_open_safely_fd_verification_passes_for_workspace_file ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_dotdot_in_middle_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_open_safely_rejects_symlink ... ok
[INFO] [stdout] test built_in::workspace::tests::test_normalize_resolves_parent ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_absolute_path_outside_workspace_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_absolute_path_inside_workspace_allowed ... ok
[INFO] [stdout] test built_in::web_search::tests::test_tool_definition_has_query_required ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_dotdot_traversal_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_simple_file ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_symlink_escape_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_null_byte_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_dotdot_traversal_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_absolute_outside_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_nonexistent_returns_error ... ok
[INFO] [stdout] test built_in::workspace::tests::test_read_subdir_file ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_null_byte_rejected ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_new_file_allowed ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_new_subdir_file_allowed ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_safely_rejects_symlink ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_safely_accepts_regular_path ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_automatic_transition_to_half_open_after_timeout ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_backoff_capped_at_max ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_consecutive_trips_reset_on_full_recovery ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_exponential_backoff_calculation ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_failed_recovery_half_open_to_open_with_increased_backoff ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_calls_rejected_in_open_state ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_full_lifecycle ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_initial_state_is_closed ... ok
[INFO] [stdout] test built_in::workspace::tests::test_write_via_symlinked_parent_rejected ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_metrics_snapshot ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_probe_not_allowed_in_closed_state ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_normal_operation_stays_closed ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_success_clears_failure_count ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_successful_recovery_half_open_to_closed ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_transition_to_open_after_threshold_errors ... ok
[INFO] [stdout] test mcp::manifest::tests::test_allowed_tool_call_succeeds ... ok
[INFO] [stdout] test mcp::manifest::tests::test_constraint_enforcement_max_recipients ... ok
[INFO] [stdout] test mcp::manifest::tests::test_constraint_enforcement_maximum ... ok
[INFO] [stdout] test mcp::manifest::tests::test_constraint_enforcement_max_size_bytes ... ok
[INFO] [stdout] test mcp::manifest::tests::test_blocked_tool_call_rejected ... ok
[INFO] [stdout] test mcp::manifest::tests::test_empty_allowed_tools_allows_all ... ok
[INFO] [stdout] test mcp::manifest::tests::test_glob_pattern_matching_blocked_params ... ok
[INFO] [stdout] test mcp::manifest::tests::test_load_from_file ... ok
[INFO] [stdout] test mcp::manifest::tests::test_minimal_manifest_defaults ... ok
[INFO] [stdout] test mcp::manifest::tests::test_filter_tool_list_removes_blocked_tools ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_failures_below_threshold_stay_closed ... ok
[INFO] [stdout] test mcp::manifest::tests::test_permission_tier_overrides ... ok
[INFO] [stdout] test mcp::manifest::tests::test_permission_tier_explicit_string ... ok
[INFO] [stdout] test mcp::manifest::tests::test_rate_limit_checking ... ok
[INFO] [stdout] test mcp::manifest::tests::test_parse_complete_gmail_manifest ... ok
[INFO] [stdout] test mcp::manifest::tests::test_schema_rewriting_applies_constraints ... ok
[INFO] [stdout] test mcp::manifest::tests::test_glob_pattern_no_false_positives ... ok
[INFO] [stdout] test mcp::manifest::tests::test_rate_limit_parsing ... ok
[INFO] [stdout] test mcp::proxy::tests::test_audit_events_logged ... ok
[INFO] [stdout] test mcp::manifest::tests::test_schema_rewriting_strips_blocked_params ... ok
[INFO] [stdout] test mcp::proxy::tests::test_add_remove_server ... ok
[INFO] [stdout] test mcp::proxy::tests::test_blocked_param_rejected ... ok
[INFO] [stdout] test mcp::proxy::tests::test_call_tool_on_registered_server ... ok
[INFO] [stdout] test mcp::proxy::tests::test_blocked_tool_rejected ... ok
[INFO] [stdout] test mcp::proxy::tests::test_connection_failure_transitions_to_disconnected ... ok
[INFO] [stdout] test mcp::proxy::tests::test_call_tool_routes_to_correct_server ... ok
[INFO] [stdout] test mcp::manifest::tests::test_unlisted_tool_rejected ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_concurrent_access_with_mutex ... ok
[INFO] [stdout] test mcp::proxy::tests::test_call_nonexistent_tool ... ok
[INFO] [stdout] test mcp::proxy::tests::test_connection_state_transitions ... ok
[INFO] [stdout] test mcp::proxy::tests::test_egress_filter_blocks_tool_call ... ok
[INFO] [stdout] test mcp::proxy::tests::test_hot_reload_manifest ... ok
[INFO] [stdout] test mcp::proxy::tests::test_duplicate_server_add_fails ... ok
[INFO] [stdout] test mcp::proxy::tests::test_full_pipeline_success ... ok
[INFO] [stdout] test mcp::proxy::tests::test_circuit_breaker_integration ... ok
[INFO] [stdout] test mcp::proxy::tests::test_parse_tools_list_response_error ... ok
[INFO] [stdout] test mcp::proxy::tests::test_parse_tools_list_response_success ... ok
[INFO] [stdout] test mcp::proxy::tests::test_non_active_servers_excluded_from_listing ... ok
[INFO] [stdout] test mcp::proxy::tests::test_mcp_server_error_response ... ok
[INFO] [stdout] test mcp::proxy::tests::test_list_tools_multiple_servers ... ok
[INFO] [stdout] test mcp::proxy::tests::test_rate_limit_enforcement ... ok
[INFO] [stdout] test mcp::proxy::tests::test_remove_nonexistent_server_fails ... ok
[INFO] [stdout] test mcp::proxy::tests::test_summarize_params ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_apply_max_items_constraint ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_apply_max_length_constraint ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_apply_maximum_constraint ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_apply_multiple_constraints_to_one_property ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_apply_pattern_constraint ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_constraint_on_missing_property_is_noop ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_empty_schema_remains_valid ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_exact_path_match_only ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_glob_deeply_nested ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_glob_pattern_any_depth ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_multiple_glob_patterns ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_non_object_schema_passthrough ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_required_updated_on_strip ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_strip_from_nested_schema ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_real_world_calendar_create_schema ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_schema_with_no_properties_key ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_strip_and_constrain_combined ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_strip_multiple_properties ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_strip_nonexistent_property ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_strip_single_property ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_close_and_is_connected ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_connection_timeout ... ok
[INFO] [stdout] test mcp::schema_rewrite::tests::test_real_world_gmail_send_schema ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_empty_response_body_accepted ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_auth_headers_included ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_parse_single_sse_event ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_parse_sse_empty_input ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_http_404_permanent_error ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_parse_sse_with_comments ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_recv_empty_buffer_returns_error ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_http_500_retryable_error ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_parse_multiple_sse_events ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_parse_sse_no_data_field_skipped ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_parse_sse_multiline_data ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_last_event_id_reconnection ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_request_body_is_valid_json_rpc ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_send_recv_sse_response ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_send_recv_json_response ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_tls_config_default_rejects_invalid_certs ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_complex_json_rpc_round_trip ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_sse_multiple_events_buffered ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_close_sigterm_then_sigkill ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_close_idempotent ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_double_connect_error ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_env_and_working_dir ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_multiple_messages_round_trip ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_not_connected_before_connect ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_notification_round_trip ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_malformed_output_from_child ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_operations_without_connect ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_error_response_round_trip ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_tls_config_accepts_invalid_certs_when_enabled ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_operations_after_close ... ok
[INFO] [stdout] test mcp::transport_http::tests::test_session_id_tracking ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_send_recv_round_trip_with_cat ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_spawn_failure ... ok
[INFO] [stdout] test registry::tests::test_concurrent_reads ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_shared_transport_concurrent_access ... ok
[INFO] [stdout] test registry::tests::test_concurrent_reads_and_executions ... ok
[INFO] [stdout] test registry::tests::test_execute_built_in_handler_error_propagates ... ok
[INFO] [stdout] test registry::tests::test_execute_built_in_tool ... ok
[INFO] [stdout] test registry::tests::test_execute_mcp_tool ... ok
[INFO] [stdout] test registry::tests::test_execute_mcp_tool_without_executor ... ok
[INFO] [stdout] test registry::tests::test_execute_unknown_tool ... ok
[INFO] [stdout] test registry::tests::test_execute_wasm_tool_returns_stub_error ... ok
[INFO] [stdout] test registry::tests::test_list_tools_empty ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_large_message_round_trip ... ok
[INFO] [stdout] test registry::tests::test_list_tools_multiple_sources ... ok
[INFO] [stdout] test registry::tests::test_concurrent_register_and_list ... ok
[INFO] [stdout] test registry::tests::test_register_built_in_rejects_non_built_in ... ok
[INFO] [stdout] test registry::tests::test_register_overwrites_existing ... ok
[INFO] [stdout] test registry::tests::test_register_via_trait ... ok
[INFO] [stdout] test registry::tests::test_unregister_existing_tool ... ok
[INFO] [stdout] test registry::tests::test_unregister_removes_handler ... ok
[INFO] [stdout] test registry::tests::test_register_built_in_with_handler ... ok
[INFO] [stdout] test registry::tests::test_unregister_unknown_tool ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_recv_after_child_exits ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_stderr_captured ... ok
[INFO] [stdout] test mcp::transport_stdio::tests::test_send_after_child_exits ... ok
[INFO] [stdout] test built_in::shell::tests::test_timeout ... ok
[INFO] [stdout] test mcp::circuit_breaker::tests::test_failures_outside_error_window_ignored ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 306 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.34s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/steward_types-9ae2c57ccd26ad41)
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test config::tests::test_from_markdown_no_owner_section ... ok
[INFO] [stdout] test config::tests::test_from_markdown_preserves_existing_fields ... ok
[INFO] [stdout] test config::tests::test_from_markdown_parses_known_agents ... ok
[INFO] [stdout] test config::tests::test_from_markdown_known_agent_no_channel_defaults_none ... ok
[INFO] [stdout] test config_loader::tests::test_error_for_missing_permissions_file ... ok
[INFO] [stdout] test config_loader::tests::test_error_for_invalid_yaml ... ok
[INFO] [stdout] test config_loader::tests::test_parse_guardrails_yaml ... ok
[INFO] [stdout] test config::tests::test_from_markdown_parses_owner ... ok
[INFO] [stdout] test config_loader::tests::test_parse_identity_from_markdown_string ... ok
[INFO] [stdout] test config_loader::tests::test_parse_identity_markdown ... ok
[INFO] [stdout] test config_loader::tests::test_parse_identity_missing_title ... ok
[INFO] [stdout] test config_loader::tests::test_parse_permissions_yaml ... ok
[INFO] [stdout] test config_loader::tests::test_parse_mcp_manifest ... ok
[INFO] [stdout] test config_loader::tests::test_valid_time_formats ... ok
[INFO] [stdout] test config_loader::tests::test_valid_rate_limit_formats ... ok
[INFO] [stdout] test config_loader::tests::test_config_loader_load_and_validate ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_duplicate_actions ... ok
[INFO] [stdout] test config_loader::tests::test_error_for_missing_required_field ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_invalid_rate_limit_period ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_invalid_rate_limit_format ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_invalid_regex ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_zero_circuit_breaker_threshold ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_zero_global_rate_limit ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_zero_rate_limit ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_invalid_time_format ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_duplicate_mcp_tool_names ... ok
[INFO] [stdout] test config_loader::tests::test_no_mcp_manifests_dir_is_ok ... ok
[INFO] [stdout] test config_loader::tests::test_validation_catches_invalid_transport ... ok
[INFO] [stdout] test config_loader::tests::test_permissions_with_time_of_day ... ok
[INFO] [stdout] test config_loader::tests::test_hot_reload_detects_file_changes ... ok
[INFO] [stdout] test config_loader::tests::test_default_configs_parse_successfully ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests steward_channels
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test crates/steward-channels/src/whatsapp.rs - whatsapp::WhatsAppAdapter::webhook_router (line 152) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests steward_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests steward_memory
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests steward_security
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests steward_tools
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests steward_types
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "526fa2c9e37396348e050ddedbaa6639876a768ba99732fdff133d838b517765", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "526fa2c9e37396348e050ddedbaa6639876a768ba99732fdff133d838b517765", kill_on_drop: false }`
[INFO] [stdout] 526fa2c9e37396348e050ddedbaa6639876a768ba99732fdff133d838b517765
