[INFO] fetching crate packweave 0.4.4... [INFO] testing packweave-0.4.4 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate packweave 0.4.4 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate packweave 0.4.4 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate packweave 0.4.4 [INFO] tweaked toml for crates.io crate packweave 0.4.4 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate packweave 0.4.4 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate packweave 0.4.4 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded assert-json-diff v2.0.2 [INFO] [stderr] Downloaded serial_test_derive v3.4.0 [INFO] [stderr] Downloaded wiremock v0.6.5 [INFO] [stderr] Downloaded serial_test v3.4.0 [INFO] [stderr] Downloaded deadpool-runtime v0.1.4 [INFO] [stderr] Downloaded deadpool v0.12.3 [INFO] [stderr] Downloaded sdd v3.0.10 [INFO] [stderr] Downloaded scc v2.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9f3a11ccb9900f5a49d7a252bfc61074278bc97b3b08eda513dcff82320fc320 [INFO] running `Command { std: "docker" "start" "-a" "9f3a11ccb9900f5a49d7a252bfc61074278bc97b3b08eda513dcff82320fc320", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9f3a11ccb9900f5a49d7a252bfc61074278bc97b3b08eda513dcff82320fc320", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9f3a11ccb9900f5a49d7a252bfc61074278bc97b3b08eda513dcff82320fc320", kill_on_drop: false }` [INFO] [stdout] 9f3a11ccb9900f5a49d7a252bfc61074278bc97b3b08eda513dcff82320fc320 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5d8ba1bdf04bceec273dd132c120a870f20c75aca1a15a2af3afcd2d7672866a [INFO] running `Command { std: "docker" "start" "-a" "5d8ba1bdf04bceec273dd132c120a870f20c75aca1a15a2af3afcd2d7672866a", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling jiff v0.2.23 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling env_filter v1.0.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling env_logger v0.11.9 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling packweave v0.4.4 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.97s [INFO] running `Command { std: "docker" "inspect" "5d8ba1bdf04bceec273dd132c120a870f20c75aca1a15a2af3afcd2d7672866a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d8ba1bdf04bceec273dd132c120a870f20c75aca1a15a2af3afcd2d7672866a", kill_on_drop: false }` [INFO] [stdout] 5d8ba1bdf04bceec273dd132c120a870f20c75aca1a15a2af3afcd2d7672866a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 816fd740e9e8660081b10c6b53dbdd0493a2065d6ee7f1cd89049c0c161c2534 [INFO] running `Command { std: "docker" "start" "-a" "816fd740e9e8660081b10c6b53dbdd0493a2065d6ee7f1cd89049c0c161c2534", kill_on_drop: false }` [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling env_filter v1.0.0 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling env_logger v0.11.9 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling serial_test v3.4.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 deadpool v0.12.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [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 wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling packweave v0.4.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_auth.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_publish.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_diagnose.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/lifecycle.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_dry_run.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_sync.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_hooks.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_use.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_init.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_update.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_install.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_remove.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_list.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_tap.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_profile.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `assert_cmd::prelude` [INFO] [stdout] --> tests/e2e/cli_search.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use assert_cmd::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_prompt`, `with_command`, `with_hook`, and `with_dependency` are never used [INFO] [stdout] --> tests/e2e/helpers.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 107 | impl FixturePack { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn with_prompt(mut self, content: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn with_command(mut self, name: &str, content: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn with_hook(mut self, event: &str, entries: &[(&str, &str)]) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn with_dependency(mut self, name: &str, version_req: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 49.56s [INFO] running `Command { std: "docker" "inspect" "816fd740e9e8660081b10c6b53dbdd0493a2065d6ee7f1cd89049c0c161c2534", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "816fd740e9e8660081b10c6b53dbdd0493a2065d6ee7f1cd89049c0c161c2534", kill_on_drop: false }` [INFO] [stdout] 816fd740e9e8660081b10c6b53dbdd0493a2065d6ee7f1cd89049c0c161c2534 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] e39916ee5ead776efcb71b44dfd3f2488957ca69f9123fb1a14565b8865aca4c [INFO] running `Command { std: "docker" "start" "-a" "e39916ee5ead776efcb71b44dfd3f2488957ca69f9123fb1a14565b8865aca4c", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_auth.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_publish.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_diagnose.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/lifecycle.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_dry_run.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_sync.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_hooks.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_use.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_init.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_update.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_install.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_remove.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_list.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_tap.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_profile.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `assert_cmd::prelude` [INFO] [stderr] --> tests/e2e/cli_search.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use assert_cmd::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `with_prompt`, `with_command`, `with_hook`, and `with_dependency` are never used [INFO] [stderr] --> tests/e2e/helpers.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 107 | impl FixturePack { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 134 | pub fn with_prompt(mut self, content: &str) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub fn with_command(mut self, name: &str, content: &str) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 165 | pub fn with_hook(mut self, event: &str, entries: &[(&str, &str)]) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 177 | pub fn with_dependency(mut self, name: &str, version_req: &str) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `packweave` (test "e2e") generated 17 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/packweave-b5de8a854440358c) [INFO] [stdout] running 214 tests [INFO] [stdout] test adapters::claude_code::tests::idempotent_prompt_apply ... ok [INFO] [stdout] test adapters::claude_code::tests::deep_merge_objects ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_and_remove_servers ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_prompts_is_surgical_with_multiple_blocks ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_servers_omits_env_key_when_server_has_no_env_vars ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_servers_rejects_non_object_config ... ok [INFO] [stdout] test core::config::tests::add_tap_duplicate_errors ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_and_remove_servers ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_servers_omits_env_key_when_server_has_no_env_vars ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_and_remove_prompts ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_servers_writes_env_vars_as_references ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_servers_writes_env_vars_as_references ... ok [INFO] [stdout] test core::config::tests::add_tap_valid ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_servers_rejects_non_object_config ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_settings_preserves_user_modified_key ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_settings_and_remove_unchanged ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_drops_root_when_project_manifest_missing_and_no_orphans ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_retains_root_when_project_manifest_missing_but_claude_md_has_orphans ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_retains_root_when_project_manifest_missing_but_mcp_json_has_orphans ... ok [INFO] [stdout] test core::config::tests::default_config_values ... ok [INFO] [stdout] test core::config::tests::list_taps_returns_registered ... ok [INFO] [stdout] test core::config::tests::remove_tap_not_found ... ok [INFO] [stdout] test core::config::tests::validate_tap_name_invalid_formats ... ok [INFO] [stdout] test core::config::tests::roundtrip_toml ... ok [INFO] [stdout] test core::config::tests::remove_tap_valid ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_and_remove_prompts ... ok [INFO] [stdout] test core::config::tests::validate_tap_name_valid_formats ... ok [INFO] [stdout] test core::conflict::tests::both_sides_empty_tools_no_conflict ... ok [INFO] [stdout] test core::config::tests::roundtrip_toml_with_taps ... ok [INFO] [stdout] test adapters::gemini_cli::tests::remove_prompts_is_surgical_with_multiple_blocks ... ok [INFO] [stdout] test core::conflict::tests::detects_tool_conflict_between_different_servers ... ok [INFO] [stdout] test core::conflict::tests::empty_tools_list_produces_no_conflict ... ok [INFO] [stdout] test core::conflict::tests::multiple_conflicts_across_multiple_packs ... ok [INFO] [stdout] test core::conflict::tests::no_conflict_when_tools_do_not_overlap ... ok [INFO] [stdout] test core::conflict::tests::same_pack_name_skips_self_conflict ... ok [INFO] [stdout] test core::conflict::tests::same_server_name_different_packs_no_tool_conflict ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_accepts_subdomains ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_detects_custom_github ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_detects_default ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_rejects_substring_match ... ok [INFO] [stdout] test core::conflict::tests::no_conflict_when_no_installed_packs ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_rejects_non_github ... ok [INFO] [stdout] test core::credentials::tests::resolve_reads_file ... ok [INFO] [stdout] test core::credentials::tests::reject_symlink_credentials ... ok [INFO] [stdout] test core::credentials::tests::resolve_returns_none_when_absent ... ok [INFO] [stdout] test core::credentials::tests::validate_token_accepts_valid_pat ... ok [INFO] [stdout] test core::credentials::tests::validate_token_rejects_control_chars ... ok [INFO] [stdout] test core::credentials::tests::store_sets_permissions_atomically ... ok [INFO] [stdout] test core::credentials::tests::resolve_trims_whitespace ... ok [INFO] [stdout] test core::credentials::tests::validate_token_rejects_empty ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_settings_and_remove_unchanged ... ok [INFO] [stdout] test core::credentials::tests::validate_token_rejects_newlines ... ok [INFO] [stdout] test core::lockfile::tests::lock_and_unlock ... ok [INFO] [stdout] test core::lockfile::tests::old_lockfile_without_source_deserializes ... ok [INFO] [stdout] test core::mcp_registry::tests::deserialize_full_response ... ok [INFO] [stdout] test core::credentials::tests::store_and_remove_roundtrip ... ok [INFO] [stdout] test core::mcp_registry::tests::deserialize_minimal_response ... ok [INFO] [stdout] test core::lockfile::tests::roundtrip_toml ... ok [INFO] [stdout] test core::mcp_registry::tests::deserialize_real_api_response ... ok [INFO] [stdout] test core::pack::tests::accept_http_server_with_url ... ok [INFO] [stdout] test core::pack::tests::allow_bearer_env_var_in_authorization_header ... ok [INFO] [stdout] test core::pack::tests::allow_env_var_for_x_api_key ... ok [INFO] [stdout] test core::pack::tests::allow_env_var_in_bearer_prefix ... ok [INFO] [stdout] test core::pack::tests::allow_env_var_reference_for_authorization ... ok [INFO] [stdout] test core::pack::tests::allow_safe_static_headers ... ok [INFO] [stdout] test core::pack::tests::allow_short_non_secret_custom_header ... ok [INFO] [stdout] test core::pack::tests::contains_env_var_reference_works ... ok [INFO] [stdout] test core::credentials::tests::resolve_prefers_env_var ... ok [INFO] [stdout] test core::pack::tests::has_hooks_returns_false_without_hooks ... ok [INFO] [stdout] test core::pack::tests::has_hooks_returns_true_with_claude_code_hooks ... ok [INFO] [stdout] test core::pack::tests::hooks_for_cli_parses_entries ... ok [INFO] [stdout] test core::pack::tests::is_env_var_reference_works ... ok [INFO] [stdout] test core::pack::tests::hooks_for_cli_returns_none_for_unsupported_cli ... ok [INFO] [stdout] test core::pack::tests::looks_like_secret_detects_patterns ... ok [INFO] [stdout] test core::pack::tests::parse_http_server_with_headers ... ok [INFO] [stdout] test core::pack::tests::parse_minimal_pack ... ok [INFO] [stdout] test core::pack::tests::parse_pack_with_servers ... ok [INFO] [stdout] test core::pack::tests::reject_bearer_token_in_custom_header ... ok [INFO] [stdout] test core::pack::tests::reject_basic_auth_in_custom_header ... ok [INFO] [stdout] test core::pack::tests::reject_duplicate_servers ... ok [INFO] [stdout] test core::pack::tests::reject_empty_description ... ok [INFO] [stdout] test core::pack::tests::reject_http_server_without_url ... ok [INFO] [stdout] test core::pack::tests::reject_invalid_name ... ok [INFO] [stdout] test core::profile::tests::validate_profile_name_rejects_traversal ... ok [INFO] [stdout] test core::pack::tests::reject_long_random_string_in_custom_header ... ok [INFO] [stdout] test core::publish::tests::check_version_not_published_different_version_ok ... ok [INFO] [stdout] test core::publish::tests::check_version_not_published_existing_version_fails ... ok [INFO] [stdout] test core::publish::tests::check_version_not_published_new_pack_ok ... ok [INFO] [stdout] test core::pack::tests::reject_plaintext_authorization_header ... ok [INFO] [stdout] test core::pack::tests::reject_plaintext_x_api_key_header ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_includes_readme ... ok [INFO] [stdout] test core::pack::tests::reject_stdio_server_without_command ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_rejects_evil_subdomain ... ok [INFO] [stdout] test core::pack::tests::targets_default_to_true ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_requires_pack_toml ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_accepts_github_com ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_custom_org ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_skips_hidden_and_unknown ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_default ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_includes_expected_dirs ... ok [INFO] [stdout] test core::pack::tests::x_custom_header_not_in_safe_list ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_non_github_fails ... ok [INFO] [stdout] test core::profile::tests::add_and_remove_packs ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_too_short_fails ... ok [INFO] [stdout] test core::publish::tests::resolve_api_base_default ... ok [INFO] [stdout] test core::profile::tests::list_all_and_delete_with_temp_dir ... ok [INFO] [stdout] test core::profile::tests::validate_profile_name_accepts_valid ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_official_first ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_rejects_http ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_falls_through_to_tap ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_includes_nested_dirs ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_not_found ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_official_registry_error_is_fatal ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_tap_registry_error_is_ignored ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_three_registries_skip_erroring_tap ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_version_falls_through ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_version_official_registry_error_is_fatal ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_version_tap_registry_error_is_ignored ... ok [INFO] [stdout] test core::registry::tests::composite_publish_delegates_to_first_registry ... ok [INFO] [stdout] test core::registry::tests::composite_search_merges_deduplicates ... ok [INFO] [stdout] test core::registry::tests::composite_search_official_description_wins ... ok [INFO] [stdout] test core::registry::tests::composite_search_tap_error_is_ignored ... ok [INFO] [stdout] test core::registry::tests::latest_version ... ok [INFO] [stdout] test core::registry::tests::latest_version_no_releases ... ok [INFO] [stdout] test core::registry::tests::mock_registry_fetch_version ... ok [INFO] [stdout] test core::registry::tests::composite_search_official_error_is_fatal ... ok [INFO] [stdout] test core::registry::tests::new_strips_old_index_json_suffix ... ok [INFO] [stdout] test core::registry::tests::mock_registry_search ... ok [INFO] [stdout] test core::registry::tests::new_strips_trailing_slash ... ok [INFO] [stdout] test core::registry::tests::new_strips_index_json_with_trailing_slash ... ok [INFO] [stdout] test core::registry::tests::trusted_host_matches_github_raw ... ok [INFO] [stdout] test core::registry::tests::trusted_host_case_insensitive ... ok [INFO] [stdout] test core::registry::tests::trusted_host_matches_with_port ... ok [INFO] [stdout] test core::registry::tests::trusted_host_rejects_evil_subdomain ... ok [INFO] [stdout] test core::registry::tests::trusted_host_rejects_localhost ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_rejects_large_file ... ok [INFO] [stdout] test core::registry::tests::trusted_host_rejects_non_github ... ok [INFO] [stdout] test core::resolver::tests::already_satisfied_transitive ... ok [INFO] [stdout] test core::resolver::tests::circular_dependency_returns_error ... ok [INFO] [stdout] test core::resolver::tests::plan_install_already_satisfied ... ok [INFO] [stdout] test core::resolver::tests::diamond_dependency_version_conflict ... ok [INFO] [stdout] test core::resolver::tests::plan_install_latest ... ok [INFO] [stdout] test core::resolver::tests::deep_transitive_chain ... ok [INFO] [stdout] test core::resolver::tests::plan_install_not_found ... ok [INFO] [stdout] test core::resolver::tests::plan_install_upgrades_within_range ... ok [INFO] [stdout] test core::resolver::tests::plan_install_with_version_req ... ok [INFO] [stdout] test core::resolver::tests::plan_remove ... ok [INFO] [stdout] test core::resolver::tests::plan_remove_not_installed ... ok [INFO] [stdout] test core::resolver::tests::transitive_dependency_installed ... ok [INFO] [stdout] test core::store::tests::equivalent_paths_backslash_produce_same_hash ... ok [INFO] [stdout] test core::store::tests::equivalent_paths_produce_same_hash ... ok [INFO] [stdout] test core::store::tests::evict_local_does_not_affect_registry ... ok [INFO] [stdout] test core::registry::tests::trusted_host_matches_github_api ... ok [INFO] [stdout] test core::store::tests::evict_registry_does_not_affect_local ... ok [INFO] [stdout] test core::store::tests::fetch_rejects_release_without_pack_toml ... ok [INFO] [stdout] test core::store::tests::list_cached_local_only ... ok [INFO] [stdout] test core::store::tests::list_cached_empty_store ... ok [INFO] [stdout] test core::store::tests::list_cached_mixed_sources ... ok [INFO] [stdout] test core::store::tests::normalize_path_backslash_dot_segments ... ok [INFO] [stdout] test core::store::tests::normalize_path_dotdot_past_root ... ok [INFO] [stdout] test core::store::tests::list_cached_multiple_local_paths_both_returned ... ok [INFO] [stdout] test core::store::tests::normalize_path_double_separators ... ok [INFO] [stdout] test core::store::tests::normalize_path_mixed_separators ... ok [INFO] [stdout] test core::store::tests::list_cached_registry_only ... ok [INFO] [stdout] test core::store::tests::normalize_path_relative_dotdot_at_start ... ok [INFO] [stdout] test core::store::tests::normalize_path_only_dot ... ok [INFO] [stdout] test core::store::tests::normalize_path_relative_with_dot ... ok [INFO] [stdout] test core::store::tests::normalize_path_preserves_clean_absolute ... ok [INFO] [stdout] test core::store::tests::normalize_path_empty_becomes_dot ... ok [INFO] [stdout] test core::store::tests::normalize_path_pure_backslash_path ... ok [INFO] [stdout] test core::store::tests::normalize_path_resolves_dotdot_segments ... ok [INFO] [stdout] test core::store::tests::normalize_path_trailing_slashes ... ok [INFO] [stdout] test core::store::tests::normalize_path_root ... ok [INFO] [stdout] test core::store::tests::normalize_path_windows_backslashes ... ok [INFO] [stdout] test core::store::tests::normalize_path_windows_double_backslash ... ok [INFO] [stdout] test core::store::tests::list_cached_sort_order_deterministic ... ok [INFO] [stdout] test core::store::tests::normalize_path_removes_dot_segments ... ok [INFO] [stdout] test core::store::tests::normalize_path_removes_trailing_slash ... ok [INFO] [stdout] test core::store::tests::pack_dir_registry_and_local_are_different ... ok [INFO] [stdout] test core::store::tests::split_local_suffix_preserves_invalid_suffix ... ok [INFO] [stdout] test core::store::tests::split_local_suffix_preserves_plain_version ... ok [INFO] [stdout] test core::store::tests::split_local_suffix_strips_valid_suffix ... ok [INFO] [stdout] test core::store::tests::stable_hash_dirty_path_equals_clean ... ok [INFO] [stdout] test core::store::tests::stable_hash_is_pinned ... ok [INFO] [stdout] test core::store::tests::version_dir_name_different_paths_produce_different_hashes ... ok [INFO] [stdout] test core::store::tests::version_dir_name_local_includes_hash_suffix ... ok [INFO] [stdout] test core::store::tests::version_dir_name_registry_has_no_suffix ... ok [INFO] [stdout] test core::store::tests::write_files_empty_map_succeeds ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_absolute_path ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_at_latest ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_path_traversal ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_plain_name ... ok [INFO] [stdout] test core::store::tests::write_files_creates_expected_files ... ok [INFO] [stdout] test core::update::tests::major_version_req_major_1 ... ok [INFO] [stdout] test core::use_profile::tests::diff_empty_to_populated ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_with_version ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_at_prefix ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_scoped_name_at_latest ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_backslash_absolute ... ok [INFO] [stdout] test core::update::tests::major_version_req_major_0 ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_hyphenated_name ... ok [INFO] [stdout] test core::use_profile::tests::diff_mixed_add_remove_and_keep ... ok [INFO] [stdout] test core::use_profile::tests::diff_identical_profiles_is_empty ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_windows_drive_prefix ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_invalid_version_req ... ok [INFO] [stdout] test core::use_profile::tests::diff_version_change_produces_remove_and_add ... ok [INFO] [stdout] test error::tests::pack_not_available_error_message ... ok [INFO] [stdout] test error::tests::invalid_version_req_error_message ... ok [INFO] [stdout] test core::use_profile::tests::diff_populated_to_empty ... ok [INFO] [stdout] test core::use_profile::tests::dry_run_switch_does_not_call_adapters_or_registry ... ok [INFO] [stdout] test error::tests::manifest_mismatch_error_message ... ok [INFO] [stdout] test core::registry::tests::composite_publish_no_registries - should panic ... ok [INFO] [stdout] test core::use_profile::tests::load_or_fetch_git_source_errors_when_not_in_store ... ok [INFO] [stdout] test core::use_profile::tests::load_or_fetch_local_source_errors_when_not_in_store ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 214 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.10s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/weave-e44d8903ad4d5dd7) [INFO] [stdout] [INFO] [stdout] running 235 tests [INFO] [stdout] test adapters::claude_code::tests::apply_and_remove_servers ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_and_remove_prompts ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_servers_rejects_non_object_config ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_servers_writes_env_vars_as_references ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_servers_omits_env_key_when_server_has_no_env_vars ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_prompts_is_surgical_with_multiple_blocks ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_settings_and_remove_unchanged ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_and_remove_prompts ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_and_remove_servers ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_servers_rejects_non_object_config ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_servers_omits_env_key_when_server_has_no_env_vars ... ok [INFO] [stdout] test adapters::claude_code::tests::apply_settings_preserves_user_modified_key ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_drops_root_when_project_manifest_missing_and_no_orphans ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_retains_root_when_project_manifest_missing_but_mcp_json_has_orphans ... ok [INFO] [stdout] test adapters::claude_code::tests::deep_merge_objects ... ok [INFO] [stdout] test cli::diagnose::tests::human_format_with_drift ... ok [INFO] [stdout] test cli::diagnose::tests::json_format_roundtrip ... ok [INFO] [stdout] test cli::diagnose::tests::pack_targets_adapter_mapping ... ok [INFO] [stdout] test cli::diagnose::tests::human_format_empty_profile ... ok [INFO] [stdout] test cli::diagnose::tests::report_all_ok ... ok [INFO] [stdout] test adapters::claude_code::tests::idempotent_prompt_apply ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_servers_writes_env_vars_as_references ... ok [INFO] [stdout] test adapters::gemini_cli::tests::remove_prompts_is_surgical_with_multiple_blocks ... ok [INFO] [stdout] test adapters::gemini_cli::tests::apply_settings_and_remove_unchanged ... ok [INFO] [stdout] test cli::diagnose::tests::report_drifted ... ok [INFO] [stdout] test adapters::claude_code::tests::remove_retains_root_when_project_manifest_missing_but_claude_md_has_orphans ... ok [INFO] [stdout] test cli::diagnose::tests::report_missing_pack ... ok [INFO] [stdout] test cli::diagnose::tests::report_skipped_uninstalled_adapter ... ok [INFO] [stdout] test cli::search::tests::valid_targets_are_accepted ... ok [INFO] [stdout] test cli::style::tests::styled_accepts_owned_string ... ok [INFO] [stdout] test cli::diagnose::tests::report_not_targeted ... ok [INFO] [stdout] test cli::list::tests::format_targets_all ... ok [INFO] [stdout] test cli::diagnose::tests::report_empty_profile ... ok [INFO] [stdout] test cli::list::tests::format_targets_none ... ok [INFO] [stdout] test cli::search::tests::invalid_target_is_rejected ... ok [INFO] [stdout] test cli::list::tests::format_targets_subset ... ok [INFO] [stdout] test core::config::tests::add_tap_valid ... ok [INFO] [stdout] test cli::style::tests::styled_borrows_str_slice ... ok [INFO] [stdout] test cli::style::tests::styled_is_plain_text_when_stdout_not_tty ... ok [INFO] [stdout] test core::config::tests::default_config_values ... ok [INFO] [stdout] test cli::diagnose::tests::human_format_no_issues ... ok [INFO] [stdout] test cli::sync::tests::empty_lockfile_is_noop ... ok [INFO] [stdout] test core::config::tests::roundtrip_toml_with_taps ... ok [INFO] [stdout] test core::config::tests::validate_tap_name_invalid_formats ... ok [INFO] [stdout] test core::config::tests::list_taps_returns_registered ... ok [INFO] [stdout] test core::config::tests::add_tap_duplicate_errors ... ok [INFO] [stdout] test core::config::tests::remove_tap_not_found ... ok [INFO] [stdout] test core::config::tests::remove_tap_valid ... ok [INFO] [stdout] test core::config::tests::roundtrip_toml ... ok [INFO] [stdout] test core::config::tests::validate_tap_name_valid_formats ... ok [INFO] [stdout] test core::conflict::tests::both_sides_empty_tools_no_conflict ... ok [INFO] [stdout] test core::conflict::tests::empty_tools_list_produces_no_conflict ... ok [INFO] [stdout] test core::conflict::tests::multiple_conflicts_across_multiple_packs ... ok [INFO] [stdout] test core::conflict::tests::same_pack_name_skips_self_conflict ... ok [INFO] [stdout] test core::conflict::tests::detects_tool_conflict_between_different_servers ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_accepts_subdomains ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_detects_custom_github ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_detects_default ... ok [INFO] [stdout] test core::conflict::tests::same_server_name_different_packs_no_tool_conflict ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_rejects_non_github ... ok [INFO] [stdout] test core::credentials::tests::is_github_registry_rejects_substring_match ... ok [INFO] [stdout] test core::conflict::tests::no_conflict_when_no_installed_packs ... ok [INFO] [stdout] test core::conflict::tests::no_conflict_when_tools_do_not_overlap ... ok [INFO] [stdout] test cli::search::tests::mcp_and_target_are_mutually_exclusive ... ok [INFO] [stdout] test core::credentials::tests::reject_symlink_credentials ... ok [INFO] [stdout] test core::credentials::tests::resolve_prefers_env_var ... ok [INFO] [stdout] test core::credentials::tests::validate_token_rejects_control_chars ... ok [INFO] [stdout] test core::credentials::tests::validate_token_accepts_valid_pat ... ok [INFO] [stdout] test core::credentials::tests::validate_token_rejects_empty ... ok [INFO] [stdout] test core::credentials::tests::validate_token_rejects_newlines ... ok [INFO] [stdout] test core::credentials::tests::store_and_remove_roundtrip ... ok [INFO] [stdout] test core::lockfile::tests::roundtrip_toml ... ok [INFO] [stdout] test core::lockfile::tests::lock_and_unlock ... ok [INFO] [stdout] test core::mcp_registry::tests::deserialize_minimal_response ... ok [INFO] [stdout] test core::credentials::tests::resolve_returns_none_when_absent ... ok [INFO] [stdout] test core::mcp_registry::tests::deserialize_real_api_response ... ok [INFO] [stdout] test core::mcp_registry::tests::deserialize_full_response ... ok [INFO] [stdout] test core::pack::tests::accept_http_server_with_url ... ok [INFO] [stdout] test core::lockfile::tests::old_lockfile_without_source_deserializes ... ok [INFO] [stdout] test core::pack::tests::allow_env_var_for_x_api_key ... ok [INFO] [stdout] test core::credentials::tests::resolve_trims_whitespace ... ok [INFO] [stdout] test core::pack::tests::allow_bearer_env_var_in_authorization_header ... ok [INFO] [stdout] test core::pack::tests::allow_env_var_in_bearer_prefix ... ok [INFO] [stdout] test core::pack::tests::allow_safe_static_headers ... ok [INFO] [stdout] test core::pack::tests::allow_env_var_reference_for_authorization ... ok [INFO] [stdout] test core::credentials::tests::store_sets_permissions_atomically ... ok [INFO] [stdout] test core::pack::tests::allow_short_non_secret_custom_header ... ok [INFO] [stdout] test core::credentials::tests::resolve_reads_file ... ok [INFO] [stdout] test core::pack::tests::contains_env_var_reference_works ... ok [INFO] [stdout] test core::pack::tests::has_hooks_returns_false_without_hooks ... ok [INFO] [stdout] test core::pack::tests::has_hooks_returns_true_with_claude_code_hooks ... ok [INFO] [stdout] test core::pack::tests::is_env_var_reference_works ... ok [INFO] [stdout] test core::pack::tests::hooks_for_cli_returns_none_for_unsupported_cli ... ok [INFO] [stdout] test core::pack::tests::parse_http_server_with_headers ... ok [INFO] [stdout] test core::pack::tests::hooks_for_cli_parses_entries ... ok [INFO] [stdout] test core::pack::tests::reject_duplicate_servers ... ok [INFO] [stdout] test core::pack::tests::targets_default_to_true ... ok [INFO] [stdout] test core::pack::tests::reject_bearer_token_in_custom_header ... ok [INFO] [stdout] test core::pack::tests::parse_minimal_pack ... ok [INFO] [stdout] test core::pack::tests::reject_basic_auth_in_custom_header ... ok [INFO] [stdout] test core::pack::tests::reject_invalid_name ... ok [INFO] [stdout] test core::pack::tests::reject_empty_description ... ok [INFO] [stdout] test core::pack::tests::reject_long_random_string_in_custom_header ... ok [INFO] [stdout] test core::pack::tests::reject_http_server_without_url ... ok [INFO] [stdout] test core::pack::tests::reject_plaintext_x_api_key_header ... ok [INFO] [stdout] test core::pack::tests::reject_plaintext_authorization_header ... ok [INFO] [stdout] test core::pack::tests::looks_like_secret_detects_patterns ... ok [INFO] [stdout] test core::pack::tests::parse_pack_with_servers ... ok [INFO] [stdout] test core::pack::tests::reject_stdio_server_without_command ... ok [INFO] [stdout] test core::profile::tests::validate_profile_name_rejects_traversal ... ok [INFO] [stdout] test core::publish::tests::check_version_not_published_new_pack_ok ... ok [INFO] [stdout] test core::publish::tests::check_version_not_published_existing_version_fails ... ok [INFO] [stdout] test core::pack::tests::x_custom_header_not_in_safe_list ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_rejects_evil_subdomain ... ok [INFO] [stdout] test core::profile::tests::add_and_remove_packs ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_custom_org ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_default ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_rejects_http ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_skips_hidden_and_unknown ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_too_short_fails ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_falls_through_to_tap ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_requires_pack_toml ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_tap_registry_error_is_ignored ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_includes_expected_dirs ... ok [INFO] [stdout] test core::profile::tests::list_all_and_delete_with_temp_dir ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_three_registries_skip_erroring_tap ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_not_found ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_version_falls_through ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_version_official_registry_error_is_fatal ... ok [INFO] [stdout] test core::profile::tests::validate_profile_name_accepts_valid ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_official_first ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_metadata_official_registry_error_is_fatal ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_includes_nested_dirs ... ok [INFO] [stdout] test core::publish::tests::resolve_api_base_default ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_non_github_fails ... ok [INFO] [stdout] test core::publish::tests::parse_github_registry_url_accepts_github_com ... ok [INFO] [stdout] test core::registry::tests::composite_fetch_version_tap_registry_error_is_ignored ... ok [INFO] [stdout] test core::publish::tests::check_version_not_published_different_version_ok ... ok [INFO] [stdout] test core::registry::tests::composite_publish_delegates_to_first_registry ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_includes_readme ... ok [INFO] [stdout] test core::publish::tests::collect_pack_files_rejects_large_file ... ok [INFO] [stdout] test core::registry::tests::composite_search_merges_deduplicates ... ok [INFO] [stdout] test core::registry::tests::composite_search_official_description_wins ... ok [INFO] [stdout] test core::registry::tests::composite_search_official_error_is_fatal ... ok [INFO] [stdout] test core::registry::tests::composite_search_tap_error_is_ignored ... ok [INFO] [stdout] test core::registry::tests::latest_version_no_releases ... ok [INFO] [stdout] test core::registry::tests::latest_version ... ok [INFO] [stdout] test core::registry::tests::mock_registry_fetch_version ... ok [INFO] [stdout] test core::registry::tests::mock_registry_search ... ok [INFO] [stdout] test core::registry::tests::new_strips_index_json_with_trailing_slash ... ok [INFO] [stdout] test core::registry::tests::new_strips_old_index_json_suffix ... ok [INFO] [stdout] test core::registry::tests::new_strips_trailing_slash ... ok [INFO] [stdout] test core::registry::tests::trusted_host_matches_github_api ... ok [INFO] [stdout] test core::registry::tests::trusted_host_matches_github_raw ... ok [INFO] [stdout] test core::registry::tests::trusted_host_rejects_evil_subdomain ... ok [INFO] [stdout] test core::registry::tests::trusted_host_matches_with_port ... ok [INFO] [stdout] test core::registry::tests::trusted_host_case_insensitive ... ok [INFO] [stdout] test core::registry::tests::trusted_host_rejects_localhost ... ok [INFO] [stdout] test core::registry::tests::trusted_host_rejects_non_github ... ok [INFO] [stdout] test core::resolver::tests::already_satisfied_transitive ... ok [INFO] [stdout] test core::resolver::tests::circular_dependency_returns_error ... ok [INFO] [stdout] test core::resolver::tests::deep_transitive_chain ... ok [INFO] [stdout] test core::resolver::tests::plan_install_already_satisfied ... ok [INFO] [stdout] test core::resolver::tests::diamond_dependency_version_conflict ... ok [INFO] [stdout] test core::resolver::tests::plan_install_not_found ... ok [INFO] [stdout] test core::resolver::tests::plan_install_upgrades_within_range ... ok [INFO] [stdout] test core::resolver::tests::plan_install_latest ... ok [INFO] [stdout] test core::store::tests::equivalent_paths_produce_same_hash ... ok [INFO] [stdout] test core::resolver::tests::plan_install_with_version_req ... ok [INFO] [stdout] test core::store::tests::fetch_rejects_release_without_pack_toml ... ok [INFO] [stdout] test core::resolver::tests::plan_remove_not_installed ... ok [INFO] [stdout] test core::resolver::tests::transitive_dependency_installed ... ok [INFO] [stdout] test core::resolver::tests::plan_remove ... ok [INFO] [stdout] test core::store::tests::equivalent_paths_backslash_produce_same_hash ... ok [INFO] [stdout] test core::store::tests::list_cached_mixed_sources ... ok [INFO] [stdout] test core::store::tests::list_cached_multiple_local_paths_both_returned ... ok [INFO] [stdout] test core::store::tests::list_cached_empty_store ... ok [INFO] [stdout] test core::store::tests::normalize_path_backslash_dot_segments ... ok [INFO] [stdout] test core::store::tests::normalize_path_double_separators ... ok [INFO] [stdout] test core::store::tests::normalize_path_dotdot_past_root ... ok [INFO] [stdout] test core::store::tests::normalize_path_empty_becomes_dot ... ok [INFO] [stdout] test core::store::tests::normalize_path_only_dot ... ok [INFO] [stdout] test core::store::tests::normalize_path_preserves_clean_absolute ... ok [INFO] [stdout] test core::store::tests::normalize_path_pure_backslash_path ... ok [INFO] [stdout] test core::store::tests::normalize_path_relative_dotdot_at_start ... ok [INFO] [stdout] test core::store::tests::normalize_path_relative_with_dot ... ok [INFO] [stdout] test core::store::tests::normalize_path_removes_trailing_slash ... ok [INFO] [stdout] test core::store::tests::normalize_path_mixed_separators ... ok [INFO] [stdout] test core::store::tests::normalize_path_root ... ok [INFO] [stdout] test core::store::tests::normalize_path_trailing_slashes ... ok [INFO] [stdout] test core::store::tests::normalize_path_windows_backslashes ... ok [INFO] [stdout] test core::store::tests::normalize_path_removes_dot_segments ... ok [INFO] [stdout] test core::store::tests::normalize_path_windows_double_backslash ... ok [INFO] [stdout] test core::store::tests::pack_dir_registry_and_local_are_different ... ok [INFO] [stdout] test core::store::tests::split_local_suffix_preserves_invalid_suffix ... ok [INFO] [stdout] test core::store::tests::normalize_path_resolves_dotdot_segments ... ok [INFO] [stdout] test core::store::tests::split_local_suffix_preserves_plain_version ... ok [INFO] [stdout] test core::store::tests::stable_hash_is_pinned ... ok [INFO] [stdout] test core::store::tests::version_dir_name_different_paths_produce_different_hashes ... ok [INFO] [stdout] test core::store::tests::version_dir_name_local_includes_hash_suffix ... ok [INFO] [stdout] test core::store::tests::version_dir_name_registry_has_no_suffix ... ok [INFO] [stdout] test core::store::tests::split_local_suffix_strips_valid_suffix ... ok [INFO] [stdout] test core::store::tests::stable_hash_dirty_path_equals_clean ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_at_prefix ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_hyphenated_name ... ok [INFO] [stdout] test core::store::tests::list_cached_sort_order_deterministic ... ok [INFO] [stdout] test core::store::tests::write_files_creates_expected_files ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_invalid_version_req ... ok [INFO] [stdout] test core::update::tests::major_version_req_major_0 ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_plain_name ... ok [INFO] [stdout] test core::update::tests::major_version_req_major_1 ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_at_latest ... ok [INFO] [stdout] test core::store::tests::write_files_empty_map_succeeds ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_absolute_path ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_windows_drive_prefix ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_backslash_absolute ... ok [INFO] [stdout] test core::use_profile::tests::diff_mixed_add_remove_and_keep ... ok [INFO] [stdout] test core::use_profile::tests::diff_version_change_produces_remove_and_add ... ok [INFO] [stdout] test core::use_profile::tests::diff_populated_to_empty ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_with_version ... ok [INFO] [stdout] test core::store::tests::evict_registry_does_not_affect_local ... ok [INFO] [stdout] test core::use_profile::tests::dry_run_switch_does_not_call_adapters_or_registry ... ok [INFO] [stdout] test core::store::tests::write_files_rejects_path_traversal ... ok [INFO] [stdout] test core::update::tests::parse_pack_spec_scoped_name_at_latest ... ok [INFO] [stdout] test core::use_profile::tests::diff_identical_profiles_is_empty ... ok [INFO] [stdout] test core::use_profile::tests::diff_empty_to_populated ... ok [INFO] [stdout] test core::store::tests::list_cached_local_only ... ok [INFO] [stdout] test error::tests::invalid_version_req_error_message ... ok [INFO] [stdout] test error::tests::manifest_mismatch_error_message ... ok [INFO] [stdout] test core::use_profile::tests::load_or_fetch_git_source_errors_when_not_in_store ... ok [INFO] [stdout] test core::use_profile::tests::load_or_fetch_local_source_errors_when_not_in_store ... ok [INFO] [stdout] test error::tests::pack_not_available_error_message ... ok [INFO] [stdout] test core::store::tests::evict_local_does_not_affect_registry ... ok [INFO] [stdout] test core::store::tests::list_cached_registry_only ... ok [INFO] [stderr] Running tests/claude_code_adapter.rs (/opt/rustwide/target/debug/deps/claude_code_adapter-6aef649ba06129d9) [INFO] [stdout] test core::registry::tests::composite_publish_no_registries - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 235 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 52 tests [INFO] [stdout] test apply_http_server_without_url_returns_error ... ok [INFO] [stdout] test apply_does_not_write_project_scope_without_flag ... ok [INFO] [stdout] test apply_rejects_collision_with_user_server ... ok [INFO] [stdout] test apply_hooks_rejects_non_object_hooks_value ... ok [INFO] [stdout] test apply_rejects_malformed_claude_json ... ok [INFO] [stdout] test apply_http_server_writes_url ... ok [INFO] [stdout] test apply_servers_adds_to_claude_json ... ok [INFO] [stdout] test apply_persists_manifest_after_each_step_even_if_later_step_fails ... ok [INFO] [stdout] test apply_rejects_non_object_mcp_servers ... ok [INFO] [stdout] test apply_commands_multiple_files ... ok [INFO] [stdout] test apply_prompts_appends_to_claude_md ... ok [INFO] [stdout] test apply_prompt_appends_to_existing_claude_md ... ok [INFO] [stdout] test apply_commands_writes_files ... ok [INFO] [stdout] test apply_skips_pack_not_targeting_claude ... ok [INFO] [stdout] test apply_settings_is_idempotent ... ok [INFO] [stdout] test apply_servers_idempotent ... ok [INFO] [stdout] test apply_writes_manifest ... ok [INFO] [stdout] test has_hooks_detects_extension_hooks ... ok [INFO] [stdout] test apply_two_packs_conflict_on_same_server_name ... ok [INFO] [stdout] test diagnose_reports_server_missing_from_claude_json ... ok [INFO] [stdout] test apply_skips_hooks_when_not_allowed ... ok [INFO] [stdout] test diagnose_reports_prompt_block_missing_from_claude_md ... ok [INFO] [stdout] test apply_settings_merges_keys ... ok [INFO] [stdout] test diagnose_returns_no_issues_on_clean_state ... ok [INFO] [stdout] test apply_settings_preserves_existing_keys ... ok [INFO] [stdout] test diagnose_reports_command_file_missing ... ok [INFO] [stdout] test apply_project_scope_is_idempotent ... ok [INFO] [stdout] test apply_servers_project_scope ... ok [INFO] [stdout] test remove_cleans_up_hooks ... ok [INFO] [stdout] test remove_hooks_cleans_untagged_entries_migration ... ok [INFO] [stdout] test mid_apply_failure_records_project_root_and_remove_cleans_up ... ok [INFO] [stdout] test remove_deletes_settings_key_added_by_pack ... ok [INFO] [stdout] test remove_http_server_cleans_up ... ok [INFO] [stdout] test remove_commands_cleans_up ... ok [INFO] [stdout] test remove_unknown_pack_is_a_no_op ... ok [INFO] [stdout] test multi_pack_hooks_different_events ... ok [INFO] [stdout] test remove_prompts_cleans_section ... ok [INFO] [stdout] test remove_servers_project_scope ... ok [INFO] [stdout] test remove_servers_cleans_up_claude_json ... ok [INFO] [stdout] test remove_settings_restores_original ... ok [INFO] [stdout] test remove_cleans_up_mixed_legacy_and_tagged_hooks ... ok [INFO] [stdout] test removing_all_packs_removes_hooks_key ... ok [INFO] [stdout] test remove_prompt_is_surgical_multiple_packs ... ok [INFO] [stdout] test remove_commands_is_surgical ... ok [INFO] [stdout] test removing_one_pack_hooks_preserves_others ... ok [INFO] [stdout] test apply_servers_writes_args ... ok [INFO] [stdout] test two_packs_contribute_hooks_to_same_event ... ok [INFO] [stdout] test remove_is_surgical_leaves_other_servers ... ok [INFO] [stdout] test apply_hooks_when_allowed ... ok [INFO] [stdout] test apply_hooks_is_idempotent ... ok [INFO] [stdout] test apply_preserves_existing_user_servers ... ok [INFO] [stdout] test apply_prompts_idempotent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running tests/codex_adapter.rs (/opt/rustwide/target/debug/deps/codex_adapter-2a41f142924355bd) [INFO] [stdout] [INFO] [stdout] running 39 tests [INFO] [stdout] test apply_http_server_without_url_returns_error ... ok [INFO] [stdout] test apply_appends_prompt_to_agents_md ... ok [INFO] [stdout] test apply_does_not_create_project_config_when_no_project_scope ... ok [INFO] [stdout] test apply_omits_env_when_server_has_no_env_vars ... ok [INFO] [stdout] test apply_rejects_collision_with_user_server ... ok [INFO] [stdout] test apply_http_server_writes_headers ... ok [INFO] [stdout] test apply_skips_pack_not_targeting_codex ... ok [INFO] [stdout] test apply_preserves_existing_user_servers ... ok [INFO] [stdout] test apply_preserves_comments_in_config_toml ... ok [INFO] [stdout] test apply_writes_server_to_config_toml ... ok [INFO] [stdout] test apply_skills_tracks_manifest ... ok [INFO] [stdout] test apply_installs_skill_files ... ok [INFO] [stdout] test apply_skill_content_is_preserved ... ok [INFO] [stdout] test apply_writes_multiple_servers ... ok [INFO] [stdout] test apply_prompt_is_idempotent ... ok [INFO] [stdout] test apply_twice_is_idempotent_for_servers ... ok [INFO] [stdout] test diagnose_reports_missing_server ... ok [INFO] [stdout] test remove_deletes_prompt_block_from_agents_md ... ok [INFO] [stdout] test apply_sets_enabled_true ... ok [INFO] [stderr] Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-ebdc0de369e0c3ec) [INFO] [stdout] test apply_preserves_comments_between_existing_sections ... ok [INFO] [stdout] test apply_writes_manifest ... ok [INFO] [stdout] test apply_writes_url_for_http_transport ... ok [INFO] [stdout] test apply_writes_env_vars_as_references ... ok [INFO] [stdout] test apply_writes_server_args ... ok [INFO] [stdout] test apply_writes_server_to_project_config_toml_when_project_scope_active ... ok [INFO] [stdout] test apply_merges_settings_into_config_toml ... ok [INFO] [stdout] test remove_http_server_cleans_up ... ok [INFO] [stdout] test remove_removes_from_project_config_toml ... ok [INFO] [stdout] test remove_is_surgical_leaves_other_servers ... ok [INFO] [stdout] test diagnose_returns_no_issues_for_clean_state ... ok [INFO] [stdout] test diagnose_reports_missing_skill_file ... ok [INFO] [stdout] test remove_preserves_comments_in_config_toml ... ok [INFO] [stdout] test remove_deletes_skill_files ... ok [INFO] [stdout] test remove_unknown_pack_is_a_no_op ... ok [INFO] [stdout] test remove_clears_manifest_entry ... ok [INFO] [stdout] test remove_deletes_server_from_config_toml ... ok [INFO] [stdout] test remove_prompt_leaves_other_blocks ... ok [INFO] [stdout] test remove_restores_settings_from_config_toml ... ok [INFO] [stdout] test settings_mcp_servers_key_is_ignored ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 87 tests [INFO] [stdout] test e2e::cli_auth::auth_login_empty_token_fails ... ok [INFO] [stdout] test e2e::cli_auth::auth_login_stores_token ... ok [INFO] [stdout] test e2e::cli_auth::auth_login_then_status_shows_authenticated ... ok [INFO] [stdout] test e2e::cli_auth::auth_login_via_stdin ... ok [INFO] [stdout] test e2e::cli_auth::auth_status_not_authenticated ... ok [INFO] [stdout] test e2e::cli_auth::auth_env_var_overrides_file ... ok [INFO] [stdout] test e2e::cli_auth::auth_logout_when_not_authenticated ... ok [INFO] [stdout] test e2e::cli_diagnose::diagnose_empty_profile ... ok [INFO] [stdout] test e2e::cli_auth::auth_status_empty_weave_token_env ... ok [INFO] [stdout] test e2e::cli_auth::auth_logout_removes_credentials ... ok [INFO] [stdout] test e2e::cli_auth::auth_login_overwrite ... ok [INFO] [stdout] test e2e::cli_dry_run::install_local_dry_run_does_not_write_to_store ... ok [INFO] [stdout] test e2e::cli_hooks::install_hooks_applied_with_flag ... ok [INFO] [stdout] test e2e::cli_hooks::list_shows_hooks_badge ... ok [INFO] [stdout] test e2e::cli_hooks::install_hooks_skipped_without_flag ... ok [INFO] [stdout] test e2e::cli_hooks::remove_cleans_up_hooks ... ok [INFO] [stdout] test e2e::cli_init::init_default_name ... ok [INFO] [stdout] test e2e::cli_init::init_scaffolds_pack_directory ... ok [INFO] [stdout] test e2e::cli_hooks::use_applies_hooks_with_flag ... ok [INFO] [stdout] test e2e::cli_hooks::sync_applies_hooks_with_flag ... ok [INFO] [stdout] test e2e::cli_diagnose::diagnose_detects_drift ... ok [INFO] [stdout] test e2e::cli_auth::auth_login_then_search_works ... ok [INFO] [stdout] test e2e::cli_diagnose::diagnose_json_detects_drift ... ok [INFO] [stdout] test e2e::cli_install::install_http_server_writes_url ... ok [INFO] [stdout] test e2e::cli_install::install_local_pack ... ok [INFO] [stdout] test e2e::cli_install::install_local_pack_prompt_applied ... ok [INFO] [stdout] test e2e::cli_diagnose::diagnose_json_output ... ok [INFO] [stdout] test e2e::cli_install::install_local_pack_refresh_eviction_failure ... ok [INFO] [stdout] test e2e::cli_dry_run::remove_dry_run_shows_preview_without_removing ... ok [INFO] [stdout] test e2e::cli_diagnose::diagnose_healthy_config ... ok [INFO] [stdout] test e2e::cli_dry_run::install_dry_run_does_not_affect_lockfile ... ok [INFO] [stdout] test e2e::cli_install::install_local_pack_refresh ... ok [INFO] [stdout] test e2e::cli_dry_run::sync_dry_run_shows_preview_without_applying ... ok [INFO] [stdout] test e2e::cli_dry_run::install_dry_run_shows_preview_without_writing ... ok [INFO] [stdout] test e2e::cli_install::install_single_pack ... ok [INFO] [stdout] test e2e::cli_install::install_nonexistent_pack ... ok [INFO] [stdout] test e2e::cli_profile::profile_create_and_list ... ok [INFO] [stdout] test e2e::cli_install::install_http_server_preserves_headers ... ok [INFO] [stdout] test e2e::cli_install::install_writes_lockfile ... ok [INFO] [stdout] test e2e::cli_profile::profile_delete ... ok [INFO] [stdout] test e2e::cli_profile::profile_delete_default_fails ... ok [INFO] [stdout] test e2e::cli_list::list_empty ... ok [INFO] [stdout] test e2e::cli_profile::profile_delete_active_fails ... ok [INFO] [stdout] test e2e::cli_publish::publish_accepts_explicit_path ... ok [INFO] [stdout] test e2e::cli_profile::profile_create_duplicate_fails ... ok [INFO] [stdout] test e2e::cli_profile::profile_list_shows_default ... ok [INFO] [stdout] test e2e::cli_publish::publish_validates_pack_toml ... ok [INFO] [stdout] test e2e::cli_remove::remove_not_installed ... ok [INFO] [stdout] test e2e::cli_publish::publish_requires_auth ... ok [INFO] [stdout] test e2e::cli_diagnose::diagnose_skips_uninstalled_adapters ... ok [INFO] [stdout] test e2e::cli_search::search_invalid_target ... ok [INFO] [stdout] test e2e::cli_install::install_with_project_flag_writes_mcp_json ... ok [INFO] [stdout] test e2e::cli_sync::sync_empty_profile_noop ... ok [INFO] [stdout] test e2e::cli_profile::profile_add_pack ... ok [INFO] [stdout] test e2e::cli_remove::remove_cleans_project_scope_from_different_directory ... ok [INFO] [stdout] test e2e::cli_install::remove_http_server_cleans_up ... ok [INFO] [stdout] test e2e::cli_tap::tap_add_duplicate_fails ... ok [INFO] [stdout] test e2e::cli_install::install_idempotent ... ok [INFO] [stdout] test e2e::cli_tap::tap_add_registers_tap ... ok [INFO] [stdout] test e2e::cli_search::search_finds_matching_pack ... ok [INFO] [stdout] test e2e::cli_sync::sync_idempotent ... ok [INFO] [stdout] test e2e::cli_install::install_writes_claude_config ... ok [INFO] [stdout] test e2e::cli_tap::tap_remove_nonexistent_fails ... ok [INFO] [stdout] test e2e::cli_list::list_after_install ... ok [INFO] [stdout] test e2e::cli_tap::tap_list_empty ... ok [INFO] [stdout] test e2e::cli_tap::tap_remove_deregisters ... ok [INFO] [stdout] test e2e::cli_use::use_already_active_noop ... ok [INFO] [stdout] test e2e::cli_tap::tap_list_shows_registered ... ok [INFO] [stdout] test e2e::cli_use::use_nonexistent_profile_fails ... ok [INFO] [stdout] test e2e::cli_use::use_prints_active_profile ... ok [INFO] [stdout] test e2e::cli_install::install_already_installed ... ok [INFO] [stdout] test e2e::cli_publish::publish_detects_duplicate_version ... ok [INFO] [stdout] test e2e::cli_search::search_no_results ... ok [INFO] [stdout] test e2e::cli_remove::remove_installed_pack ... ok [INFO] [stdout] test e2e::cli_install::install_with_at_prefix ... ok [INFO] [stdout] test e2e::cli_install::install_without_project_flag_does_not_write_mcp_json ... ok [INFO] [stdout] test e2e::cli_sync::sync_reapplies_installed_pack ... ok [INFO] [stdout] test e2e::cli_update::update_already_latest ... ok [INFO] [stdout] test e2e::lifecycle::golden_path ... ok [INFO] [stdout] test e2e::cli_sync::sync_recovers_from_drift ... ok [INFO] [stdout] test e2e::cli_auth::auth_token_not_sent_to_taps ... ok [INFO] [stdout] test e2e::cli_remove::remove_preserves_other_packs ... ok [INFO] [stdout] test e2e::cli_use::use_switch_profile ... ok [INFO] [stdout] test e2e::cli_update::update_to_newer_version ... ok [INFO] [stdout] test e2e::cli_use::use_switch_removes_old_packs ... ok [INFO] [stdout] test e2e::cli_use::use_switch_applies_new_packs ... ok [INFO] [stdout] test e2e::cli_tap::tap_install_from_tap ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 87 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.81s [INFO] [stdout] [INFO] [stderr] Running tests/gemini_adapter.rs (/opt/rustwide/target/debug/deps/gemini_adapter-18a51bc8181767d0) [INFO] [stdout] [INFO] [stdout] running 41 tests [INFO] [stdout] test apply_http_server_without_url_returns_error ... ok [INFO] [stdout] test apply_does_not_write_project_scope_when_dir_absent ... ok [INFO] [stdout] test apply_http_server_writes_url ... ok [INFO] [stdout] test apply_persists_manifest_after_each_step_even_if_later_step_fails ... ok [INFO] [stdout] test apply_omits_env_key_when_server_has_no_env_vars ... ok [INFO] [stdout] test apply_rejects_malformed_settings_json ... ok [INFO] [stdout] test apply_prompt_appends_to_existing_gemini_md ... ok [INFO] [stdout] test apply_merges_settings_fragment_into_settings_json ... ok [INFO] [stdout] test apply_rejects_non_object_mcp_servers ... ok [INFO] [stdout] test apply_preserves_existing_user_servers ... ok [INFO] [stdout] test apply_two_packs_conflict_on_same_server_name ... ok [INFO] [stdout] test apply_writes_env_vars_as_references ... ok [INFO] [stdout] test apply_writes_multiple_servers ... ok [INFO] [stdout] test apply_skips_pack_not_targeting_gemini ... ok [INFO] [stdout] test apply_writes_manifest ... ok [INFO] [stdout] test apply_twice_same_manifest_state ... ok [INFO] [stdout] test apply_rejects_collision_with_user_server ... ok [INFO] [stdout] test apply_prompt_is_idempotent ... ok [INFO] [stdout] test apply_project_scope_is_idempotent ... ok [INFO] [stdout] test apply_writes_server_to_settings_json ... ok [INFO] [stdout] test remove_deletes_server_from_settings_json ... ok [INFO] [stdout] test apply_twice_is_idempotent_for_servers ... ok [INFO] [stdout] test apply_settings_is_idempotent ... ok [INFO] [stdout] test remove_cleans_up_project_scope_servers ... ok [INFO] [stdout] test remove_http_server_cleans_up ... ok [INFO] [stdout] test diagnose_returns_no_issues_for_clean_state ... ok [INFO] [stdout] test remove_unknown_pack_is_a_no_op ... ok [INFO] [stdout] test apply_settings_preserves_existing_keys ... ok [INFO] [stdout] test apply_writes_prompt_block_to_gemini_md ... ok [INFO] [stdout] test apply_writes_server_args ... ok [INFO] [stdout] test diagnose_reports_prompt_block_missing_from_gemini_md ... ok [INFO] [stdout] test diagnose_reports_server_missing_from_settings_json ... ok [INFO] [stdout] test remove_after_missing_settings_file_is_graceful ... ok [INFO] [stdout] test remove_preserves_user_managed_keys_in_settings_json ... ok [INFO] [stdout] test apply_writes_server_to_project_settings_json_when_project_dir_exists ... ok [INFO] [stdout] test remove_restores_settings_key_to_original_value ... ok [INFO] [stdout] test remove_strips_prompt_block_from_gemini_md ... ok [INFO] [stdout] test remove_prompt_is_surgical_multiple_packs ... ok [INFO] [stdout] test remove_clears_manifest_entry ... ok [INFO] [stdout] test remove_deletes_settings_key_added_by_pack ... ok [INFO] [stdout] test remove_is_surgical_leaves_other_servers ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running tests/init.rs (/opt/rustwide/target/debug/deps/init-f7fecca0fe194c49) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test init_rejects_uppercase_name ... ok [INFO] [stdout] test init_fails_when_file_exists_with_target_name ... ok [INFO] [stdout] test init_fails_when_directory_already_exists ... ok [INFO] [stdout] test init_no_args_fails_when_pack_toml_already_exists ... ok [INFO] [stdout] test init_creates_all_expected_files ... ok [INFO] [stdout] test init_no_args_fails_when_readme_already_exists ... ok [INFO] [stdout] test generated_pack_toml_parses_via_pack_from_toml ... ok [INFO] [stdout] test init_rejects_underscore_name ... ok [INFO] [stdout] test init_no_args_uses_current_directory_name ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] Doc-tests packweave [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" "e39916ee5ead776efcb71b44dfd3f2488957ca69f9123fb1a14565b8865aca4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e39916ee5ead776efcb71b44dfd3f2488957ca69f9123fb1a14565b8865aca4c", kill_on_drop: false }` [INFO] [stdout] e39916ee5ead776efcb71b44dfd3f2488957ca69f9123fb1a14565b8865aca4c