[INFO] cloning repository https://github.com/hkd987/remix-agent-runtime [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hkd987/remix-agent-runtime" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhkd987%2Fremix-agent-runtime", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhkd987%2Fremix-agent-runtime'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7775c75b816a224d04d789fd703aeffd26561a42 [INFO] testing hkd987/remix-agent-runtime against 1.99.0-beta.8 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhkd987%2Fremix-agent-runtime" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/hkd987/remix-agent-runtime [INFO] finished tweaking git repo https://github.com/hkd987/remix-agent-runtime [INFO] tweaked toml for git repo https://github.com/hkd987/remix-agent-runtime written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hkd987/remix-agent-runtime on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hkd987/remix-agent-runtime 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/hkd987/remix-credentials` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bitflags v2.10.0 [INFO] [stderr] Downloaded env_home v0.1.0 [INFO] [stderr] Downloaded which v7.0.3 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.108 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.108 [INFO] [stderr] Downloaded tokio-test v0.4.5 [INFO] [stderr] Downloaded zeroize_derive v1.4.3 [INFO] [stderr] Downloaded crc v3.4.0 [INFO] [stderr] Downloaded ref-cast-impl v1.0.25 [INFO] [stderr] Downloaded windows-numerics v0.3.1 [INFO] [stderr] Downloaded tree-sitter-language v0.1.7 [INFO] [stderr] Downloaded ref-cast v1.0.25 [INFO] [stderr] Downloaded whoami v1.6.1 [INFO] [stderr] Downloaded schemars_derive v1.2.1 [INFO] [stderr] Downloaded dyn-clone v1.0.20 [INFO] [stderr] Downloaded windows-threading v0.2.1 [INFO] [stderr] Downloaded windows-collections v0.3.2 [INFO] [stderr] Downloaded pastey v0.2.1 [INFO] [stderr] Downloaded ghash v0.5.1 [INFO] [stderr] Downloaded quote v1.0.44 [INFO] [stderr] Downloaded zmij v1.0.19 [INFO] [stderr] Downloaded tokio-macros v2.6.0 [INFO] [stderr] Downloaded rmcp-macros v0.14.0 [INFO] [stderr] Downloaded windows-future v0.3.2 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.58 [INFO] [stderr] Downloaded universal-hash v0.5.1 [INFO] [stderr] Downloaded opaque-debug v0.3.1 [INFO] [stderr] Downloaded aead v0.5.2 [INFO] [stderr] Downloaded normalize-line-endings v0.3.0 [INFO] [stderr] Downloaded float-cmp v0.10.0 [INFO] [stderr] Downloaded assert-json-diff v2.0.2 [INFO] [stderr] Downloaded unicode-ident v1.0.22 [INFO] [stderr] Downloaded wasm-bindgen v0.2.108 [INFO] [stderr] Downloaded streaming-iterator v0.1.9 [INFO] [stderr] Downloaded tempfile v3.24.0 [INFO] [stderr] Downloaded serde_derive_internals v0.29.1 [INFO] [stderr] Downloaded polyval v0.6.2 [INFO] [stderr] Downloaded js-sys v0.3.85 [INFO] [stderr] Downloaded getrandom v0.4.1 [INFO] [stderr] Downloaded wasm-streams v0.4.2 [INFO] [stderr] Downloaded anstyle v1.0.13 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.108 [INFO] [stderr] Downloaded anyhow v1.0.101 [INFO] [stderr] Downloaded socket2 v0.6.2 [INFO] [stderr] Downloaded ryu v1.0.22 [INFO] [stderr] Downloaded fluent-uri v0.1.4 [INFO] [stderr] Downloaded phf_shared v0.13.1 [INFO] [stderr] Downloaded siphasher v1.0.2 [INFO] [stderr] Downloaded markup5ever v0.35.0 [INFO] [stderr] Downloaded string_cache_codegen v0.5.4 [INFO] [stderr] Downloaded uuid v1.21.0 [INFO] [stderr] Downloaded similar v2.7.0 [INFO] [stderr] Downloaded phf v0.13.1 [INFO] [stderr] Downloaded phf_generator v0.13.1 [INFO] [stderr] Downloaded web_atoms v0.1.3 [INFO] [stderr] Downloaded precomputed-hash v0.1.1 [INFO] [stderr] Downloaded utf-8 v0.7.6 [INFO] [stderr] Downloaded mac v0.1.1 [INFO] [stderr] Downloaded futf v0.1.5 [INFO] [stderr] Downloaded match_token v0.35.0 [INFO] [stderr] Downloaded bumpalo v3.19.1 [INFO] [stderr] Downloaded schemars v1.2.1 [INFO] [stderr] Downloaded mockito v1.7.2 [INFO] [stderr] Downloaded xml5ever v0.35.0 [INFO] [stderr] Downloaded clap_lex v0.7.7 [INFO] [stderr] Downloaded anstream v0.6.21 [INFO] [stderr] Downloaded wait-timeout v0.2.1 [INFO] [stderr] Downloaded cc v1.2.55 [INFO] [stderr] Downloaded zerocopy-derive v0.8.39 [INFO] [stderr] Downloaded lsp-types v0.97.0 [INFO] [stderr] Downloaded landlock v0.4.4 [INFO] [stderr] Downloaded phf_macros v0.13.1 [INFO] [stderr] Downloaded string_cache v0.8.9 [INFO] [stderr] Downloaded tendril v0.4.3 [INFO] [stderr] Downloaded axum-core v0.5.6 [INFO] [stderr] Downloaded assert_cmd v2.1.2 [INFO] [stderr] Downloaded clap v4.5.57 [INFO] [stderr] Downloaded tree-sitter-javascript v0.23.1 [INFO] [stderr] Downloaded aes-gcm v0.10.3 [INFO] [stderr] Downloaded html5ever v0.35.0 [INFO] [stderr] Downloaded tree-sitter-python v0.23.6 [INFO] [stderr] Downloaded tree-sitter v0.24.7 [INFO] [stderr] Downloaded process-wrap v9.0.1 [INFO] [stderr] Downloaded axum v0.8.8 [INFO] [stderr] Downloaded chrono v0.4.43 [INFO] [stderr] Downloaded rmcp v0.14.0 [INFO] [stderr] Downloaded clap_builder v4.5.57 [INFO] [stderr] Downloaded zerocopy v0.8.39 [INFO] [stderr] Downloaded rustix v1.1.3 [INFO] [stderr] Downloaded syn v2.0.114 [INFO] [stderr] Downloaded htmd v0.5.0 [INFO] [stderr] Downloaded markup5ever_rcdom v0.35.0+unofficial [INFO] [stderr] Downloaded regex-syntax v0.8.9 [INFO] [stderr] Downloaded tree-sitter-rust v0.23.3 [INFO] [stderr] Downloaded nix v0.30.1 [INFO] [stderr] Downloaded rustls v0.23.36 [INFO] [stderr] Downloaded winsafe v0.0.19 [INFO] [stderr] Downloaded web-sys v0.3.85 [INFO] [stderr] Downloaded libc v0.2.180 [INFO] [stderr] Downloaded tree-sitter-typescript v0.23.2 [INFO] [stderr] Downloaded tokio v1.49.0 [INFO] [stderr] Downloaded windows v0.62.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda [INFO] running `Command { std: "docker" "start" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling mac v0.1.1 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling futf v0.1.5 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling tendril v0.4.3 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling opaque-debug v0.3.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling web_atoms v0.1.3 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling rmcp v0.14.0 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling fluent-uri v0.1.4 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling clap_builder v4.5.57 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling which v7.0.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [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 tokio-macros v2.6.0 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling match_token v0.35.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling landlock v0.4.4 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling rmcp-macros v0.14.0 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling clap v4.5.57 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling remix-credentials v0.1.1 (https://github.com/hkd987/remix-credentials#3587d8a3) [INFO] [stderr] Compiling lsp-types v0.97.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling markup5ever v0.35.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling xml5ever v0.35.0 [INFO] [stderr] Compiling html5ever v0.35.0 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling markup5ever_rcdom v0.35.0+unofficial [INFO] [stderr] Compiling htmd v0.5.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [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 process-wrap v9.0.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling remix-agent-runtime v0.4.11 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 32s [INFO] running `Command { std: "docker" "inspect" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling which v7.0.3 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling process-wrap v9.0.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling rmcp v0.14.0 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling mockito v1.7.2 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling remix-agent-runtime v0.4.11 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 18s [INFO] running `Command { std: "docker" "inspect" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/remix_agent_runtime-670270ab39d00787) [INFO] [stdout] [INFO] [stdout] running 1617 tests [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_with_empty_messages ... ok [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_with_tool_result ... ok [INFO] [stdout] test agent::compaction::tests::test_compute_compaction_split_preserve_zero ... ok [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_with_error_tool_result ... ok [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_with_text_messages ... ok [INFO] [stdout] test agent::compaction::tests::test_compaction_result_clone ... ok [INFO] [stdout] test agent::compaction::tests::test_create_summary_message_with_empty_summary ... ok [INFO] [stdout] test agent::compaction::tests::test_create_summary_message_wraps_in_summary_tags ... ok [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_with_mixed_content_blocks ... ok [INFO] [stdout] test agent::compaction::tests::test_compute_compaction_split_single_message_no_preserve ... ok [INFO] [stdout] test agent::compaction::tests::test_compute_compaction_split_messages_equal_preserve ... ok [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_with_tool_use ... ok [INFO] [stdout] test agent::compaction::tests::test_compute_compaction_split_zero_messages ... ok [INFO] [stdout] test agent::compaction::tests::test_should_compact_at_exact_threshold ... ok [INFO] [stdout] test agent::compaction::tests::test_should_compact_just_below_threshold ... ok [INFO] [stdout] test agent::compaction::tests::test_should_compact_returns_false_when_disabled ... ok [INFO] [stdout] test agent::compaction::tests::test_should_compact_returns_false_when_below_threshold ... ok [INFO] [stdout] test agent::compaction::tests::test_compute_compaction_split_messages_less_than_preserve ... ok [INFO] [stdout] test agent::compaction::tests::test_compute_compaction_split_normal ... ok [INFO] [stdout] test agent::compaction::tests::test_should_compact_returns_true_when_above_threshold ... ok [INFO] [stdout] test agent::compaction::tests::test_thinking_truncation_with_multibyte_utf8 ... ok [INFO] [stdout] test agent::compaction::tests::test_tool_result_truncation_with_multibyte_utf8 ... ok [INFO] [stdout] test agent::compaction::tests::test_tool_result_truncation_short_content_unchanged ... ok [INFO] [stdout] test agent::compaction_prompt::tests::test_compaction_system_prompt_contains_key_instructions ... ok [INFO] [stdout] test agent::compaction_prompt::tests::test_compaction_system_prompt_is_not_empty ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_compaction_stage_ordering ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_compress_tool_outputs_handles_blocks_variant ... ok [INFO] [stdout] test agent::compaction::tests::test_should_compact_with_zero_tokens ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_compress_tool_outputs_truncates_long_results ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_compress_tool_outputs_returns_count ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_determine_stage_at_exact_boundary ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_determine_stage_returns_conversation_summary ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_compress_tool_outputs_skips_non_tool_result_blocks ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_compress_tool_outputs_leaves_short_results ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_is_low_value_exchange_with_error ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_merge_observations_all_preserved ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_determine_stage_returns_none_below_all_thresholds ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_determine_stage_returns_observation_merging ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_determine_stage_returns_low_value_pruning ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_determine_stage_returns_tool_output_compression ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_is_low_value_exchange_with_valuable_blocks ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_merge_observations_combines_tool_pairs ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_merge_observations_handles_non_tool_messages ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_merge_observations_preserves_recent ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_prune_low_value_keeps_errors ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_prune_low_value_removes_trivial_exchanges ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_prune_low_value_with_blocks_content ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_stage_thresholds_default ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_stage_thresholds_serde_roundtrip ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_prune_low_value_keeps_substantial_results ... ok [INFO] [stdout] test agent::compaction::tests::test_build_compaction_request_truncates_long_tool_results ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_summarize_tool_pair_formats_correctly ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_prune_low_value_preserves_recent ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_merge_observations_with_empty_messages ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_summarize_tool_pair_with_error_result ... ok [INFO] [stdout] test agent::interactive::tests::test_content_block_stop_produces_no_deltas ... ok [INFO] [stdout] test agent::compaction_stages::tests::test_summarize_tool_pair_truncates_long_result ... ok [INFO] [stdout] test agent::interactive::tests::test_message_stop_produces_no_deltas ... ok [INFO] [stdout] test agent::interactive::tests::test_model_accessor ... ok [INFO] [stdout] test agent::interactive::tests::test_multiple_text_blocks ... ok [INFO] [stdout] test agent::interactive::tests::test_delta_for_nonexistent_block_index_is_noop ... ok [INFO] [stdout] test agent::interactive::tests::test_new_assembler_is_empty ... ok [INFO] [stdout] test agent::interactive::tests::test_partial_finish_empty_stream ... ok [INFO] [stdout] test agent::interactive::tests::test_partial_finish_defaults_to_end_turn ... ok [INFO] [stdout] test agent::interactive::tests::test_ping_produces_no_deltas ... ok [INFO] [stdout] test agent::interactive::tests::test_partial_finish_with_incomplete_tool_use ... ok [INFO] [stdout] test agent::interactive::tests::test_stop_reason_stop_sequence ... ok [INFO] [stdout] test agent::interactive::tests::test_text_block_start_with_initial_text ... ok [INFO] [stdout] test agent::interactive::tests::test_thinking_block_assembly ... ok [INFO] [stdout] test agent::interactive::tests::test_thinking_block_start_with_initial_text ... ok [INFO] [stdout] test agent::interactive::tests::test_usage_none_when_no_message_start_usage ... ok [INFO] [stdout] test agent::interactive::tests::test_usage_tracked_from_message_start_and_delta ... ok [INFO] [stdout] test agent::interactive::tests::test_usage_with_cache_in_final_response ... ok [INFO] [stdout] test agent::invariants::tests::alternation_check_flags_consecutive_user_messages ... ok [INFO] [stdout] test agent::invariants::tests::alternation_check_passes_on_alternating_conversation ... ok [INFO] [stdout] test agent::interactive::tests::test_error_event_produces_no_deltas ... ok [INFO] [stdout] test agent::interactive::tests::test_stop_reason_tool_use ... ok [INFO] [stdout] test agent::invariants::tests::consecutive_user_messages_are_not_fatal ... ok [INFO] [stdout] test agent::invariants::tests::empty_content_is_rejected ... ok [INFO] [stdout] test agent::invariants::tests::dangling_tool_result_is_rejected ... ok [INFO] [stdout] test agent::interactive::tests::test_stop_reason_max_tokens ... ok [INFO] [stdout] test agent::interactive::tests::test_text_block_assembly ... ok [INFO] [stdout] test agent::invariants::tests::orphaned_tool_use_is_rejected ... ok [INFO] [stdout] test agent::interactive::tests::test_stop_reason_end_turn ... ok [INFO] [stdout] test agent::invariants::tests::paired_tool_use_and_result_is_valid ... ok [INFO] [stdout] test agent::invariants::tests::simple_alternating_conversation_is_valid ... ok [INFO] [stdout] test agent::loop_detection::tests::test_config_defaults ... ok [INFO] [stdout] test agent::invariants::tests::partially_answered_tool_use_is_rejected ... ok [INFO] [stdout] test agent::invariants::tests::thinking_blocks_do_not_affect_validation ... ok [INFO] [stdout] test agent::invariants::tests::tool_use_as_last_message_is_rejected ... ok [INFO] [stdout] test agent::interactive::tests::test_tool_use_block_assembly ... ok [INFO] [stdout] test agent::interactive::tests::test_message_start_sets_id_and_model ... ok [INFO] [stdout] test agent::interactive::tests::test_all_delta_types_emitted_in_full_stream ... ok [INFO] [stdout] test agent::interactive::tests::test_finish_without_stop_reason_returns_error ... ok [INFO] [stdout] test agent::interactive::tests::test_default_matches_new ... ok [INFO] [stdout] test agent::interactive::tests::test_interleaved_text_and_tool_use ... ok [INFO] [stdout] test agent::interactive::tests::test_message_start_with_cache_tokens ... ok [INFO] [stdout] test agent::interactive::tests::test_cost_passed_through_in_usage_delta ... ok [INFO] [stdout] test agent::loop_detection::tests::test_different_inputs_not_counted_together ... ok [INFO] [stdout] test agent::invariants::tests::alternation_check_flags_consecutive_assistant_messages ... ok [INFO] [stdout] test agent::loop_detection::tests::test_edit_file_repeated_same_path_detected ... ok [INFO] [stdout] test agent::invariants::tests::empty_conversation_is_valid ... ok [INFO] [stdout] test agent::loop_detection::tests::test_custom_message ... ok [INFO] [stdout] test agent::loop_detection::tests::test_no_loop_with_empty_steps ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_all_success ... ok [INFO] [stdout] test agent::loop_detection::tests::test_detects_loop_with_repeated_calls ... ok [INFO] [stdout] test agent::loop_detection::tests::test_no_loop_with_varied_calls ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_broken_by_write_file ... ok [INFO] [stdout] test agent::loop_detection::tests::test_canonical_hash_key_order_independence ... ok [INFO] [stdout] test agent::loop_detection::tests::test_is_write_tool ... ok [INFO] [stdout] test agent::loop_detection::tests::test_no_loop_below_threshold ... ok [INFO] [stdout] test agent::loop_detection::tests::test_canonical_hash_nested_objects ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_custom_message ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_broken_by_edit_file ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_detected ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_no_steps ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_mixed_success_failure ... ok [INFO] [stdout] test agent::loop_detection::tests::test_window_size_limits_lookback ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_disabled_with_zero ... ok [INFO] [stdout] test agent::loop_detection::tests::test_semantic_loop_respects_window ... ok [INFO] [stdout] test agent::loop_detection::tests::test_zero_max_repeats_disables_detection ... ok [INFO] [stdout] test agent::loop_impl::tests::test_budget_warning_at_100_percent ... ok [INFO] [stdout] test agent::loop_impl::tests::test_action_reminder_fires_on_interval ... ok [INFO] [stdout] test agent::loop_impl::tests::test_build_action_reminder_no_files_written ... ok [INFO] [stdout] test agent::loop_impl::tests::test_build_action_reminder_interval_one ... ok [INFO] [stdout] test agent::loop_impl::tests::test_budget_warning_not_configured ... ok [INFO] [stdout] test agent::loop_impl::tests::test_action_reminder_disabled_by_default ... ok [INFO] [stdout] test agent::loop_impl::tests::test_build_action_reminder_with_files_written ... ok [INFO] [stdout] test agent::loop_impl::tests::test_event_bus_emits_thinking_events ... ok [INFO] [stdout] test agent::loop_impl::tests::test_budget_warning_fires_at_threshold ... ok [INFO] [stdout] test agent::loop_impl::tests::test_budget_warning_fires_only_once ... ok [INFO] [stdout] test agent::loop_impl::tests::test_event_bus_emits_completion_on_end_turn ... ok [INFO] [stdout] test agent::loop_impl::tests::test_build_action_reminder_interval_zero ... ok [INFO] [stdout] test agent::loop_impl::tests::test_build_action_reminder_none_when_disabled ... ok [INFO] [stdout] test agent::loop_impl::tests::test_goal_check_disabled_terminates_immediately ... ok [INFO] [stdout] test agent::loop_impl::tests::test_event_bus_emits_tool_events ... ok [INFO] [stdout] test agent::loop_impl::tests::test_goal_check_skips_when_no_tool_work ... ok [INFO] [stdout] test agent::loop_impl::tests::test_into_tools_returns_tool_executor ... ok [INFO] [stdout] test agent::loop_impl::tests::test_execute_tools_handles_errors ... ok [INFO] [stdout] test agent::loop_impl::tests::test_immediate_completion ... ok [INFO] [stdout] test agent::loop_impl::tests::test_is_read_only_tool_reads_the_declaration ... ok [INFO] [stdout] test agent::loop_impl::tests::test_max_iterations_reached ... ok [INFO] [stdout] test agent::loop_impl::tests::test_execute_tools_preserves_order_mixed ... ok [INFO] [stdout] test agent::loop_impl::tests::test_execute_tools_empty_content ... ok [INFO] [stdout] test agent::loop_impl::tests::test_execute_tools_single_tool ... ok [INFO] [stdout] test agent::loop_impl::tests::test_goal_check_fires_once_before_termination ... ok [INFO] [stdout] test agent::loop_impl::tests::test_nudge_disabled_terminates_immediately ... ok [INFO] [stdout] test agent::loop_impl::tests::test_nudge_exhausted_terminates ... ok [INFO] [stdout] test agent::loop_impl::tests::test_nudge_on_text_only_continues_loop ... ok [INFO] [stdout] test agent::loop_impl::tests::test_plan_mode_advertised_set_matches_permitted_set ... ok [INFO] [stdout] test agent::loop_impl::tests::test_multiple_tool_calls_in_one_response ... ok [INFO] [stdout] test agent::loop_impl::tests::test_llm_error_propagates ... ok [INFO] [stdout] test agent::loop_impl::tests::test_success_path_with_tool_use_then_end_turn ... ok [INFO] [stdout] test agent::loop_impl::tests::test_token_usage_none_when_no_usage_reported ... ok [INFO] [stdout] test agent::loop_impl::tests::test_token_usage_accumulated_across_iterations ... ok [INFO] [stdout] test agent::loop_impl::tests::test_tool_use_stop_reason_with_empty_content ... ok [INFO] [stdout] test agent::loop_impl::tests::test_tool_result_with_json_output ... ok [INFO] [stdout] test agent::loop_impl::tests::test_tool_use_stop_reason_without_tool_use_blocks ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_boundary_at_planning_threshold ... ok [INFO] [stdout] test agent::loop_impl::tests::test_skill_prompt_injection ... ok [INFO] [stdout] test agent::loop_impl::tests::test_system_prompt_with_credentials ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_config_defaults ... ok [INFO] [stdout] test agent::loop_impl::tests::test_tool_error_recovery ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_compute_budget_returns_correct_tokens ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_boundary_at_verification_threshold ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_validate_config_invalid_inverted_thresholds ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_validate_config_valid ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_custom_thresholds ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_verification_phase_late_iterations ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_execution_phase_middle_iterations ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_planning_phase_early_iterations ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_zero_max_iterations_defaults_to_planning ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_inverted_thresholds_skips_execution_phase ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_single_iteration_run ... ok [INFO] [stdout] test agent::reasoning_stages::tests::test_validate_config_invalid_equal_thresholds ... ok [INFO] [stdout] test agent::reminders::tests::test_check_every_n_fires_on_multiples ... ok [INFO] [stdout] test agent::reminders::tests::test_check_before_tools_fires_on_match ... ok [INFO] [stdout] test agent::reminders::tests::test_check_tools_returns_nothing_for_unmatched_tools ... ok [INFO] [stdout] test agent::reminders::tests::test_every_n_zero_never_fires ... ok [INFO] [stdout] test agent::reminders::tests::test_from_configs_both_triggers ... ok [INFO] [stdout] test agent::reminders::tests::test_from_configs_every_n_iterations ... ok [INFO] [stdout] test agent::reminders::tests::test_from_configs_empty ... ok [INFO] [stdout] test agent::self_critique::tests::test_build_critique_prompt_includes_task_context ... ok [INFO] [stdout] test agent::reminders::tests::test_is_empty ... ok [INFO] [stdout] test agent::reminders::tests::test_check_formats_with_prefix ... ok [INFO] [stdout] test agent::reminders::tests::test_from_configs_before_tools ... ok [INFO] [stdout] test agent::reminders::tests::test_check_returns_multiple_reminders ... ok [INFO] [stdout] test agent::reminders::tests::test_check_before_tools_no_match ... ok [INFO] [stdout] test agent::reminders::tests::test_check_tools_ignores_interval_reminders ... ok [INFO] [stdout] test agent::reminders::tests::test_check_every_n_does_not_fire_off_cycle ... ok [INFO] [stdout] test agent::self_critique::tests::test_parse_critique_response_no_suggestions ... ok [INFO] [stdout] test agent::self_critique::tests::test_parse_critique_response_with_suggestions ... ok [INFO] [stdout] test agent::self_critique::tests::test_config_serde_roundtrip ... ok [INFO] [stdout] test agent::self_critique::tests::test_should_critique_all_tools_when_no_triggers ... ok [INFO] [stdout] test agent::self_critique::tests::test_should_critique_matching_trigger_tool ... ok [INFO] [stdout] test agent::self_critique::tests::test_should_critique_no_tool_use ... ok [INFO] [stdout] test agent::self_critique::tests::test_build_critique_prompt_includes_text_blocks ... ok [INFO] [stdout] test agent::self_critique::tests::test_build_critique_prompt_includes_tool_details ... ok [INFO] [stdout] test agent::reminders::tests::test_reminder_config_serde_roundtrip ... ok [INFO] [stdout] test agent::state::tests::test_accumulate_usage_with_some ... ok [INFO] [stdout] test agent::self_critique::tests::test_should_critique_disabled ... ok [INFO] [stdout] test agent::state::tests::test_accumulate_usage_with_none ... ok [INFO] [stdout] test agent::state::tests::test_compact_no_adjustment_when_no_tool_results_at_boundary ... ok [INFO] [stdout] test agent::state::tests::test_compact_noop_does_not_reset_effective_tokens ... ok [INFO] [stdout] test agent::state::tests::test_add_assistant_message ... ok [INFO] [stdout] test agent::self_critique::tests::test_should_critique_non_matching_trigger_tool ... ok [INFO] [stdout] test agent::state::tests::test_add_tool_results ... ok [INFO] [stdout] test agent::state::tests::test_compact_noop_when_few_messages ... ok [INFO] [stdout] test agent::state::tests::test_compact_replaces_old_messages_with_summary ... ok [INFO] [stdout] test agent::state::tests::test_effective_input_tokens_resets_after_compact ... ok [INFO] [stdout] test agent::state::tests::test_effective_input_tokens_starts_at_zero ... ok [INFO] [stdout] test agent::state::tests::test_effective_input_tokens_tracks_latest_prompt_size ... ok [INFO] [stdout] test agent::self_critique::tests::test_default_config_disabled ... ok [INFO] [stdout] test agent::self_critique::tests::test_critique_system_prompt_not_empty ... ok [INFO] [stdout] test agent::self_critique::tests::test_parse_critique_response_approved ... ok [INFO] [stdout] test agent::self_critique::tests::test_parse_critique_response_malformed_defaults_approved ... ok [INFO] [stdout] test agent::self_critique::tests::test_parse_critique_response_rejected ... ok [INFO] [stdout] test agent::state::tests::test_from_snapshot_detects_written_files ... ok [INFO] [stdout] test agent::state::tests::test_effective_tokens_independent_from_total_after_compaction ... ok [INFO] [stdout] test agent::state::tests::test_compact_preserves_tool_use_result_pairing ... ok [INFO] [stdout] test agent::state::tests::test_has_written_files_defaults_to_false ... ok [INFO] [stdout] test agent::state::tests::test_has_written_files_not_set_on_other_tools ... ok [INFO] [stdout] test agent::state::tests::test_has_written_files_set_on_edit_file ... ok [INFO] [stdout] test agent::state::tests::test_effective_input_tokens_includes_cached_prefix ... ok [INFO] [stdout] test agent::state::tests::test_from_snapshot_restores_state ... ok [INFO] [stdout] test agent::state::tests::test_from_snapshot_effective_tokens_starts_at_zero ... ok [INFO] [stdout] test agent::state::tests::test_from_snapshot_empty ... ok [INFO] [stdout] test agent::state::tests::test_has_written_files_set_on_write_file ... ok [INFO] [stdout] test agent::state::tests::test_increment_iteration ... ok [INFO] [stdout] test agent::state::tests::test_inject_system_notification ... ok [INFO] [stdout] test agent::state::tests::test_elapsed_ms ... ok [INFO] [stdout] test agent::state::tests::test_into_result_error ... ok [INFO] [stdout] test agent::state::tests::test_into_result_max_iterations ... ok [INFO] [stdout] test agent::state::tests::test_into_result_success_default_text ... ok [INFO] [stdout] test agent::state::tests::test_original_task_returns_first_message_text ... ok [INFO] [stdout] test agent::state::tests::test_new_creates_initial_user_message ... ok [INFO] [stdout] test agent::state::tests::test_original_task_survives_additional_messages ... ok [INFO] [stdout] test agent::state::tests::test_reset_effective_tokens ... ok [INFO] [stdout] test agent::state::tests::test_record_step ... ok [INFO] [stdout] test agent::tool_registry::tests::test_discovered_definitions_includes_always_available ... ok [INFO] [stdout] test agent::tool_registry::tests::test_format_search_results_with_tools ... ok [INFO] [stdout] test agent::tool_registry::tests::test_is_search_tool ... ok [INFO] [stdout] test agent::tool_registry::tests::test_discovered_definitions_includes_search_tool ... ok [INFO] [stdout] test agent::tool_registry::tests::test_format_search_results_empty ... ok [INFO] [stdout] test agent::tool_registry::tests::test_all_definitions_returns_everything ... ok [INFO] [stdout] test agent::state::tests::test_into_result_timeout ... ok [INFO] [stdout] test agent::state::tests::test_into_result_includes_token_usage ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_finds_by_description ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_marks_as_discovered ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_finds_by_name ... ok [INFO] [stdout] test agent::tool_registry::tests::test_discovered_count_and_undiscovered_count ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_no_match_returns_empty ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_tool_definition_has_required_fields ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_excludes_always_available ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_respects_max_results ... ok [INFO] [stdout] test agent::tool_registry::tests::test_new_creates_empty_discovered ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_disabled ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_max_size_limit ... ok [INFO] [stdout] test agent::state::tests::test_into_result_success ... ok [INFO] [stdout] test agents_md::discovery::tests::test_root_to_leaf_order ... ok [INFO] [stdout] test browser::convert::tests::test_convert_complex_schema ... ok [INFO] [stdout] test agents_md::discovery::tests::test_sources_contain_paths ... ok [INFO] [stdout] test browser::convert::tests::test_convert_empty_tools ... ok [INFO] [stdout] test agent::tool_registry::tests::test_search_scoring_exact_name_ranks_highest ... ok [INFO] [stdout] test agent::state::tests::test_steps_accessor ... ok [INFO] [stdout] test agents_md::discovery::tests::test_inject_some ... ok [INFO] [stdout] test agent::state::tests::test_into_result_no_token_usage_when_zero ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_custom_search_dir ... ok [INFO] [stdout] test agent::state::tests::test_total_input_tokens_accessor ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_no_agents_md ... ok [INFO] [stdout] test browser::mcp::tests::test_connect_to_remix_browser ... ignored [INFO] [stdout] test browser::mcp::tests::test_execute_navigate_tool ... ignored [INFO] [stdout] test browser::manager::tests::test_build_command_headed ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_single_agents_md ... ok [INFO] [stdout] test agents_md::discovery::tests::test_inject_preserves_content ... ok [INFO] [stdout] test browser::convert::tests::test_convert_preserves_all_fields ... ok [INFO] [stdout] test browser::manager::tests::test_is_running_no_child ... ok [INFO] [stdout] test browser::manager::tests::test_build_command_custom_browser_path ... ok [INFO] [stdout] test browser::manager::tests::test_build_command_headless_default ... ok [INFO] [stdout] test browser::manager::tests::test_shutdown_no_child ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_hierarchy ... ok [INFO] [stdout] test browser::mcp::tests::test_mock_tool_executor ... ok [INFO] [stdout] test browser::mcp::tests::test_tool_execution_result_clone ... ok [INFO] [stdout] test agents_md::discovery::tests::test_inject_none ... ok [INFO] [stdout] test browser::convert::tests::test_convert_multiple_tools ... ok [INFO] [stdout] test agents_md::discovery::tests::test_discover_empty_agents_md ... ok [INFO] [stdout] test browser::convert::tests::test_convert_single_tool ... ok [INFO] [stdout] test browser::mcp::tests::test_tool_executor_is_object_safe ... ok [INFO] [stdout] test browser::mcp::tests::test_tool_execution_result_debug ... ok [INFO] [stdout] test browser::mcp::tests::test_tool_execution_result_construction ... ok [INFO] [stdout] test browser::manager::tests::test_from_child_and_shutdown ... ok [INFO] [stdout] test browser::mcp::tests::test_mock_tool_executor_as_trait_object ... ok [INFO] [stdout] test cli::tests::test_parse_run_context_window_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_continue_default_false ... ok [INFO] [stdout] test cli::tests::test_parse_run_no_browser_default_false ... ok [INFO] [stdout] test cli::tests::test_parse_run_nudge_defaults ... ok [INFO] [stdout] test cli::tests::test_missing_subcommand_fails ... ok [INFO] [stdout] test browser::mcp::tests::test_tool_execution_result_error ... ok [INFO] [stdout] test cli::tests::test_parse_run_disable_compaction_default_false ... ok [INFO] [stdout] test cli::tests::test_parse_run_loop_detection_defaults ... ok [INFO] [stdout] test cli::tests::test_parse_run_goal_check_on_complete_default_false ... ok [INFO] [stdout] test cli::tests::test_parse_run_reasoning_stages_defaults ... ok [INFO] [stdout] test cli::tests::test_parse_run_effort_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_action_reminder_interval_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_iteration_budget_warning_default_none ... ok [INFO] [stdout] test cli::tests::test_invalid_subcommand_fails ... ok [INFO] [stdout] test cli::tests::test_parse_run_sse_port_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_short_flags ... ok [INFO] [stdout] test cli::tests::test_parse_run_system_prompt_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_tool_result_max_bytes_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_thinking_budget_tokens_default_none ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_effort ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_continue_flag ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_effort_low ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_action_reminder_interval ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_iteration_budget_warning ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_fork_session ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_goal_check_on_complete ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_disable_compaction ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_allow_deny_tools ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_loop_detection ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_loop_detection_params ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_max_workers ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_effort_max ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_config ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_all_flags ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_context_window ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_loop_detection_max_failures ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_continue_session_alias ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_coordination_dir ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_coordination ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_claude_plugins ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_agents_md_dir ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_browser ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_agents_md ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_nudge_max_count ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_resume_alias ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_plugins ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_sandbox_dir ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_permission_mode ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_skills ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_plugins_dir ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_nudge_on_text_only ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_no_local_tools ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_reasoning_stages_budgets ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_reasoning_stages ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_session_dir ... ok [INFO] [stdout] test cli::tests::test_parse_sessions_list ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_session_id ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_system_prompt ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_skills_dir ... ok [INFO] [stdout] test cli::tests::test_parse_sessions_list_with_session_dir ... ok [INFO] [stdout] test cli::tests::test_parse_sessions_missing_subcommand_fails ... ok [INFO] [stdout] test config::credentials::tests::test_convert_empty ... ok [INFO] [stdout] test config::credentials::tests::test_convert_all_types ... ok [INFO] [stdout] test config::credentials::tests::test_convert_validation_error_empty_name ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_tool_result_max_bytes ... ok [INFO] [stdout] test cli::tests::test_parse_sessions_show_missing_id_fails ... ok [INFO] [stdout] test cli::tests::test_parse_sessions_show_with_session_dir ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_task ... ok [INFO] [stdout] test config::credentials::tests::test_all_credential_types_in_prompt ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_sse_port ... ok [INFO] [stdout] test config::credentials::tests::test_convert_validation_error_missing_required_field ... ok [INFO] [stdout] test config::credentials::tests::test_debug_redacts_fields ... ok [INFO] [stdout] test config::credentials::tests::test_debug_redacts_no_fields ... ok [INFO] [stdout] test config::credentials::tests::test_convert_normalizes_username_password ... ok [INFO] [stdout] test cli::tests::test_parse_run_without_task ... ok [INFO] [stdout] test config::credentials::tests::test_inject_credentials_multiple ... ok [INFO] [stdout] test cli::tests::test_parse_run_with_thinking_budget_tokens ... ok [INFO] [stdout] test config::credentials::tests::test_inject_credentials_none_when_empty ... ok [INFO] [stdout] test config::credentials::tests::test_inject_credentials_formats_correctly ... ok [INFO] [stdout] test cli::tests::test_parse_sessions_show ... ok [INFO] [stdout] test config::credentials::tests::test_convert_does_not_overwrite_existing_fields ... ok [INFO] [stdout] test config::credentials::tests::test_raw_credential_default_type ... ok [INFO] [stdout] test config::credentials::tests::test_inject_credentials_default_pattern ... ok [INFO] [stdout] test config::credentials::tests::test_raw_credential_type_serde_roundtrip ... ok [INFO] [stdout] test config::env::tests::test_bare_dollar_passthrough ... ok [INFO] [stdout] test config::credentials::tests::test_raw_credential_yaml_deserialization ... ok [INFO] [stdout] test config::credentials::tests::test_yaml_backward_compat_flat_username_password ... ok [INFO] [stdout] test config::env::tests::test_basic_substitution ... ok [INFO] [stdout] test config::env::tests::test_empty_var_name_error ... ok [INFO] [stdout] test config::env::tests::test_unclosed_brace_error ... ok [INFO] [stdout] test config::env::tests::test_multiple_vars ... ok [INFO] [stdout] test config::env::tests::test_url_with_vars ... ok [INFO] [stdout] test config::env::tests::test_no_vars_passthrough ... ok [INFO] [stdout] test config::env::tests::test_adjacent_vars ... ok [INFO] [stdout] test config::env::tests::test_missing_var_error ... ok [INFO] [stdout] test config::env::tests::test_var_at_start_and_end ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_max_budget_usd_default ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_tool_result_max_bytes_default ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_yaml_with_new_fields ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_yaml_defaults_for_new_fields ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_with_harness_features ... ok [INFO] [stdout] test config::schema::tests::test_agents_md_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults_include_agents_md ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults_include_new_configs ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults_include_local_tools ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults_include_skills ... ok [INFO] [stdout] test config::schema::tests::test_agent_config_harness_features_default_to_none ... ok [INFO] [stdout] test config::schema::tests::test_app_config_empty_yaml ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults_include_coordination ... ok [INFO] [stdout] test config::schema::tests::test_app_config_with_coordination ... ok [INFO] [stdout] test config::schema::tests::test_app_config_yaml_with_defaults ... ok [INFO] [stdout] test config::schema::tests::test_app_config_yaml_with_webhooks ... ok [INFO] [stdout] test config::schema::tests::test_app_config_with_local_tools ... ok [INFO] [stdout] test config::schema::tests::test_app_config_yaml_deserialization ... ok [INFO] [stdout] test config::schema::tests::test_app_config_with_skills ... ok [INFO] [stdout] test config::schema::tests::test_browser_config_enabled_defaults_to_true ... ok [INFO] [stdout] test config::schema::tests::test_app_config_with_agents_md ... ok [INFO] [stdout] test config::schema::tests::test_browser_config_with_browser_path ... ok [INFO] [stdout] test config::schema::tests::test_browser_config_yaml_with_enabled_false ... ok [INFO] [stdout] test config::schema::tests::test_compaction_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_compaction_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_coordination_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_app_config_defaults_include_plugins ... ok [INFO] [stdout] test config::schema::tests::test_browser_config_yaml_without_enabled_defaults_true ... ok [INFO] [stdout] test config::schema::tests::test_agents_md_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_browser_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_known_keys_still_parse ... ok [INFO] [stdout] test config::schema::tests::test_coordination_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_llm_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_llm_display_empty_key ... ok [INFO] [stdout] test config::schema::tests::test_llm_display_redacts_api_key ... ok [INFO] [stdout] test config::schema::tests::test_llm_display_short_key ... ok [INFO] [stdout] test config::schema::tests::test_local_tools_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_loop_detection_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_loop_detection_config_yaml_defaults ... ok [INFO] [stdout] test config::schema::tests::test_permission_mode_dont_ask_serde_roundtrip ... ok [INFO] [stdout] test config::schema::tests::test_local_tools_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_app_config_with_plugins ... ok [INFO] [stdout] test config::schema::tests::test_app_config_with_new_configs ... ok [INFO] [stdout] test config::schema::tests::test_llm_config_with_custom_headers ... ok [INFO] [stdout] test config::schema::tests::test_loop_detection_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_permissions_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_app_config_yaml_with_credentials ... ok [INFO] [stdout] test config::schema::tests::test_plugin_components_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_app_config_serialization_roundtrip ... ok [INFO] [stdout] test config::schema::tests::test_plugins_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_permissions_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_plugins_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_permission_mode_dont_ask_variant ... ok [INFO] [stdout] test config::schema::tests::test_reasoning_stages_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_session_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_reasoning_stages_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_reasoning_stages_config_yaml_defaults ... ok [INFO] [stdout] test config::schema::tests::test_session_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_skills_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_subagent_config_defaults ... ok [INFO] [stdout] test config::schema::tests::test_skills_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_subagent_config_yaml_deser ... ok [INFO] [stdout] test config::schema::tests::test_unknown_top_level_key_is_rejected ... ok [INFO] [stdout] test config::schema::tests::test_validate_accepts_default_config ... ok [INFO] [stdout] test config::schema::tests::test_validate_rejects_inverted_reasoning_thresholds ... ok [INFO] [stdout] test config::schema::tests::test_validate_rejects_out_of_range_budget_warning ... ok [INFO] [stdout] test config::schema::tests::test_validate_rejects_out_of_range_trigger_threshold ... ok [INFO] [stdout] test config::tests::test_action_reminder_interval_from_cli ... ok [INFO] [stdout] test config::tests::test_allow_deny_tools_from_cli ... ok [INFO] [stdout] test config::tests::test_context_window_from_cli ... ok [INFO] [stdout] test config::tests::test_action_reminder_interval_default_none ... ok [INFO] [stdout] test config::tests::test_cli_flag_override ... ok [INFO] [stdout] test config::tests::test_disable_compaction_default_preserves_enabled ... ok [INFO] [stdout] test config::tests::test_headed_false_preserves_default ... ok [INFO] [stdout] test config::schema::tests::test_validate_rejects_out_of_order_compaction_stages ... ok [INFO] [stdout] test config::schema::tests::test_webhook_config_default_format ... ok [INFO] [stdout] test config::tests::test_goal_check_on_complete_cli_overrides_yaml ... ok [INFO] [stdout] test config::tests::test_action_reminder_interval_cli_overrides_yaml ... ok [INFO] [stdout] test config::tests::test_invalid_yaml_error ... ok [INFO] [stdout] test config::tests::test_goal_check_on_complete_default_false ... ok [INFO] [stdout] test config::tests::test_context_window_default_preserved ... ok [INFO] [stdout] test config::tests::test_disable_compaction_flag ... ok [INFO] [stdout] test config::tests::test_headed_flag_overrides_headless ... ok [INFO] [stdout] test config::tests::test_iteration_budget_warning_from_cli ... ok [INFO] [stdout] test config::tests::test_env_var_override ... ok [INFO] [stdout] test config::tests::test_goal_check_on_complete_from_cli ... ok [INFO] [stdout] test config::tests::test_cli_task_overrides_yaml_task ... ok [INFO] [stdout] test config::tests::test_credentials_normalized_from_yaml ... ok [INFO] [stdout] test config::tests::test_no_browser_flag ... ok [INFO] [stdout] test config::tests::test_iteration_budget_warning_default_none ... ok [INFO] [stdout] test config::tests::test_invalid_permission_mode_error ... ok [INFO] [stdout] test config::tests::test_loop_detection_cli_overrides_yaml ... ok [INFO] [stdout] test config::tests::test_agents_md_dir_from_cli ... ok [INFO] [stdout] test config::tests::test_no_skills_flag ... ok [INFO] [stdout] test config::tests::test_defaults_only ... ok [INFO] [stdout] test config::tests::test_no_agents_md_flag ... ok [INFO] [stdout] test config::tests::test_loop_detection_custom_params_from_cli ... ok [INFO] [stdout] test config::tests::test_loop_detection_default_none ... ok [INFO] [stdout] test config::tests::test_merge_priority_cli_over_env_over_yaml ... ok [INFO] [stdout] test config::tests::test_nudge_on_text_only_from_cli ... ok [INFO] [stdout] test config::tests::test_missing_config_file_error ... ok [INFO] [stdout] test config::tests::test_loop_detection_semantic_from_cli ... ok [INFO] [stdout] test config::tests::test_no_local_tools_flag ... ok [INFO] [stdout] test config::tests::test_loop_detection_from_cli_flag ... ok [INFO] [stdout] test config::tests::test_reasoning_stages_custom_budgets_from_cli ... ok [INFO] [stdout] test config::tests::test_no_cli_task_preserves_yaml_task ... ok [INFO] [stdout] test config::tests::test_no_plugins_flag ... ok [INFO] [stdout] test config::tests::test_nudge_max_count_default_preserved ... ok [INFO] [stdout] test config::tests::test_no_browser_false_preserves_default ... ok [INFO] [stdout] test config::tests::test_skills_config_from_yaml ... ok [INFO] [stdout] test config::tests::test_nudge_on_text_only_default_false ... ok [INFO] [stdout] test config::tests::test_permission_mode_from_cli ... ok [INFO] [stdout] test config::tests::test_no_claude_plugins_flag ... ok [INFO] [stdout] test config::tests::test_plugins_dir_from_env ... ok [INFO] [stdout] test config::tests::test_sandbox_dir_from_cli ... ok [INFO] [stdout] test config::tests::test_plugins_config_from_yaml ... ok [INFO] [stdout] test config::tests::test_nudge_max_count_from_cli ... ok [INFO] [stdout] test config::tests::test_system_prompt_from_cli ... ok [INFO] [stdout] test config::tests::test_nudge_cli_overrides_yaml ... ok [INFO] [stdout] test config::tests::test_skills_dir_from_cli ... ok [INFO] [stdout] test config::tests::test_tool_result_max_bytes_from_cli ... ok [INFO] [stdout] test config::tests::test_thinking_budget_tokens_default_none ... ok [INFO] [stdout] test config::tests::test_session_dir_from_cli ... ok [INFO] [stdout] test config::tests::test_yaml_env_var_interpolation ... ok [INFO] [stdout] test coordination::context::tests::test_context_creation ... ok [INFO] [stdout] test coordination::context::tests::test_context_is_shareable ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_box_dyn_tool_executor_check_inbox ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_box_dyn_tool_executor_impl ... ok [INFO] [stdout] test config::tests::test_reasoning_stages_default_none ... ok [INFO] [stdout] test config::tests::test_plugins_dir_from_cli ... ok [INFO] [stdout] test config::tests::test_skills_dir_from_env ... ok [INFO] [stdout] test coordination::context::tests::test_context_from_config ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_build_child_chain_coordination_disabled ... ok [INFO] [stdout] test config::tests::test_system_prompt_cli_overrides_yaml ... ok [INFO] [stdout] test config::tests::test_tool_result_max_bytes_default_preserved ... ok [INFO] [stdout] test config::tests::test_skills_dir_cli_and_env_no_duplicates ... ok [INFO] [stdout] test config::tests::test_reasoning_stages_from_cli_flag ... ok [INFO] [stdout] test config::tests::test_thinking_budget_tokens_from_cli ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_build_child_chain_without_filter ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_build_child_chain_executes_tools ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_connect_with_retry_constants ... ok [INFO] [stdout] test config::tests::test_yaml_parsing ... ok [INFO] [stdout] test config::tests::test_system_prompt_default_none ... ok [INFO] [stdout] test config::tests::test_timeout_applies_to_both_browser_and_agent ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_child_inherits_denied_tools ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_child_inherits_plan_mode_and_cannot_write ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_build_child_chain_invalid_filter_pattern ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_child_coordination_tools_are_permission_checked ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_build_child_chain_with_local_tools_enabled ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_default_spawn_handler_creation ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_child_plan_mode_hides_write_tools_from_the_model ... ok [INFO] [stdout] test coordination::executor::tests::test_config_accessor ... ok [INFO] [stdout] test coordination::executor::tests::test_is_virtual_tool ... ok [INFO] [stdout] test coordination::executor::tests::test_delegates_non_virtual_tools ... ok [INFO] [stdout] test coordination::executor::tests::test_check_inbox_returns_messages ... ok [INFO] [stdout] test coordination::executor::tests::test_check_inbox_disabled ... ok [INFO] [stdout] test coordination::executor::tests::test_into_inner ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_build_child_chain_with_filter ... ok [INFO] [stdout] test coordination::executor::tests::test_send_broadcast ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent ... ok [INFO] [stdout] test coordination::executor::tests::test_send_message_missing_recipient ... ok [INFO] [stdout] test coordination::executor::tests::test_send_message ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent_missing_name ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent_handler_error_propagation ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent_increments_children_count ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent_with_handler_calls_handler ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent_without_handler_returns_json ... ok [INFO] [stdout] test coordination::executor::tests::test_task_create ... ok [INFO] [stdout] test coordination::executor::tests::test_task_create_missing_subject ... ok [INFO] [stdout] test coordination::executor::tests::test_task_create_reports_a_missing_required_field ... ok [INFO] [stdout] test coordination::executor::tests::test_task_get ... ok [INFO] [stdout] test coordination::executor::tests::test_task_get_nonexistent ... ok [INFO] [stdout] test coordination::executor::tests::test_spawn_agent_max_workers_exceeded ... ok [INFO] [stdout] test coordination::executor::tests::test_task_list ... ok [INFO] [stdout] test coordination::executor::tests::test_task_update ... ok [INFO] [stdout] test coordination::executor::tests::test_task_update_accepts_a_partial_update ... ok [INFO] [stdout] test coordination::executor::tests::test_task_update_reports_an_invalid_status ... ok [INFO] [stdout] test coordination::executor::tests::test_tool_definitions_excludes_virtual_tools_when_disabled ... ok [INFO] [stdout] test coordination::executor::tests::test_tool_definitions_includes_virtual_tools_when_enabled ... ok [INFO] [stdout] test coordination::executor::tests::test_virtual_tool_disabled_returns_error ... ok [INFO] [stdout] test coordination::executor::tests::test_team_create ... ok [INFO] [stdout] test coordination::executor::tests::test_wait_for_children_collects_results ... ok [INFO] [stdout] test coordination::executor::tests::test_wait_for_children_empty ... ok [INFO] [stdout] test coordination::executor::tests::test_wait_for_children_drains_children ... ok [INFO] [stdout] test coordination::executor::tests::test_without_spawn_handler_default ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_broadcast_empty_recipients ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_broadcast_delivers_to_all ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_concurrent_delivery ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_deliver_and_drain_roundtrip ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_drain_clears_inbox ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_deliver_multiple_messages ... ok [INFO] [stdout] test browser::manager::tests::test_is_running_after_process_exits ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_drain_empty_returns_empty_vec ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_load_from_disk_no_inbox_dir ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_peek_does_not_clear ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_peek_returns_messages ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_peek_empty_returns_empty_vec ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_inbox_message_serde_shutdown_request ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_inbox_message_serde_roundtrip ... ok [INFO] [stdout] test coordination::executor::tests::test_wait_for_children_timeout ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_send_message_params_serde ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_id_default ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_id_serde_roundtrip ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_type_serde_roundtrip ... ok [INFO] [stdout] test coordination::inbox_store::tests::test_persist_and_reload ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_type_serde_snake_case ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_id_uniqueness ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_id_display ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_send_message_params_serde_broadcast ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_message_id_equality ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_send_message_params_serde_shutdown_response ... ok [INFO] [stdout] test coordination::prompt::tests::test_prompt_contains_config_values ... ok [INFO] [stdout] test coordination::inbox_types::tests::test_inbox_message_serde_shutdown_response ... ok [INFO] [stdout] test coordination::prompt::tests::test_prompt_contains_xml_tags ... ok [INFO] [stdout] test coordination::prompt::tests::test_prompt_reflects_custom_config_values ... ok [INFO] [stdout] test coordination::prompt::tests::test_prompt_contains_tool_names ... ok [INFO] [stdout] test coordination::prompt::tests::test_prompt_contains_workflow_info ... ok [INFO] [stdout] test coordination::prompt::tests::test_prompt_contains_messaging_info ... ok [INFO] [stdout] test coordination::spawn_handler::tests::test_spawn_definition_serde_roundtrip ... ok [INFO] [stdout] test coordination::shared_executor::tests::test_shared_executor_default_check_inbox ... ok [INFO] [stdout] test coordination::shared_executor::tests::test_shared_executor_delegates_execute ... ok [INFO] [stdout] test coordination::prompt::tests::test_returns_some_when_enabled ... ok [INFO] [stdout] test coordination::spawn_handler::tests::test_spawn_definition_with_defaults ... ok [INFO] [stdout] test coordination::prompt::tests::test_returns_none_when_disabled ... ok [INFO] [stdout] test coordination::shared_executor::tests::test_shared_executor_debug ... ok [INFO] [stdout] test coordination::spawn_handler::tests::test_child_handle_debug ... ok [INFO] [stdout] test coordination::shared_executor::tests::test_shared_executor_caches_tool_definitions ... ok [INFO] [stdout] test coordination::spawn_handler::tests::test_spawn_definition_json_output_format ... ok [INFO] [stdout] test coordination::spawn_handler::tests::test_spawn_definition_with_all_fields ... ok [INFO] [stdout] test coordination::shared_executor::tests::test_shared_executor_multiple_arcs ... ok [INFO] [stdout] test coordination::task_store::tests::test_create_sets_defaults ... ok [INFO] [stdout] test coordination::task_store::tests::test_list_empty_store ... ok [INFO] [stdout] test coordination::task_store::tests::test_delete_via_status_hides_from_list ... ok [INFO] [stdout] test coordination::task_store::tests::test_load_from_disk_no_file ... ok [INFO] [stdout] test coordination::task_store::tests::test_get_existing_task ... ok [INFO] [stdout] test coordination::task_store::tests::test_create_with_metadata_and_active_form ... ok [INFO] [stdout] test coordination::task_store::tests::test_list_filters_blocked_by_to_open_tasks ... ok [INFO] [stdout] test coordination::task_store::tests::test_create_sequential_ids ... ok [INFO] [stdout] test coordination::task_store::tests::test_get_nonexistent_returns_error ... ok [INFO] [stdout] test coordination::task_store::tests::test_list_returns_sorted_summaries ... ok [INFO] [stdout] test coordination::task_store::tests::test_deleted_task_removed_from_blocked_by_in_list ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_nonexistent_returns_error ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_add_blocks_deduplicates ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_metadata_merge_add_and_delete ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_add_blocks_and_blocked_by ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_id_equality ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_id_hash ... ok [INFO] [stdout] test coordination::task_store::tests::test_persist_and_reload ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_create_params_no_optional_fields ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_subject_and_description ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_status ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_status_all_variants_equality ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_status_serde_completed ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_status_serde_pending ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_serde_roundtrip ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_id_serde_roundtrip ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_update_params_full ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_create_params_serde ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_status_serde_deleted ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_summary_from_task_no_owner ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_id_display ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_summary_from_task ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_with_no_optional_fields ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_summary_serde_roundtrip ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_status_serde_in_progress ... ok [INFO] [stdout] test coordination::team_store::tests::test_create_team_slug_special_chars ... ok [INFO] [stdout] test coordination::team_store::tests::test_add_member_no_team_errors ... ok [INFO] [stdout] test coordination::team_store::tests::test_create_team_already_exists_errors ... ok [INFO] [stdout] test coordination::task_types::tests::test_task_update_params_minimal ... ok [INFO] [stdout] test coordination::team_store::tests::test_load_from_disk_no_file ... ok [INFO] [stdout] test coordination::task_store::tests::test_concurrent_creates ... ok [INFO] [stdout] test coordination::team_store::tests::test_remove_nonexistent_member_errors ... ok [INFO] [stdout] test coordination::team_types::tests::test_member_status_serde_roundtrip ... ok [INFO] [stdout] test coordination::team_store::tests::test_persist_and_reload ... ok [INFO] [stdout] test coordination::team_store::tests::test_add_duplicate_member_errors ... ok [INFO] [stdout] test coordination::team_store::tests::test_add_member ... ok [INFO] [stdout] test coordination::team_store::tests::test_get_returns_none_when_empty ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_create_params_serde_no_description ... ok [INFO] [stdout] test coordination::team_store::tests::test_create_team ... ok [INFO] [stdout] test coordination::team_store::tests::test_update_status_nonexistent_member_errors ... ok [INFO] [stdout] test coordination::team_store::tests::test_update_member_status ... ok [INFO] [stdout] test coordination::team_types::tests::test_member_status_serde_snake_case ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_create_params_serde ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_config_serde_no_description ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_owner ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_config_serde_roundtrip ... ok [INFO] [stdout] test coordination::team_store::tests::test_remove_member ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_id_equality ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_id_serde_roundtrip ... ok [INFO] [stdout] test coordination::team_store::tests::test_get_returns_team ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_member_serde ... ok [INFO] [stdout] test coordination::executor::tests::test_with_spawn_handler_builder ... ok [INFO] [stdout] test dev_tools::executor::tests::test_disabled_no_tools_added ... ok [INFO] [stdout] test dev_tools::executor::tests::test_disabled_delegates_all ... ok [INFO] [stdout] test dev_tools::executor::tests::test_enabled_adds_all_tools ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_id_hash ... ok [INFO] [stdout] test dev_tools::executor::tests::test_into_inner ... ok [INFO] [stdout] test dev_tools::executor::tests::test_lsp_tools_are_read_only ... ok [INFO] [stdout] test dev_tools::executor::tests::test_repo_map_is_read_only ... ok [INFO] [stdout] test dev_tools::executor::tests::test_selective_disable_lsp ... ok [INFO] [stdout] test dev_tools::executor::tests::test_selective_disable_repo_map ... ok [INFO] [stdout] test dev_tools::executor::tests::test_selective_disable_test_harness ... ok [INFO] [stdout] test dev_tools::executor::tests::test_test_harness_read_only_flags ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_id_display ... ok [INFO] [stdout] test dev_tools::lsp::detection::tests::test_detect_language_from_file ... ok [INFO] [stdout] test dev_tools::executor::tests::test_unknown_tool_delegates_to_inner ... ok [INFO] [stdout] test coordination::team_types::tests::test_team_member_serde_no_agent_type ... ok [INFO] [stdout] test dev_tools::lsp::detection::tests::test_resolve_with_override ... ok [INFO] [stdout] test dev_tools::lsp::detection::tests::test_resolve_without_override_missing_binary ... ok [INFO] [stdout] test dev_tools::lsp::diagnostics::tests::test_format_diagnostics_empty ... ok [INFO] [stdout] test dev_tools::lsp::diagnostics::tests::test_format_diagnostics_with_errors ... ok [INFO] [stdout] test dev_tools::lsp::diagnostics::tests::test_format_diagnostics_none ... ok [INFO] [stdout] test dev_tools::lsp::goto_definition::tests::formats_a_definition_as_path_line_col ... ok [INFO] [stdout] test dev_tools::lsp::manager::tests::test_debug_impl ... ok [INFO] [stdout] test dev_tools::lsp::manager::tests::test_new_manager ... ok [INFO] [stdout] test dev_tools::lsp::manager::tests::test_resolve_path_absolute ... ok [INFO] [stdout] test dev_tools::lsp::goto_definition::tests::no_definition_yields_no_locations ... ok [INFO] [stdout] test dev_tools::lsp::find_references::tests::formats_each_reference_as_path_line_col ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::empty_array_is_no_locations ... ok [INFO] [stdout] test dev_tools::lsp::find_references::tests::no_references_yields_no_locations ... ok [INFO] [stdout] test dev_tools::lsp::manager::tests::test_resolve_path_relative ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::malformed_response_is_reported_not_guessed ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::null_response_is_no_locations ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::parses_an_array_of_locations ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::parses_a_single_location ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::parses_position_arguments ... ok [INFO] [stdout] test dev_tools::lsp::types::tests::test_default_server_args ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::rejects_missing_arguments_with_a_useful_message ... ok [INFO] [stdout] test dev_tools::lsp::request::tests::parses_location_links ... ok [INFO] [stdout] test dev_tools::lsp::types::tests::test_default_server_command ... ok [INFO] [stdout] test dev_tools::lsp::types::tests::test_from_extension ... ok [INFO] [stdout] test dev_tools::lsp::types::tests::test_from_str_id ... ok [INFO] [stdout] test dev_tools::lsp::types::tests::test_language_id ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_extract_go_symbols ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_extract_python_symbols ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_extract_rust_symbols ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_extract_rust_fn ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_extract_keyword_name ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_is_ignored_dir ... ok [INFO] [stdout] test dev_tools::repo_map::types::tests::test_symbol_entry_format_compact_no_sig ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_extract_typescript_symbols ... ok [INFO] [stdout] test coordination::task_store::tests::test_update_updates_timestamp ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_generate_repo_map_with_include_filter ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_generate_repo_map ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_cargo ... ok [INFO] [stdout] test dev_tools::repo_map::types::tests::test_symbol_kind_icon ... ok [INFO] [stdout] test dev_tools::repo_map::types::tests::test_symbol_entry_format_compact ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_format_repo_map ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_is_source_file ... ok [INFO] [stdout] test dev_tools::test_harness::exec::tests::resolve_framework_accepts_known_id ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_matches_glob ... ok [INFO] [stdout] test dev_tools::test_harness::exec::tests::resolve_framework_rejects_unknown_id ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_none ... ok [INFO] [stdout] test dev_tools::test_harness::exec::tests::supported_frameworks_list_mentions_mocha ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_vitest ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_execute_detect_with_cargo ... ok [INFO] [stdout] test dev_tools::test_harness::list::tests::test_framework_list_commands_exist ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::cargo::tests::test_extract_count ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_vitest_preferred_over_jest ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::cargo::tests::test_parse_all_pass ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::cargo::tests::test_parse_empty_output ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::cargo::tests::test_parse_simple_cargo_output ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_pytest ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_jest ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_multiple ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::go::tests::test_parse_go_json_output ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_execute_detect_empty ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::go::tests::test_parse_go_empty ... ok [INFO] [stdout] test dev_tools::repo_map::generator::tests::test_generate_repo_map_max_files ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::jest::tests::test_parse_jest_invalid ... ok [INFO] [stdout] test dev_tools::test_harness::detect::tests::test_detect_go ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::jest::tests::test_parse_jest_with_prefix ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::pytest::tests::test_parse_pytest_test_line_failed ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::pytest::tests::test_parse_pytest_with_percentage ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::pytest::tests::test_parse_pytest_test_line ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::pytest::tests::test_parse_pytest_empty ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::jest::tests::test_parse_jest_json_output ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::jest::tests::test_parse_jest_pending_tests ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::pytest::tests::test_parse_pytest_all_pass ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::go::tests::test_parse_go_non_json_lines ... ok [INFO] [stdout] test dev_tools::test_harness::run::tests::test_truncate_output_long ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::cargo::tests::test_parse_with_ignored ... ok [INFO] [stdout] test dev_tools::test_harness::run::tests::test_truncate_output_utf8_boundary ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::pytest::tests::test_parse_pytest_simple ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_apply_filters_cargo ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_apply_filters_go ... ok [INFO] [stdout] test dev_tools::test_harness::run::tests::test_truncate_output_short ... ok [INFO] [stdout] test dev_tools::test_harness::parsers::go::tests::test_parse_go_skipped ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_display_name ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_apply_filters_pytest ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_list_command ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_test_command ... ok [INFO] [stdout] test error::tests::test_coordination_error ... ok [INFO] [stdout] test error::tests::test_exit_code_conversion ... ok [INFO] [stdout] test error::tests::test_exit_status_from_error ... ok [INFO] [stdout] test error::tests::test_agents_md_error ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_framework_from_str ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_apply_filters_jest ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_run_summary_format ... ok [INFO] [stdout] test error::tests::test_io_error_conversion ... ok [INFO] [stdout] test dev_tools::test_harness::types::tests::test_apply_filters_none ... ok [INFO] [stdout] test error::tests::test_skill_error ... ok [INFO] [stdout] test error::tests::test_permission_error ... ok [INFO] [stdout] test error::tests::test_local_tool_error ... ok [INFO] [stdout] test error::tests::test_subagent_error ... ok [INFO] [stdout] test error::tests::test_error_display_messages ... ok [INFO] [stdout] test error::tests::test_plugin_error ... ok [INFO] [stdout] test error::tests::test_json_error_conversion ... ok [INFO] [stdout] test error::tests::test_session_error ... ok [INFO] [stdout] test llm::client::tests::test_backoff_is_jittered ... ok [INFO] [stdout] test llm::client::tests::test_backoff_grows_and_is_capped ... ok [INFO] [stdout] test llm::client::tests::test_context_overflow_detection ... ok [INFO] [stdout] test llm::client::tests::test_arc_llm_provider_delegates ... ok [INFO] [stdout] test llm::client::tests::test_403_returns_llm_auth_error ... ok [INFO] [stdout] test llm::client::tests::test_parse_retry_after_numeric ... ok [INFO] [stdout] test llm::client::tests::test_parse_error_returns_llm_error ... ok [INFO] [stdout] test llm::client::tests::test_parse_retry_after_http_date_falls_back ... ok [INFO] [stdout] test llm::client::tests::test_401_returns_llm_auth_error ... ok [INFO] [stdout] test llm::client::tests::test_prompt_caching_header_not_sent_when_disabled ... ok [INFO] [stdout] test llm::client::tests::test_retry_after_is_capped ... ok [INFO] [stdout] test llm::client::tests::test_retry_after_header_wins_over_backoff ... ok [INFO] [stdout] test llm::client::tests::test_other_400_is_not_treated_as_overflow ... ok [INFO] [stdout] test llm::client::tests::test_prompt_caching_header_sent_when_enabled ... ok [INFO] [stdout] test llm::client::tests::test_stream_surfaces_context_overflow_distinctly ... ok [INFO] [stdout] test llm::client::tests::test_context_overflow_returns_distinct_error ... ok [INFO] [stdout] test llm::client::tests::test_stream_retries_a_server_error_before_opening ... ok [INFO] [stdout] test llm::client::tests::test_custom_headers_sent ... ok [INFO] [stdout] test llm::stream::tests::test_parse_content_block_delta_input_json ... ok [INFO] [stdout] test llm::stream::tests::test_parse_content_block_delta_text ... ok [INFO] [stdout] test llm::client::tests::test_500_retries_then_succeeds ... ok [INFO] [stdout] test llm::client::tests::test_429_returns_rate_limited_after_retries ... ok [INFO] [stdout] test llm::client::tests::test_conversation_cache_breakpoint_is_sent_on_the_wire ... ok [INFO] [stdout] test llm::stream::tests::test_parse_content_block_start_tool_use ... ok [INFO] [stdout] test llm::client::tests::test_thinking_config_included_in_request ... ok [INFO] [stdout] test llm::stream::tests::test_parse_content_block_stop ... ok [INFO] [stdout] test llm::stream::tests::test_parse_content_block_start_text ... ok [INFO] [stdout] test llm::stream::tests::test_parse_error_event ... ok [INFO] [stdout] test llm::stream::tests::test_parse_message_delta ... ok [INFO] [stdout] test llm::stream::tests::test_parse_message_stop_event ... ok [INFO] [stdout] test llm::client::tests::test_short_conversation_sends_no_cache_control ... ok [INFO] [stdout] test llm::stream::tests::test_sse_parser_basic_event ... ok [INFO] [stdout] test llm::stream::tests::test_sse_parser_chunked_bytes ... ok [INFO] [stdout] test llm::stream::tests::test_sse_parser_multiple_events ... ok [INFO] [stdout] test llm::client::tests::test_successful_response ... ok [INFO] [stdout] test llm::stream::tests::test_sse_parser_default ... ok [INFO] [stdout] test llm::stream::tests::test_sse_parser_partial_event ... ok [INFO] [stdout] test llm::client::tests::test_500_exhausts_retries ... ok [INFO] [stdout] test llm::client::tests::test_tool_use_response ... ok [INFO] [stdout] test llm::types::tests::test_breakpoint_advances_as_the_conversation_grows ... ok [INFO] [stdout] test llm::types::tests::test_breakpoint_excludes_the_most_recent_exchange ... ok [INFO] [stdout] test llm::stream::tests::test_parse_message_delta_with_full_usage ... ok [INFO] [stdout] test llm::stream::tests::test_parse_ping_event ... ok [INFO] [stdout] test llm::stream::tests::test_parse_message_start_event ... ok [INFO] [stdout] test llm::client::tests::test_429_succeeds_on_retry ... ok [INFO] [stdout] test llm::stream::tests::test_parse_unknown_event_type ... ok [INFO] [stdout] test llm::types::tests::test_breakpoint_skips_blocks_that_cannot_carry_it ... ok [INFO] [stdout] test llm::client::tests::test_500_returns_llm_error ... ok [INFO] [stdout] test llm::types::tests::test_cache_control_serde_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_cache_control_ephemeral_constructor ... ok [INFO] [stdout] test llm::types::tests::test_compute_cost_opus ... ok [INFO] [stdout] test llm::types::tests::test_compute_cost_sonnet ... ok [INFO] [stdout] test llm::types::tests::test_compute_cost_zero_tokens ... ok [INFO] [stdout] test llm::types::tests::test_content_block_text_from_api_json ... ok [INFO] [stdout] test llm::types::tests::test_content_block_text_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_content_block_thinking_signature_preserved_in_serde ... ok [INFO] [stdout] test llm::types::tests::test_compute_cost_haiku ... ok [INFO] [stdout] test llm::client::tests::test_transport_error_is_retried ... ok [INFO] [stdout] test llm::types::tests::test_content_block_thinking_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_content_block_tool_result_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_content_block_tool_result_with_error ... ok [INFO] [stdout] test llm::types::tests::test_content_block_tool_use_from_api_json ... ok [INFO] [stdout] test llm::types::tests::test_content_has_tool_use_with_tool_use ... ok [INFO] [stdout] test llm::types::tests::test_content_block_image_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_content_has_tool_use_without_tool_use ... ok [INFO] [stdout] test llm::types::tests::test_image_source_serde_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_messages_request_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_messages_request_serialization ... ok [INFO] [stdout] test llm::types::tests::test_content_block_tool_use_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_messages_request_with_thinking ... ok [INFO] [stdout] test llm::types::tests::test_content_has_tool_use_empty ... ok [INFO] [stdout] test llm::types::tests::test_messages_request_with_stream ... ok [INFO] [stdout] test llm::types::tests::test_messages_request_with_tools ... ok [INFO] [stdout] test llm::types::tests::test_messages_response_with_tool_use ... ok [INFO] [stdout] test llm::types::tests::test_messages_response_deserialization ... ok [INFO] [stdout] test llm::types::tests::test_messages_response_without_usage ... ok [INFO] [stdout] test llm::types::tests::test_model_pricing_sonnet ... ok [INFO] [stdout] test llm::types::tests::test_model_pricing_haiku ... ok [INFO] [stdout] test llm::client::tests::test_request_format ... ok [INFO] [stdout] test llm::types::tests::test_message_with_multiple_content_blocks ... ok [INFO] [stdout] test llm::types::tests::test_model_pricing_unknown_defaults_to_sonnet ... ok [INFO] [stdout] test llm::types::tests::test_model_pricing_opus ... ok [INFO] [stdout] test llm::types::tests::test_role_serialization ... ok [INFO] [stdout] test llm::types::tests::test_role_deserialization ... ok [INFO] [stdout] test llm::types::tests::test_no_breakpoint_for_short_conversations ... ok [INFO] [stdout] test llm::types::tests::test_system_content_text_constructor ... ok [INFO] [stdout] test llm::types::tests::test_stop_reason_serialization ... ok [INFO] [stdout] test llm::types::tests::test_system_content_text_cached_constructor ... ok [INFO] [stdout] test coordination::executor::tests::test_wait_for_children_aborts_on_timeout ... ok [INFO] [stdout] test llm::types::tests::test_system_content_text_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_system_content_text_cached_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_tool_result_content_blocks_serializes_to_array ... ok [INFO] [stdout] test llm::types::tests::test_thinking_config_enabled_constructor ... ok [INFO] [stdout] test llm::types::tests::test_tool_definition_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_tool_result_content_deserialize_from_array ... ok [INFO] [stdout] test llm::types::tests::test_tool_result_content_deserialize_from_string ... ok [INFO] [stdout] test llm::types::tests::test_tool_definition_with_cache_control ... ok [INFO] [stdout] test llm::types::tests::test_stop_reason_variants ... ok [INFO] [stdout] test llm::types::tests::test_thinking_config_serde_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_tool_result_content_text_serializes_to_string ... ok [INFO] [stdout] test llm::types::tests::test_wire_form_leaves_other_blocks_untouched ... ok [INFO] [stdout] test llm::types::tests::test_usage_roundtrip ... ok [INFO] [stdout] test llm::types::tests::test_usage_with_cache_tokens ... ok [INFO] [stdout] test llm::types::tests::test_wire_form_without_breakpoint_matches_plain_serialization ... ok [INFO] [stdout] test llm::types::tests::test_wire_form_handles_tool_result_blocks ... ok [INFO] [stdout] test local_tools::executor::tests::test_disabled_delegates_all ... ok [INFO] [stdout] test local_tools::executor::tests::test_disabled_no_virtual_tools ... ok [INFO] [stdout] test local_tools::executor::tests::test_enabled_adds_virtual_tools ... ok [INFO] [stdout] test llm::types::tests::test_wire_form_marks_only_the_last_block_of_the_message ... ok [INFO] [stdout] test llm::types::tests::test_wire_form_splices_cache_control_into_the_marked_block ... ok [INFO] [stdout] test local_tools::executor::tests::test_into_inner ... ok [INFO] [stdout] test local_tools::executor::tests::test_write_file_dispatch ... ok [INFO] [stdout] test local_tools::executor::tests::test_tool_definitions_count ... ok [INFO] [stdout] test local_tools::executor::tests::test_read_file_dispatch ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_bypass_allows_new_file_outside_sandbox ... ok [INFO] [stdout] test local_tools::executor::tests::test_unknown_tool_delegates_to_inner ... ok [INFO] [stdout] test local_tools::executor::tests::test_glob_dispatch ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_bypass_allows_absolute_path_outside_sandbox ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_new_with_nonexistent_root ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_bypass_still_canonicalizes_paths ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_bypass_false_still_blocks_outside_paths ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_new_with_bypass_defaults_to_false ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_new_file ... ok [INFO] [stdout] test local_tools::executor::tests::test_edit_file_dispatch ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_absolute_path_outside ... ok [INFO] [stdout] test local_tools::executor::tests::test_grep_dispatch ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_bypass_allows_symlink_outside_sandbox ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_absolute_path_inside ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_relative_path ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_new_file_parent_missing ... ok [INFO] [stdout] test local_tools::sandbox::tests::test_command_output_construction ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_root_accessor ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_symlink_inside ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_symlink_outside ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_allowlist_denied ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_blocklist_pipe ... ok [INFO] [stdout] test local_tools::sandbox::path_validator::tests::test_resolve_with_dot_dot ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_blocklist_match ... ok [INFO] [stdout] test local_tools::sandbox::tests::test_fallback_sandbox_execute ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_missing_command_param ... ok [INFO] [stdout] test local_tools::sandbox::tests::test_create_sandbox_returns_ok ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::absolute_path_is_caught ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::allowlist_case_multiple_commands ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::argument_is_not_a_command ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::command_substitution_is_caught ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::backtick_substitution_is_caught ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::env_assignment_does_not_consume_command_position ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_allowlist_allowed ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_empty_allowlist_allows_all ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_deduplicates_repeated_lines ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_no_truncation_when_under_max_bytes ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::empty_command_yields_nothing ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_stderr_output ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_basic_command ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_with_custom_timeout ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_nonzero_exit_code ... ok [INFO] [stdout] test local_tools::executor::tests::test_bash_dispatch ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_truncates_at_custom_max_bytes ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::escaped_name_is_caught ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_truncates_large_output ... ok [INFO] [stdout] test local_tools::tools::bash::tests::test_bash_strips_ansi_codes ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_missing_new_string_param ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::redirection_does_not_start_a_command ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::simple_command ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::substring_of_another_command_is_not_matched ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_missing_path_param ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::pipeline_is_caught ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::semicolon_without_space_is_caught ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::quoted_text_is_not_a_command ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::sudo_is_transparent ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_missing_old_string_param ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_outside_sandbox ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::variable_reference_is_not_substitution ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_multiline_replacement ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::logical_and_without_space_is_caught ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_not_found ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_not_unique ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_basic_pattern ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_no_matches ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_missing_pattern_param ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_with_base_path ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_preserves_other_content ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_basic_replacement ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_sorts_results ... ok [INFO] [stdout] test local_tools::tools::command_parser::tests::newline_separated_commands ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_relative_paths ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_multiple_extensions ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_context_no_duplicate_lines_overlapping_context ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_context_no_duplicate_lines_adjacent_matches ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_file_content_after_edit ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_invalid_regex ... ok [INFO] [stdout] test local_tools::tools::edit_file::tests::test_edit_nonexistent_file ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_basic_match ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_missing_pattern_param ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_context_no_separator_adjacent_groups ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_nested_directories ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_context_separator_between_groups ... ok [INFO] [stdout] test local_tools::tools::glob_tool::tests::test_glob_recursive ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_skips_binary_files ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_nested_directories ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::batch_is_atomic_on_failure ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_specific_file ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_with_context_lines ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_all_same ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::empty_edits_list_is_rejected ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_empty ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_empty_lines ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_multiple_groups ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::applies_edits_in_order ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_no_duplicates ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_no_matches ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_single_line ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::ambiguous_match_is_rejected_without_replace_all ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_non_consecutive_not_deduped ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_carriage_returns ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_color_codes ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::later_edit_sees_earlier_result ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_consecutive_duplicates ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::replace_all_replaces_every_occurrence ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_empty ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_with_include ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_cursor_and_clear ... ok [INFO] [stdout] test local_tools::tools::multi_edit::tests::malformed_arguments_are_rejected ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_preserves_trailing_newline ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::dedup_lines_unicode ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_empty ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_unicode ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_no_codes ... ok [INFO] [stdout] test local_tools::tools::grep::tests::test_grep_regex_pattern ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_exceeds_limit ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_mixed ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::strip_ansi_multiple_params ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_preserves_beginning_and_end ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_single_line ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_unicode ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_exactly_at_limit ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_very_small_limit ... ok [INFO] [stdout] test local_tools::tools::output_filter::tests::truncate_output_within_limit ... ok [INFO] [stdout] test local_tools::tools::params::tests::optional_fields_may_be_omitted ... ok [INFO] [stdout] test local_tools::tools::params::tests::schema_matches_parser ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_basic_file ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_missing_path_param ... ok [INFO] [stdout] test local_tools::tools::params::tests::parse_reports_the_tool_name ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_nonexistent_file ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_outside_sandbox ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_offset_past_end ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_empty_file ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_with_offset_only ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_with_limit_only ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_with_offset_and_limit ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_headers_default_to_empty ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_truncate_content_exact_boundary ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_truncate_content_multibyte_char_boundary ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_malformed_headers_are_rejected ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_headers_parse_when_present ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_truncate_content_no_truncation ... ok [INFO] [stdout] test local_tools::tools::read_file::tests::test_read_too_large ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_truncate_content_truncated ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_allows_public_hosts ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_rejects_loopback ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_ftp_rejected ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_http_upgrades_to_https ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_no_scheme_adds_https ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_invalid_url ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_rejects_private_ranges ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_missing_url ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_non_http_scheme ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_empty_body ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_html ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_non_200 ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_basic_file ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_https ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_rejects_credential_headers ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_rejects_cloud_metadata ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_validate_url_empty_rejected ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_plain_text ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_json ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_empty_content ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_malformed_headers ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_missing_path_param ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_missing_content_param ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_new_file_in_sandbox ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_truncation ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_path_display_in_output ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_creates_parent_dirs ... ok [INFO] [stdout] test output::events::tests::test_agent_error_serialization ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_overwrites_existing ... ok [INFO] [stdout] test output::events::tests::test_awaiting_input_serialization ... ok [INFO] [stdout] test output::events::tests::test_agent_completed_without_result ... ok [INFO] [stdout] test output::events::tests::test_agent_completed_serialization ... ok [INFO] [stdout] test output::events::tests::test_agent_started_serialization ... ok [INFO] [stdout] test output::events::tests::test_event_bus_send_without_subscribers_does_not_panic ... ok [INFO] [stdout] test output::events::tests::test_emit_helper_with_some_sends_event ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_too_large ... ok [INFO] [stdout] test output::events::tests::test_emit_helper_with_none_does_not_panic ... ok [INFO] [stdout] test output::events::tests::test_event_bus_subscribe_receives_events ... ok [INFO] [stdout] test output::events::tests::test_event_type_returns_correct_strings ... ok [INFO] [stdout] test output::events::tests::test_text_delta_serialization ... ok [INFO] [stdout] test output::result::tests::test_budget_exceeded_serde_roundtrip ... ok [INFO] [stdout] test output::result::tests::test_budget_exceeded_constructor ... ok [INFO] [stdout] test output::events::tests::test_event_bus_multiple_subscribers ... ok [INFO] [stdout] test output::events::tests::test_tool_use_result_with_error_serialization ... ok [INFO] [stdout] test output::result::tests::test_error_constructor ... ok [INFO] [stdout] test local_tools::tools::write_file::tests::test_write_outside_sandbox ... ok [INFO] [stdout] test output::events::tests::test_tool_use_start_serialization ... ok [INFO] [stdout] test output::result::tests::test_deserialization_round_trip ... ok [INFO] [stdout] test output::result::tests::test_optional_fields_omitted_when_none ... ok [INFO] [stdout] test output::events::tests::test_iteration_started_serialization ... ok [INFO] [stdout] test output::result::tests::test_deserialization_with_all_fields_present ... ok [INFO] [stdout] test output::result::tests::test_serialization_matches_prd_format ... ok [INFO] [stdout] test local_tools::tools::web_fetch::tests::test_web_fetch_custom_headers ... ok [INFO] [stdout] test output::events::tests::test_thinking_complete_serialization ... ok [INFO] [stdout] test output::events::tests::test_token_usage_serialization ... ok [INFO] [stdout] test output::events::tests::test_tool_use_result_serialization ... ok [INFO] [stdout] test output::result::tests::test_token_fields_present_when_some ... ok [INFO] [stdout] test output::result::tests::test_status_serializes_to_snake_case ... ok [INFO] [stdout] test output::events::tests::test_thinking_delta_serialization ... ok [INFO] [stdout] test output::result::tests::test_timeout_constructor ... ok [INFO] [stdout] test output::result::tests::test_token_fields_omitted_when_none ... ok [INFO] [stdout] test output::result::tests::test_total_cost_usd_omitted_when_none ... ok [INFO] [stdout] test output::result::tests::test_error_field_omitted_when_none ... ok [INFO] [stdout] test output::result::tests::test_total_cost_usd_present_when_some ... ok [INFO] [stdout] test output::result::tests::test_step_record_is_error_present_when_some ... ok [INFO] [stdout] test output::result::tests::test_step_record_is_error_omitted_when_none ... ok [INFO] [stdout] test output::webhook::tests::test_send_completion_does_nothing_when_no_webhook ... ok [INFO] [stdout] test output::result::tests::test_max_iterations_constructor ... ok [INFO] [stdout] test output::result::tests::test_status_deserializes_from_snake_case ... ok [INFO] [stdout] test output::webhook::tests::test_correct_content_type_header ... ok [INFO] [stdout] test output::webhook::tests::test_json_format_sends_raw_body ... ok [INFO] [stdout] test output::result::tests::test_success_constructor ... ok [INFO] [stdout] test permissions::executor::tests::test_bypass_passes_through ... ok [INFO] [stdout] test output::webhook::tests::test_send_error_does_nothing_when_no_webhook ... ok [INFO] [stdout] test permissions::executor::tests::test_denied_tool_returns_error ... ok [INFO] [stdout] test output::webhook::tests::test_send_error_posts_correct_body ... ok [INFO] [stdout] test permissions::executor::tests::test_ask_forwards_to_inner ... ok [INFO] [stdout] test output::webhook::tests::test_slack_format_sends_text_wrapper ... ok [INFO] [stdout] test permissions::executor::tests::test_into_inner_recovers_executor ... ok [INFO] [stdout] test permissions::executor::tests::test_permission_channel_timeout ... ok [INFO] [stdout] test output::webhook::tests::test_send_completion_posts_correct_json_body ... ok [INFO] [stdout] test output::webhook::tests::test_webhook_failure_is_not_propagated ... ok [INFO] [stdout] test permissions::executor::tests::test_no_permission_channel_auto_allows ... ok [INFO] [stdout] test permissions::executor::tests::test_permission_channel_deny ... ok [INFO] [stdout] test output::webhook::tests::test_webhook_logs_warning_on_4xx ... ok [INFO] [stdout] test permissions::executor::tests::test_permission_channel_allow ... ok [INFO] [stdout] test permissions::executor::tests::test_deny_overrides_allow_all ... ok [INFO] [stdout] test permissions::executor::tests::test_permission_channel_closed_denies ... ok [INFO] [stdout] test permissions::executor::tests::test_plan_mode_allows_read_file ... ok [INFO] [stdout] test permissions::executor::tests::test_plan_mode_allows_load_skill ... ok [INFO] [stdout] test output::webhook::tests::test_both_webhooks_configured ... ok [INFO] [stdout] test permissions::executor::tests::test_plan_mode_definitions_include_skill_read_tools ... ok [INFO] [stdout] test permissions::executor::tests::test_plan_mode_blocks_write_file ... ok [INFO] [stdout] test permissions::executor::tests::test_policy_accessor ... ok [INFO] [stdout] test permissions::executor::tests::test_permission_channel_not_used_for_allowed_tools ... ok [INFO] [stdout] test permissions::executor::tests::test_permission_channel_not_used_for_denied_tools ... ok [INFO] [stdout] test permissions::executor::tests::test_tool_definitions_filtered_in_plan_mode ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_auto_allows_write_file ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_denied_overrides_auto_allow ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_auto_allows_multi_edit ... ok [INFO] [stdout] test permissions::executor::tests::test_tool_definitions_delegates_in_default_mode ... ok [INFO] [stdout] test permissions::executor::tests::test_plan_mode_blocks_bash ... ok [INFO] [stdout] test permissions::executor::tests::test_tool_definitions_not_filtered_in_bypass_mode ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_auto_allows_edit_file ... ok [INFO] [stdout] test permissions::types::tests::test_argument_rules_are_ignored_under_bypass ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_returns_ask_for_unknown ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_allowed_patterns_still_work ... ok [INFO] [stdout] test permissions::types::tests::test_accept_edits_auto_allows_bash ... ok [INFO] [stdout] test permissions::executor::tests::test_tool_definitions_not_filtered_in_accept_edits_mode ... ok [INFO] [stdout] test permissions::executor::tests::test_plan_mode_blocks_run_skill_script ... ok [INFO] [stdout] test permissions::types::tests::test_allow_pattern_is_anchored ... ok [INFO] [stdout] test permissions::types::tests::test_argument_scoped_rule_searches_all_argument_values ... ok [INFO] [stdout] test permissions::types::tests::test_default_mode_returns_ask_for_unknown ... ok [INFO] [stdout] test permissions::types::tests::test_bypass_allows_any_tool ... ok [INFO] [stdout] test permissions::types::tests::test_dont_ask_denies_unknown_tools ... ok [INFO] [stdout] test permissions::types::tests::test_dont_ask_denied_takes_precedence ... ok [INFO] [stdout] test permissions::types::tests::test_denied_regex_precedence_over_allowed_regex ... ok [INFO] [stdout] test permissions::types::tests::test_dont_ask_allows_explicitly_allowed ... ok [INFO] [stdout] test permissions::types::tests::test_invalid_argument_pattern_fails_closed ... ok [INFO] [stdout] test permissions::types::tests::test_denied_takes_precedence ... ok [INFO] [stdout] test permissions::types::tests::test_invalid_regex_in_denied_fails_closed ... ok [INFO] [stdout] test permissions::types::tests::test_permission_decision_equality ... ok [INFO] [stdout] test permissions::types::tests::test_invalid_regex_in_allowed_is_skipped ... ok [INFO] [stdout] test permissions::types::tests::test_dont_ask_mode_serde ... ok [INFO] [stdout] test permissions::types::tests::test_permission_mode_accept_edits_serde ... ok [INFO] [stdout] test permissions::types::tests::test_permission_mode_default_is_default ... ok [INFO] [stdout] test permissions::types::tests::test_name_only_rules_still_deny_the_whole_tool ... ok [INFO] [stdout] test permissions::types::tests::test_permission_mode_default_serde ... ok [INFO] [stdout] test permissions::types::tests::test_permission_mode_plan_serde ... ok [INFO] [stdout] test permissions::types::tests::test_permission_policy_default ... ok [INFO] [stdout] test permissions::executor::tests::test_regex_allowed_pattern_passes_through ... ok [INFO] [stdout] test permissions::types::tests::test_permission_mode_bypass_serde ... ok [INFO] [stdout] test permissions::types::tests::test_permission_policy_serde_roundtrip ... ok [INFO] [stdout] test permissions::types::tests::test_plan_mode_allows_grep ... ok [INFO] [stdout] test permissions::types::tests::test_plan_mode_denies_write_tools ... ok [INFO] [stdout] test permissions::types::tests::test_plan_mode_allows_load_skill ... ok [INFO] [stdout] test permissions::types::tests::test_validate_rejects_invalid_allowed_pattern ... ok [INFO] [stdout] test plugins::components::agents::tests::test_agent_definition_defaults ... ok [INFO] [stdout] test permissions::types::tests::test_plan_mode_allows_read_file ... ok [INFO] [stdout] test permissions::types::tests::test_validate_accepts_valid_patterns ... ok [INFO] [stdout] test permissions::types::tests::test_plan_mode_allows_glob ... ok [INFO] [stdout] test plugins::components::agents::tests::test_discover_agents_empty_list ... ok [INFO] [stdout] test plugins::components::agents::tests::test_agent_definition_serde_roundtrip ... ok [INFO] [stdout] test plugins::components::agents::tests::test_discover_agents_preserves_source_path ... ok [INFO] [stdout] test plugins::components::agents::tests::test_discover_agents_mixed_valid_invalid ... ok [INFO] [stdout] test plugins::components::agents::tests::test_discover_agents_valid_files ... ok [INFO] [stdout] test plugins::components::agents::tests::test_inject_agents_empty_list ... ok [INFO] [stdout] test plugins::components::agents::tests::test_inject_agents_single ... ok [INFO] [stdout] test permissions::types::tests::test_allow_pattern_alternation_still_works_when_anchored ... ok [INFO] [stdout] test plugins::components::agents::tests::test_discover_agents_all_invalid ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_empty_description ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_missing_closing_fence ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_missing_frontmatter ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_no_model_defaults_none ... ok [INFO] [stdout] test plugins::components::agents::tests::test_inject_agents_multiple ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_bad_yaml ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_empty_name ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_valid ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_no_tools_defaults_empty ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_empty_body ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_minimal ... ok [INFO] [stdout] test plugins::components::agents::tests::test_parse_agent_md_with_leading_whitespace ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_registry_load_from_file ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_registry_load_multiple_commands_per_rule ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_registry_clone ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_registry_new_is_empty ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_timing_equality ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_registry_default_is_empty ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_timing_serde_roundtrip ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_registry_load_multiple_files ... ok [INFO] [stdout] test permissions::types::tests::test_argument_scoped_rule_does_not_affect_other_tools ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hooks_config_file_serde_roundtrip ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_lifecycle_hooks_method ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_load_from_file_error_propagation ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_invalid_regex_skipped ... ok [INFO] [stdout] test permissions::executor::tests::test_regex_denied_pattern_blocks ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_post_tool_use ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hooks_config_with_new_timings ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_partial_name_no_match ... ok [INFO] [stdout] test permissions::types::tests::test_argument_scoped_rule_denies_matching_call ... ok [INFO] [stdout] test permissions::types::tests::test_denied_regex_pattern ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_parse_hooks_config_file_not_found ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_parse_hooks_config_empty_hooks ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_wrong_timing ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_regex_wildcard_pattern ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_no_match ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_pre_tool_use ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_build_mcp_command_basic ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_multiple_rules_same_timing ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_parse_hooks_config_valid ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_parse_hooks_config_missing_post_tool_use ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_mcp_config_file_serde_roundtrip ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_build_mcp_command_env_substitution ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_matching_hooks_pipe_separated_pattern ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_mcp_server_config_serde_roundtrip ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_no_substitution_when_no_placeholder ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_build_mcp_command_with_env ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_parse_hooks_config_invalid_json ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_multiple_servers ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_with_env ... ok [INFO] [stdout] test permissions::types::tests::test_argument_scoped_rule_allows_other_calls_to_same_tool ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_simple_config ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_defaults_for_optional_fields ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_invalid_json ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_empty_servers ... ok [INFO] [stdout] test permissions::types::tests::test_allowed_regex_pattern ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_file_not_found ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_missing_mcp_servers_defaults_empty ... ok [INFO] [stdout] test plugins::components::skills::tests::test_collect_plugin_skill_dirs_empty_set ... ok [INFO] [stdout] test plugins::components::mcp::tests::test_parse_config_with_plugin_root_substitution ... ok [INFO] [stdout] test plugins::components::skills::tests::test_collect_plugin_skill_dirs_with_mix ... ok [INFO] [stdout] test plugins::components::skills::tests::test_collect_plugin_skill_dirs_none_have_skills ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_duplicate_across_plugins_first_plugin_wins ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_resolved_hook_stores_plugin_root ... ok [INFO] [stdout] test permissions::types::tests::test_validate_rejects_invalid_denied_pattern ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_duplicate_skill_name_existing_wins ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_with_empty_plugin_set ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_add_backend_with_no_tools ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_with_plugin_without_skills_dir ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_with_empty_skills_dir ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_execute_collision_uses_first_backend ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_add_single_backend ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_add_multiple_backends ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_into_backends_returns_all ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_execute_empty_executor_returns_error ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_name_collision_first_wins ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_execute_routes_to_correct_backend ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_with_valid_plugin_containing_skills ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_skips_invalid_skill_md ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_multiple_plugins_with_unique_skills ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_new_is_empty ... ok [INFO] [stdout] test permissions::types::tests::test_dont_ask_allows_regex_pattern ... ok [INFO] [stdout] test plugins::discovery::tests::test_discover_skips_nonexistent_local ... ok [INFO] [stdout] test plugins::discovery::tests::test_has_any_components_empty ... ok [INFO] [stdout] test plugins::discovery::tests::test_discover_multiple_local_sources ... ok [INFO] [stdout] test plugins::discovery::tests::test_discover_with_local_source ... ok [INFO] [stdout] test plugins::discovery::tests::test_has_any_components_hooks ... ok [INFO] [stdout] test plugins::discovery::tests::test_default_claude_code_plugins_path_with_home ... ok [INFO] [stdout] test plugins::discovery::tests::test_discover_disabled_returns_empty ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_execute_unknown_tool_returns_error ... ok [INFO] [stdout] test plugins::discovery::tests::test_has_any_components_mcp ... ok [INFO] [stdout] test plugins::discovery::tests::test_plugin_name_from_path_nested ... ok [INFO] [stdout] test plugins::discovery::tests::test_plugin_name_from_path_root ... ok [INFO] [stdout] test plugins::discovery::tests::test_discover_no_sources_no_cache ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_routing_indices_are_correct_with_three_backends ... ok [INFO] [stdout] test plugins::discovery::tests::test_has_any_components_skills ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_file_not_found ... ok [INFO] [stdout] test plugins::discovery::tests::test_plugin_name_from_path_normal ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_empty_plugins ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_skips_disabled ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_invalid_json ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_skips_nonexistent_path ... ok [INFO] [stdout] test plugins::composite_executor::tests::test_tool_definitions_preserve_descriptions ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_command_serde_roundtrip ... ok [INFO] [stdout] test plugins::components::hooks::tests::test_hook_rule_serde_roundtrip ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_multiple_entries ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_local_dir_empty ... ok [INFO] [stdout] test plugins::discovery::tests::test_has_any_components_agents ... ok [INFO] [stdout] test plugins::components::skills::tests::test_collect_plugin_skill_dirs_all_have_skills ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_local_dir_nonexistent ... ok [INFO] [stdout] test plugins::components::skills::tests::test_merge_with_multiple_skills_in_one_plugin ... ok [INFO] [stdout] test plugins::discovery::tests::test_read_cache_valid_enabled_plugin ... ok [INFO] [stdout] test plugins::github::tests::test_all_errors_are_plugin_variant ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_local_dir_with_all_components ... ok [INFO] [stdout] test plugins::github::tests::test_error_messages_are_descriptive ... ok [INFO] [stdout] test plugins::github::tests::test_github_cache_path_invalid_repo ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_local_dir_valid ... ok [INFO] [stdout] test plugins::github::tests::test_github_cache_path_preserves_case ... ok [INFO] [stdout] test plugins::github::tests::test_github_cache_path_valid ... ok [INFO] [stdout] test plugins::github::tests::test_github_cache_path_with_nested_cache_dir ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_empty_owner ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_empty_repo_name ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_empty_string ... ok [INFO] [stdout] test plugins::github::tests::test_github_cache_path_relative_cache_dir ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_local_dir_is_file ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_no_slash ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_just_slash ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_too_many_slashes ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_valid ... ok [INFO] [stdout] test plugins::github::tests::test_parse_repo_with_hyphens_and_underscores ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_empty_registry_fast_path ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_execute_tool_no_hooks ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_hook_aware_executor_delegates_tool_definitions ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_hook_failure_does_not_block_tool ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_hook_result_default ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_hook_invalid_command_does_not_block ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_execute_tool_allow_decision_runs_tool_and_surfaces_message ... ok [INFO] [stdout] test coordination::executor::tests::test_wait_for_children_multiple_mixed_results ... ok [INFO] [stdout] test plugins::github::tests::test_clone_or_update_invalid_repo_format ... ok [INFO] [stdout] test plugins::github::tests::test_check_git_available_succeeds ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_into_inner ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_github_invalid_repo_format ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_lifecycle_hook_empty_registry ... ok [INFO] [stdout] test plugins::discovery::tests::test_resolve_github_extracts_name_from_repo ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_inner_error_propagated_after_pre_hooks ... ok [INFO] [stdout] test plugins::github::tests::test_clone_or_update_with_existing_git_dir_fetches ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_pre_tool_use_hook_ask_is_treated_as_deny ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_pre_tool_use_hook_can_deny ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_pre_tool_use_hook_can_rewrite_input ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_registry_accessor ... ok [INFO] [stdout] test plugins::github::tests::test_clone_or_update_existing_repo_with_ref ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_non_matching_hooks_not_executed ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_execute_tool_with_pre_hook ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_execute_tool_with_post_hook ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_ignores_empty_stdout ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_post_hooks_not_run_on_inner_error ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_ignores_invalid_json ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_parses_permission_decision ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_parses_all_fields ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_returns_default_when_no_hooks ... ok [INFO] [stdout] test plugins::types::tests::test_installed_plugin_entry_enabled_defaults_to_true ... ok [INFO] [stdout] test plugins::types::tests::test_installed_plugins_json_multiple_entries_per_key ... ok [INFO] [stdout] test plugins::types::tests::test_installed_plugins_json_serde_roundtrip ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_components_default ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_all_agent_files ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_all_hook_configs ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_last_hook_wins ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_all_mcp_configs ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_all_methods_empty ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_iter ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_partial_fields_merge ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_new_is_empty ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_push_and_len ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_source_display_claude_code_cache ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_source_display_github_no_ref ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_source_display_local_dir ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_source_display_github_with_ref ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_set_all_skill_dirs ... ok [INFO] [stdout] test plugins::types::tests::test_plugin_source_equality ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_agents_dir_empty ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_full_plugin ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_empty_dir ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_parses_system_message ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_nonexistent_dir ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_skills_dir_without_skill_md_ignored ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_with_agent_files ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_with_hooks_json ... ok [INFO] [stdout] test plugins::types::tests::test_resolved_plugin_clone ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_with_skills ... ok [INFO] [stdout] test session::file_store::tests::test_conformance_save_steps_is_idempotent ... ok [INFO] [stdout] test session::file_store::tests::test_conformance_save_messages_is_idempotent ... ok [INFO] [stdout] test session::file_store::tests::test_create_generates_metadata ... ok [INFO] [stdout] test session::file_store::tests::test_create_initializes_files ... ok [INFO] [stdout] test session::file_store::tests::test_create_respects_max_sessions ... ok [INFO] [stdout] test plugins::types::tests::test_resolve_with_mcp_json ... ok [INFO] [stdout] test session::file_store::tests::test_conformance_save_messages_replaces_history ... ok [INFO] [stdout] test session::file_store::tests::test_file_session_store_as_dyn_session_storage ... ok [INFO] [stdout] test session::file_store::tests::test_fork_nonexistent_source ... ok [INFO] [stdout] test session::file_store::tests::test_fork_creates_new_session ... ok [INFO] [stdout] test session::file_store::tests::test_fork_copies_messages_and_steps ... ok [INFO] [stdout] test session::file_store::tests::test_fork_preserves_token_counts ... ok [INFO] [stdout] test session::file_store::tests::test_list_sessions ... ok [INFO] [stdout] test session::file_store::tests::test_list_sessions_empty ... ok [INFO] [stdout] test session::file_store::tests::test_list_sessions_nonexistent_root ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_run_hooks_parses_updated_input ... ok [INFO] [stdout] test session::file_store::tests::test_load_full_snapshot ... ok [INFO] [stdout] test session::file_store::tests::test_load_messages ... ok [INFO] [stdout] test session::file_store::tests::test_load_metadata_nonexistent ... ok [INFO] [stdout] test session::file_store::tests::test_load_messages_empty ... ok [INFO] [stdout] test session::file_store::tests::test_load_nonexistent_session ... ok [INFO] [stdout] test session::file_store::tests::test_load_snapshot_empty_session ... ok [INFO] [stdout] test session::file_store::tests::test_save_and_load_metadata_roundtrip ... ok [INFO] [stdout] test session::file_store::tests::test_save_metadata_nonexistent_directory ... ok [INFO] [stdout] test session::file_store::tests::test_save_and_load_steps ... ok [INFO] [stdout] test session::file_store::tests::test_save_messages_nonexistent_session ... ok [INFO] [stdout] test session::traits::tests::test_most_recent_session_breaks_ties_deterministically ... ok [INFO] [stdout] test session::traits::tests::test_most_recent_session_empty_is_none ... ok [INFO] [stdout] test session::traits::tests::test_most_recent_session_picks_newest ... ok [INFO] [stdout] test session::traits::tests::test_session_storage_is_object_safe ... ok [INFO] [stdout] test session::types::tests::test_session_id_default ... ok [INFO] [stdout] test session::file_store::tests::test_save_messages_truncates_on_full_write ... ok [INFO] [stdout] test session::file_store::tests::test_save_messages_creates_jsonl ... ok [INFO] [stdout] test session::types::tests::test_session_id_equality ... ok [INFO] [stdout] test session::types::tests::test_session_id_display ... ok [INFO] [stdout] test session::types::tests::test_session_id_hash ... ok [INFO] [stdout] test session::traits::tests::test_most_recent_session_ignores_input_order ... ok [INFO] [stdout] test session::types::tests::test_session_metadata_json_structure ... ok [INFO] [stdout] test session::types::tests::test_session_id_new_is_valid_uuid ... ok [INFO] [stdout] test session::types::tests::test_session_id_new_generates_unique_ids ... ok [INFO] [stdout] test session::types::tests::test_session_metadata_timestamps_preserved ... ok [INFO] [stdout] test session::types::tests::test_session_metadata_with_parent ... ok [INFO] [stdout] test session::types::tests::test_session_metadata_with_tokens ... ok [INFO] [stdout] test session::types::tests::test_session_snapshot_empty_messages_and_steps ... ok [INFO] [stdout] test session::types::tests::test_session_metadata_serde_roundtrip ... ok [INFO] [stdout] test session::types::tests::test_session_status_serde_completed ... ok [INFO] [stdout] test session::file_store::tests::test_save_steps_nonexistent_session ... ok [INFO] [stdout] test session::types::tests::test_session_status_serde_in_progress ... ok [INFO] [stdout] test session::types::tests::test_session_status_serde_paused ... ok [INFO] [stdout] test session::types::tests::test_session_id_serde_roundtrip ... ok [INFO] [stdout] test session::types::tests::test_session_status_serde_error ... ok [INFO] [stdout] test session::types::tests::test_session_snapshot_json_structure ... ok [INFO] [stdout] test skills::discovery::tests::test_default_skill_dirs_with_extra ... ok [INFO] [stdout] test skills::discovery::tests::test_default_skill_dirs_without_extra ... ok [INFO] [stdout] test session::types::tests::test_session_snapshot_serde_roundtrip ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_all_skills_duplicate_first_wins ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_all_skills_missing_dirs_skipped ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_all_skills_multi_dir ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_skills_in_dir_empty ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_skills_in_dir_nonexistent ... ok [INFO] [stdout] test skills::discovery::tests::test_inject_skills_multiple_sorted ... ok [INFO] [stdout] test skills::discovery::tests::test_inject_skills_empty_set ... ok [INFO] [stdout] test skills::discovery::tests::test_inject_skills_single ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_skills_in_dir_mixed ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_bad_yaml ... ok [INFO] [stdout] test skills::discovery::tests::test_discover_skills_in_dir_valid ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_empty_body ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_description_too_long ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_empty_description ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_invalid_name ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_minimal ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_missing_frontmatter ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_name_too_long ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_valid ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_with_metadata_and_allowed_tools ... ok [INFO] [stdout] test skills::executor::tests::test_empty_skillset_delegates_skill_tool_names ... ok [INFO] [stdout] test skills::executor::tests::test_empty_skill_set_no_virtual_tools ... ok [INFO] [stdout] test skills::executor::tests::test_into_inner ... ok [INFO] [stdout] test skills::discovery::tests::test_parse_skill_md_missing_closing_fence ... ok [INFO] [stdout] test skills::executor::tests::test_load_skill_lists_resources ... ok [INFO] [stdout] test skills::executor::tests::test_load_skill_success ... ok [INFO] [stdout] test skills::executor::tests::test_read_skill_resource_not_found ... ok [INFO] [stdout] test skills::executor::tests::test_read_skill_resource_path_traversal ... ok [INFO] [stdout] test skills::executor::tests::test_load_skill_not_found ... ok [INFO] [stdout] test skills::executor::tests::test_load_skill_lists_scripts ... ok [INFO] [stdout] test skills::executor::tests::test_read_skill_resource_success ... ok [INFO] [stdout] test skills::executor::tests::test_run_skill_script_path_traversal ... ok [INFO] [stdout] test skills::executor::tests::test_read_skill_resource_too_large ... ok [INFO] [stdout] test plugins::github::tests::test_clone_nonexistent_github_repo ... ok [INFO] [stdout] test plugins::github::tests::test_clone_or_update_creates_parent_dirs ... ok [INFO] [stdout] test skills::executor::tests::test_unknown_tool_delegates_to_inner ... ok [INFO] [stdout] test skills::executor::tests::test_validate_path_within_skill_traversal ... ok [INFO] [stdout] test skills::executor::tests::test_validate_path_within_skill_nonexistent ... ok [INFO] [stdout] test skills::executor::tests::test_virtual_tool_definitions_count ... ok [INFO] [stdout] test skills::executor::tests::test_virtual_tool_definitions_have_schemas ... ok [INFO] [stdout] test skills::types::tests::test_skill_metadata_serde_roundtrip ... ok [INFO] [stdout] test skills::executor::tests::test_validate_path_within_skill_valid ... ok [INFO] [stdout] test skills::executor::tests::test_with_skills_adds_virtual_tools ... ok [INFO] [stdout] test skills::executor::tests::test_run_skill_script_nonzero_exit ... ok [INFO] [stdout] test skills::types::tests::test_skillset_get_missing_returns_none ... ok [INFO] [stdout] test skills::types::tests::test_skillset_insert_and_get ... ok [INFO] [stdout] test skills::types::tests::test_skillset_iter ... ok [INFO] [stdout] test skills::executor::tests::test_run_skill_script_success ... ok [INFO] [stdout] test skills::types::tests::test_skillset_duplicate_insert_errors ... ok [INFO] [stdout] test skills::types::tests::test_skillset_new_is_empty ... ok [INFO] [stdout] test skills::types::tests::test_skillset_sorted_names ... ok [INFO] [stdout] test skills::executor::tests::test_run_skill_script_with_args ... ok [INFO] [stdout] test skills::types::tests::test_validate_name_with_digits ... ok [INFO] [stdout] test skills::types::tests::test_validate_empty_name ... ok [INFO] [stdout] test skills::types::tests::test_validate_special_chars_rejected ... ok [INFO] [stdout] test skills::types::tests::test_validate_leading_hyphen_rejected ... ok [INFO] [stdout] test skills::types::tests::test_validate_name_too_long ... ok [INFO] [stdout] test skills::types::tests::test_validate_trailing_hyphen_rejected ... ok [INFO] [stdout] test subagent::executor::tests::test_config_accessor_disabled ... ok [INFO] [stdout] test subagent::executor::tests::test_config_accessor ... ok [INFO] [stdout] test skills::types::tests::test_validate_uppercase_rejected ... ok [INFO] [stdout] test skills::types::tests::test_validate_valid_names ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_delegates_non_spawn_tools ... ok [INFO] [stdout] test skills::types::tests::test_validate_consecutive_hyphens_rejected ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_spawn_agent_disabled ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_spawn_agent_empty_object ... ok [INFO] [stdout] test subagent::executor::tests::test_no_inner_tools_disabled_means_empty ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_spawn_agent_minimal_request ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_spawn_agent_missing_name ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_spawn_agent_valid_request ... ok [INFO] [stdout] test subagent::executor::tests::test_no_inner_tools_only_spawn ... ok [INFO] [stdout] test subagent::executor::tests::test_into_inner_recovers_executor ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_hook_receives_context_via_stdin ... ok [INFO] [stdout] test subagent::executor::tests::test_parse_spawn_request_all_fields ... ok [INFO] [stdout] test subagent::executor::tests::test_parse_spawn_request_task_not_string ... ok [INFO] [stdout] test subagent::executor::tests::test_parse_spawn_request_minimal_fields ... ok [INFO] [stdout] test subagent::executor::tests::test_execute_spawn_agent_missing_task ... ok [INFO] [stdout] test subagent::executor::tests::test_spawn_agent_tool_definition_schema ... ok [INFO] [stdout] test subagent::executor::tests::test_tool_definitions_includes_spawn_agent_when_enabled ... ok [INFO] [stdout] test subagent::executor::tests::test_tool_definitions_excludes_spawn_agent_when_disabled ... ok [INFO] [stdout] test subagent::executor::tests::test_tool_definitions_order_spawn_first ... ok [INFO] [stdout] test subagent::executor::tests::test_parse_spawn_request_name_not_string ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_lifecycle_hook_fires ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_empty_patterns_means_no_tools ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_lifecycle_hook_receives_context ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_execute_with_empty_patterns_rejects_all ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_execute_allowed_tool ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_dot_star_matches_all_tools ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_execute_disallowed_tool_returns_error ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_execute_completely_unknown_tool_returns_error ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_invalid_regex_returns_error ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_post_tool_use_failure_hook_on_err ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_into_inner_recovers_executor ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_post_tool_use_failure_hook_on_is_error ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_filters_with_pipe_separated_regex ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_execute_with_regex_pattern_match ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_is_tool_allowed_exact ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_filters_exact_tool_names ... ok [INFO] [stdout] test subagent::types::tests::test_definition_clone ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_pattern_anchored_to_full_name ... ok [INFO] [stdout] test subagent::types::tests::test_definition_from_json ... ok [INFO] [stdout] test subagent::types::tests::test_definition_serde_roundtrip ... ok [INFO] [stdout] test subagent::types::tests::test_result_clone ... ok [INFO] [stdout] test subagent::types::tests::test_definition_json_structure ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_no_matching_tools ... ok [INFO] [stdout] test subagent::types::tests::test_definition_empty_allowed_tools ... ok [INFO] [stdout] test subagent::types::tests::test_definition_minimal_serde_roundtrip ... ok [INFO] [stdout] test subagent::types::tests::test_definition_null_system_prompt_in_json ... ok [INFO] [stdout] test subagent::types::tests::test_definition_debug ... ok [INFO] [stdout] test subagent::types::tests::test_result_json_structure ... ok [INFO] [stdout] test subagent::types::tests::test_result_serde_roundtrip ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_id_creation ... ok [INFO] [stdout] test subagent::types::tests::test_result_with_timeout_status ... ok [INFO] [stdout] test subagent::types::tests::test_result_debug ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_context_serde_roundtrip ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_post_hook_receives_tool_output ... ok [INFO] [stdout] test subagent::types::tests::test_result_with_error_status ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_is_tool_allowed_regex ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_context_new_defaults ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_id_display ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_id_equality ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_id_from_string ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_id_hash ... ok [INFO] [stdout] test subagent::types::tests::test_result_with_max_iterations_status ... ok [INFO] [stdout] test subagent::types::tests::test_result_with_multiple_steps ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_filters_with_regex_wildcard ... ok [INFO] [stdout] test tenant::context::tests::test_tenant_id_serde_roundtrip ... ok [INFO] [stdout] test tenant::isolation::tests::test_create_tenant_config_preserves_fields ... ok [INFO] [stdout] test tenant::isolation::tests::test_create_tenant_config_default_context ... ok [INFO] [stdout] test tenant::isolation::tests::test_apply_tenant_profile_deny_list_is_additive ... ok [INFO] [stdout] test tenant::isolation::tests::test_apply_tenant_profile_sets_model_and_tokens ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_basic_rate_check_passes ... ok [INFO] [stdout] test tenant::isolation::tests::test_apply_tenant_profile_only_narrows_limits ... ok [INFO] [stdout] test tenant::isolation::tests::test_apply_tenant_profile_does_not_loosen_limits ... ok [INFO] [stdout] test tenant::isolation::tests::test_apply_tenant_profile_is_a_noop_without_a_tenant ... ok [INFO] [stdout] test tenant::isolation::tests::test_create_tenant_llm ... ok [INFO] [stdout] test tenant::isolation::tests::test_create_tenant_permissions_empty_tools ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_rate_check_multiple_tokens ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_rate_limit_exceeded ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_rate_limit_exceeded_single_large_request ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_remove_tenant_clears_bucket ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_separate_tenants_have_separate_buckets ... ok [INFO] [stdout] test tenant::isolation::tests::test_create_tenant_permissions_maps_correctly ... ok [INFO] [stdout] test tenant::scheduler::tests::test_active_run_count ... ok [INFO] [stdout] test subagent::filtered_executor::tests::test_multiple_patterns_union ... ok [INFO] [stdout] test tenant::scheduler::tests::test_cancel_nonexistent_run_fails ... ok [INFO] [stdout] test tenant::scheduler::tests::test_run_id_default ... ok [INFO] [stdout] test tenant::scheduler::tests::test_remove_tenant ... ok [INFO] [stdout] test tenant::scheduler::tests::test_remove_nonexistent_fails ... ok [INFO] [stdout] test tenant::scheduler::tests::test_double_register_fails ... ok [INFO] [stdout] test tenant::scheduler::tests::test_get_tenant ... ok [INFO] [stdout] test tenant::scheduler::tests::test_get_nonexistent_tenant_fails ... ok [INFO] [stdout] test tenant::scheduler::tests::test_register_tenant ... ok [INFO] [stdout] test tenant::scheduler::tests::test_run_id_uniqueness ... ok [INFO] [stdout] test tenant::scheduler::tests::test_run_id_display ... ok [INFO] [stdout] test tenant::scheduler::tests::test_schedule_run_for_unregistered_tenant_fails ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_tokens_do_not_exceed_capacity ... ok [INFO] [stdout] test tenant::scheduler::tests::test_cancel_run ... ok [INFO] [stdout] test tenant::scheduler::tests::test_schedule_run ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_success_fires_post_tool_use_not_failure ... ok [INFO] [stdout] test tenant::scheduler::tests::test_list_active_runs ... ok [INFO] [stdout] test tenant::rate_limiter::tests::test_tokens_refill_over_time ... ok [INFO] [stdout] test tenant::scheduler::tests::test_concurrency_limiting ... ok [INFO] [stdout] test plugins::hook_executor::tests::test_hook_timeout_does_not_block_tool ... ok [INFO] [stdout] test skills::executor::tests::test_run_skill_script_timeout ... ok [INFO] [stdout] test coordination::default_spawner::tests::test_connect_with_retry_fails_after_max_attempts ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1615 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 1.64s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/remix_agent-df90f4c988f806d5) [INFO] [stdout] [INFO] [stderr] Running tests/benchmark.rs (/opt/rustwide/target/debug/deps/benchmark-ec2737bcdc8b8a75) [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] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test benchmark_remix_vs_claude_code ... ignored [INFO] [stdout] test tests::test_pct_diff ... ok [INFO] [stdout] test tests::test_parse_claude_result_json_no_result ... ok [INFO] [stdout] test tests::test_format_tokens ... ok [INFO] [stdout] test tests::test_tasks_have_valid_definitions ... ok [INFO] [stdout] test tests::test_truncate_str ... ok [INFO] [stdout] test tests::test_parse_claude_result_json_ndjson ... ok [INFO] [stdout] test tests::test_task_setup_multi_step ... ok [INFO] [stdout] test tests::test_parse_claude_result_json_single_object ... ok [INFO] [stdout] test tests::test_task_setup_file_read ... ok [INFO] [stdout] test tests::test_format_ms ... ok [INFO] [stdout] test tests::test_estimate_cost ... ok [INFO] [stdout] test tests::test_estimate_cost_zero ... ok [INFO] [stdout] test tests::test_task_setup_grep_search ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/cli_integration.rs (/opt/rustwide/target/debug/deps/cli_integration-655198a20dc0b1b0) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test example_benchmark_config_parses ... ok [INFO] [stdout] test test_help_output ... ok [INFO] [stdout] test test_no_subcommand_fails ... ok [INFO] [stdout] test test_version_output ... ok [INFO] [stdout] test test_run_help_output ... ok [INFO] [stdout] test test_run_no_task_fails ... ok [INFO] [stdout] test test_run_no_api_key_fails ... ok [INFO] [stdout] test test_run_missing_config_file_fails ... ok [INFO] [stdout] test continue_without_a_prior_session_reports_an_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Running tests/e2e_tests.rs (/opt/rustwide/target/debug/deps/e2e_tests-5dd4d683cb7fd61c) [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test test_e2e_agents_md_discovery ... ignored [INFO] [stdout] test test_e2e_agents_md_with_local_tools ... ignored [INFO] [stdout] test test_e2e_local_tool_bash ... ignored [INFO] [stdout] test test_e2e_local_tool_read_file ... ignored [INFO] [stdout] test test_e2e_local_tool_write_and_read ... ignored [INFO] [stdout] test test_e2e_max_iterations ... ignored [INFO] [stdout] test test_e2e_navigate_and_describe ... ignored [INFO] [stdout] test test_e2e_output_to_file ... ignored [INFO] [stdout] test test_e2e_permission_bypass_mode ... ignored [INFO] [stdout] test test_e2e_permission_deny_tool ... ignored [INFO] [stdout] test test_e2e_permission_plan_mode_read_only ... ignored [INFO] [stdout] test test_e2e_session_persistence ... ignored [INFO] [stdout] test test_e2e_session_with_bypass_permissions ... ignored [INFO] [stdout] test test_e2e_session_yaml_config ... ignored [INFO] [stdout] test test_e2e_skill_discovery_and_load ... ignored [INFO] [stdout] test test_e2e_skill_resource_read ... ignored [INFO] [stdout] test test_e2e_skill_script_execution ... ignored [INFO] [stdout] test test_e2e_spawn_agent_tool_available ... ignored [INFO] [stdout] test test_e2e_webhook_on_success ... ignored [INFO] [stdout] test test_e2e_yaml_config ... ignored [INFO] [stdout] test test_e2e_bad_config_file ... ok [INFO] [stdout] test test_e2e_missing_task ... ok [INFO] [stdout] test test_e2e_localhost_no_api_key ... ok [INFO] [stdout] test test_e2e_invalid_permission_mode_error ... ok [INFO] [stdout] test test_e2e_missing_api_key ... ok [INFO] [stderr] Running tests/loop_invariants.rs (/opt/rustwide/target/debug/deps/loop_invariants-564be229248ff4f2) [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test unknown_stop_reason_deserializes_and_ends_the_turn ... ok [INFO] [stdout] test self_critique_rejection_holds_invariants ... ok [INFO] [stdout] test nudge_holds_invariants ... ok [INFO] [stdout] test goal_check_on_text_only_holds_invariants ... ok [INFO] [stdout] test plain_tool_loop_holds_invariants ... ok [INFO] [stdout] test goal_check_with_pending_tool_use_holds_invariants ... ok [INFO] [stdout] test truncated_response_is_continued_not_reported_as_success ... ok [INFO] [stdout] test reminder_injection_holds_invariants ... ok [INFO] [stdout] test progressive_compaction_holds_invariants ... ok [INFO] [stdout] test legacy_compaction_holds_invariants ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/plugin_integration.rs (/opt/rustwide/target/debug/deps/plugin_integration-8e39bf6b76b8ba11) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test test_disabled_plugins_returns_empty ... ok [INFO] [stdout] test test_empty_plugin_set_no_overhead ... ok [INFO] [stdout] test test_composite_shutdown_all_calls_backends ... ok [INFO] [stdout] test test_full_chain_shutdown_unwrap ... ok [INFO] [stdout] test test_local_source_discovery ... ok [INFO] [stdout] test test_disabled_local_tools_delegates_all ... ok [INFO] [stdout] test test_full_chain_routes_local_tool ... ok [INFO] [stdout] test test_full_chain_routes_backend_tool ... ok [INFO] [stdout] test test_full_chain_tool_definitions_merge ... ok [INFO] [stdout] test test_discovery_to_agent_injection ... ok [INFO] [stdout] test test_full_chain_routes_skill_tool ... ok [INFO] [stdout] test test_discovery_to_skill_merge_to_load_skill ... ok [INFO] [stdout] test test_multiple_plugins_merge_all_components ... ok [INFO] [stdout] test test_discovery_to_hook_registry_to_execution ... ok [INFO] [stdout] test test_hooks_fire_around_local_tool ... ok [INFO] [stderr] Doc-tests remix_agent_runtime [INFO] [stdout] test test_hooks_fire_around_backend_tool ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [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" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda", kill_on_drop: false }` [INFO] [stdout] d949a962b8c82d8898541b1d7e02d6a14b39143d320f3621fedb66ef84067bda