[INFO] fetching crate zeph-skills 0.21.1...
[INFO] testing zeph-skills-0.21.1 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate zeph-skills 0.21.1 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate zeph-skills 0.21.1
[INFO] finished tweaking crates.io crate zeph-skills 0.21.1
[INFO] tweaked toml for crates.io crate zeph-skills 0.21.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate zeph-skills 0.21.1 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate zeph-skills 0.21.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eeaa3617dc694c8d7c6014cab9849b4b88c6989cb925ae69d79c30b74f266137
[INFO] running `Command { std: "docker" "start" "-a" "eeaa3617dc694c8d7c6014cab9849b4b88c6989cb925ae69d79c30b74f266137", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eeaa3617dc694c8d7c6014cab9849b4b88c6989cb925ae69d79c30b74f266137", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eeaa3617dc694c8d7c6014cab9849b4b88c6989cb925ae69d79c30b74f266137", kill_on_drop: false }`
[INFO] [stdout] eeaa3617dc694c8d7c6014cab9849b4b88c6989cb925ae69d79c30b74f266137
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04cae8843a52a8883c8b355836e5e55deb2207ca829590a8b380e89a4d6f49d6
[INFO] running `Command { std: "docker" "start" "-a" "04cae8843a52a8883c8b355836e5e55deb2207ca829590a8b380e89a4d6f49d6", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling aws-lc-rs v1.16.3
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling rapidhash v4.4.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling cpu-time v1.0.0
[INFO] [stderr]    Compiling metrics v0.24.5
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]    Compiling aws-lc-sys v0.40.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tokio v1.52.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling zeph-skills v0.21.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling zeph-common v0.21.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling zeph-config v0.21.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling reqwest v0.13.3
[INFO] [stderr]    Compiling ollama-rs v0.3.4
[INFO] [stderr]    Compiling zeph-llm v0.21.1
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 07s
[INFO] running `Command { std: "docker" "inspect" "04cae8843a52a8883c8b355836e5e55deb2207ca829590a8b380e89a4d6f49d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04cae8843a52a8883c8b355836e5e55deb2207ca829590a8b380e89a4d6f49d6", kill_on_drop: false }`
[INFO] [stdout] 04cae8843a52a8883c8b355836e5e55deb2207ca829590a8b380e89a4d6f49d6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bf1cd50ffa1971aa564882e3495bc5f062e278018b822731a2df1977aa5dbebc
[INFO] running `Command { std: "docker" "start" "-a" "bf1cd50ffa1971aa564882e3495bc5f062e278018b822731a2df1977aa5dbebc", kill_on_drop: false }`
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling tokio v1.52.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling tracing-test-macro v0.2.6
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling tracing-test v0.2.6
[INFO] [stderr]    Compiling hyper v1.9.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 tokio-stream v0.1.18
[INFO] [stderr]    Compiling zeph-common v0.21.1
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling zeph-config v0.21.1
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling reqwest v0.13.3
[INFO] [stderr]    Compiling ollama-rs v0.3.4
[INFO] [stderr]    Compiling zeph-llm v0.21.1
[INFO] [stderr]    Compiling zeph-skills v0.21.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 48s
[INFO] running `Command { std: "docker" "inspect" "bf1cd50ffa1971aa564882e3495bc5f062e278018b822731a2df1977aa5dbebc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bf1cd50ffa1971aa564882e3495bc5f062e278018b822731a2df1977aa5dbebc", kill_on_drop: false }`
[INFO] [stdout] bf1cd50ffa1971aa564882e3495bc5f062e278018b822731a2df1977aa5dbebc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 88c882dcfdab1e673706187daf4695618d3acc354e7cac4e306e82bd3cf878fe
[INFO] running `Command { std: "docker" "start" "-a" "88c882dcfdab1e673706187daf4695618d3acc354e7cac4e306e82bd3cf878fe", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/zeph_skills-ca5e1958120cb46c)
[INFO] [stdout] 
[INFO] [stdout] running 409 tests
[INFO] [stdout] test bm25::tests::rrf_fuse_both_empty_returns_empty ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_disjoint_lists ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_empty_bm25 ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_empty_embedding ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_respects_limit ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_scores_bounded_zero_to_one ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_single_list_rank0_passes_min_injection_threshold ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_merges_lists ... ok
[INFO] [stdout] test bm25::tests::build_empty ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_rank_matters_first_beats_second ... ok
[INFO] [stdout] test bm25::tests::search_limit_zero_returns_empty ... ok
[INFO] [stdout] test bm25::tests::search_exact_term_ranks_highest ... ok
[INFO] [stdout] test bm25::tests::search_no_match ... ok
[INFO] [stdout] test bm25::tests::search_multi_word_query ... ok
[INFO] [stdout] test bm25::tests::search_scores_positive_for_matching_term ... ok
[INFO] [stdout] test bm25::tests::search_single_doc_hit ... ok
[INFO] [stdout] test bm25::tests::tokenize_all_short_returns_empty ... ok
[INFO] [stdout] test bm25::tests::tokenize_filters_short_tokens ... ok
[INFO] [stdout] test bm25::tests::tokenize_splits_on_non_alphanumeric ... ok
[INFO] [stdout] test bundled::tests::parse_version_missing_returns_none ... ok
[INFO] [stdout] test bundled::tests::marker_with_version_returns_version ... ok
[INFO] [stdout] test bundled::tests::parse_version_from_frontmatter ... ok
[INFO] [stdout] test bundled::tests::marker_empty_file_returns_corrupt ... ok
[INFO] [stdout] test erl::tests::build_reflection_extract_prompt_substitutes ... ok
[INFO] [stdout] test erl::tests::format_heuristics_section_empty ... ok
[INFO] [stdout] test erl::tests::format_heuristics_section_nonempty ... ok
[INFO] [stdout] test erl::tests::reflection_result_deserialize ... ok
[INFO] [stdout] test erl::tests::reflection_result_null_skill_name ... ok
[INFO] [stdout] test erl::tests::text_similarity_disjoint ... ok
[INFO] [stdout] test erl::tests::text_similarity_empty_both ... ok
[INFO] [stdout] test erl::tests::text_similarity_identical ... ok
[INFO] [stdout] test erl::tests::text_similarity_partial ... ok
[INFO] [stdout] test evaluator::tests::composite_score_custom_weights ... ok
[INFO] [stdout] test evaluator::tests::composite_score_default_weights ... ok
[INFO] [stdout] test evaluator::tests::evaluator_fail_closed_on_llm_error ... ok
[INFO] [stdout] test evaluator::tests::evaluator_accept_high_score ... ok
[INFO] [stdout] test evaluator::tests::evaluator_fail_open_on_llm_error ... ok
[INFO] [stdout] test evaluator::tests::evaluator_reject_low_score ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_clamps_out_of_range ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_invalid_returns_err ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_strips_code_fence ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_valid_json ... ok
[INFO] [stdout] test evolution::tests::build_correction_extraction_prompt_substitutes ... ok
[INFO] [stdout] test evolution::tests::build_domain_gate_prompt_substitutes ... ok
[INFO] [stdout] test evolution::tests::build_improvement_prompt_with_feedback ... ok
[INFO] [stdout] test bundled::tests::marker_no_file_returns_no_marker ... ok
[INFO] [stdout] test evolution::tests::build_improvement_prompt_without_feedback ... ok
[INFO] [stdout] test evolution::tests::correction_extraction_result_deserialize_invalid ... ok
[INFO] [stdout] test evolution::tests::correction_extraction_result_deserialize_valid ... ok
[INFO] [stdout] test evolution::tests::correction_extraction_result_missing_optional_field ... ok
[INFO] [stdout] test evolution::tests::domain_gate_result_deserialize ... ok
[INFO] [stdout] test evolution::tests::domain_gate_result_false ... ok
[INFO] [stdout] test evolution::tests::failure_kind_as_str_roundtrip ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_error_exit_nonzero ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_error_permission_denied ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_error_timeout ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_error_unknown ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_both_lists_rank0_normalizes_to_one ... ok
[INFO] [stdout] test evolution::tests::build_reflection_prompt_substitutes ... ok
[INFO] [stdout] test evolution::tests::failure_pattern_serde_roundtrip ... ok
[INFO] [stdout] test evolution::tests::improvement_prompt_includes_section_limit ... ok
[INFO] [stdout] test evolution::tests::skill_evaluation_deserialize ... ok
[INFO] [stdout] test evolution::tests::skill_evaluation_extra_unknown_fields_succeeds ... ok
[INFO] [stdout] test evolution::tests::outcome_str_variants ... ok
[INFO] [stdout] test evolution::tests::skill_evaluation_missing_severity_fails ... ok
[INFO] [stdout] test evolution::tests::skill_evaluation_should_improve_as_string_fails ... ok
[INFO] [stdout] test evolution::tests::skill_evaluation_skip ... ok
[INFO] [stdout] test evolution::tests::skill_name_extraction ... ok
[INFO] [stdout] test evolution::tests::success_rate_all_failures ... ok
[INFO] [stdout] test evolution::tests::success_rate_all_success ... ok
[INFO] [stdout] test evolution::tests::success_rate_mixed ... ok
[INFO] [stdout] test evolution::tests::step_correction_serde_roundtrip ... ok
[INFO] [stdout] test evolution::tests::success_rate_zero_total ... ok
[INFO] [stdout] test evolution::tests::validate_body_sections_at_limit ... ok
[INFO] [stdout] test evolution::tests::validate_body_sections_exceeds_limit ... ok
[INFO] [stdout] test evolution::tests::validate_body_sections_h1_not_counted ... ok
[INFO] [stdout] test evolution::tests::validate_body_sections_no_sections ... ok
[INFO] [stdout] test evolution::tests::validate_body_sections_within_limit ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_absolute_cap ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_empty_original ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_exceeds_limit ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_within_limit ... ok
[INFO] [stdout] test generator::tests::approve_and_save_rejects_existing ... ok
[INFO] [stdout] test generator::tests::build_generation_prompt_includes_category ... ok
[INFO] [stdout] test generator::tests::build_generation_prompt_includes_description ... ok
[INFO] [stdout] test generator::tests::extract_skill_md_plain_passthrough ... ok
[INFO] [stdout] test generator::tests::extract_skill_md_strips_fences ... ok
[INFO] [stdout] test generator::tests::extract_skill_md_strips_yaml_fence ... ok
[INFO] [stdout] test generator::tests::approve_and_save_writes_file ... ok
[INFO] [stdout] test evolution::tests::build_evaluation_prompt_substitutes ... ok
[INFO] [stdout] test bundled::tests::provision_to_empty_dir_installs_all_skills ... ok
[INFO] [stdout] test bundled::tests::is_legacy_bundled_skips_modified_skill ... ok
[INFO] [stdout] test bundled::tests::is_legacy_bundled_matches_identical_content ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_missing_name ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_tool_error_category_key_mappings ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_consecutive_hyphens ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_empty ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_leading_hyphen ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_too_long ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_trailing_hyphen ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_traversal ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_uppercase ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_valid ... ok
[INFO] [stdout] test loader::tests::allowed_tools_empty ... ok
[INFO] [stdout] test loader::tests::allowed_tools_with_parens ... ok
[INFO] [stdout] test loader::tests::block_scalar_as_last_frontmatter_field ... ok
[INFO] [stdout] test loader::tests::block_scalar_continuation_trailing_whitespace_stripped ... ok
[INFO] [stdout] test loader::tests::block_scalar_followed_by_other_fields ... ok
[INFO] [stdout] test loader::tests::block_scalar_followed_by_requires_secrets ... ok
[INFO] [stdout] test loader::tests::block_scalar_single_line_folded ... ok
[INFO] [stdout] test loader::tests::block_scalar_unsupported_key_does_not_populate_allowed_tools ... ok
[INFO] [stdout] test loader::tests::category_consecutive_hyphens_rejected ... ok
[INFO] [stdout] test loader::tests::category_empty_value_produces_none ... ok
[INFO] [stdout] test loader::tests::category_exactly_32_chars_valid ... ok
[INFO] [stdout] test loader::tests::category_leading_hyphen_rejected ... ok
[INFO] [stdout] test loader::tests::category_stored_on_loaded_skill_meta ... ok
[INFO] [stdout] test loader::tests::category_too_long_ignored ... ok
[INFO] [stdout] test loader::tests::category_trailing_hyphen_rejected ... ok
[INFO] [stdout] test loader::tests::category_uppercase_rejected ... ok
[INFO] [stdout] test loader::tests::category_valid_stored_on_meta ... ok
[INFO] [stdout] test loader::tests::category_with_digits_and_hyphens_valid ... ok
[INFO] [stdout] test loader::tests::chomping_indicator_produces_error_and_is_skipped ... ok
[INFO] [stdout] test loader::tests::block_scalar_followed_by_allowed_tools ... ok
[INFO] [stdout] test loader::tests::compatibility_folded_block_scalar ... ok
[INFO] [stdout] test loader::tests::description_at_max_length ... ok
[INFO] [stdout] test loader::tests::description_exceeds_max_length ... ok
[INFO] [stdout] test loader::tests::description_folded_blank_line_becomes_paragraph_break ... ok
[INFO] [stdout] test loader::tests::description_folded_block_scalar ... ok
[INFO] [stdout] test loader::tests::description_literal_block_scalar ... ok
[INFO] [stdout] test loader::tests::empty_block_scalar_produces_none_for_description ... ok
[INFO] [stdout] test loader::tests::empty_compatibility_produces_none ... ok
[INFO] [stdout] test loader::tests::empty_license_produces_none ... ok
[INFO] [stdout] test loader::tests::compatibility_exceeds_max_length ... ok
[INFO] [stdout] test loader::tests::extended_frontmatter ... ok
[INFO] [stdout] test loader::tests::full_skill_with_folded_description ... ok
[INFO] [stdout] test loader::tests::indent_modifier_indicator_produces_error_and_is_skipped ... ok
[INFO] [stdout] test loader::tests::full_skill_with_literal_description ... ok
[INFO] [stdout] test loader::tests::license_literal_block_scalar ... ok
[INFO] [stdout] test loader::tests::invalid_yaml ... ok
[INFO] [stdout] test loader::tests::literal_block_scalar_preserves_relative_indentation ... ok
[INFO] [stdout] test loader::tests::load_body_from_meta ... ok
[INFO] [stdout] test loader::tests::load_skill_meta_only ... ok
[INFO] [stdout] test loader::tests::metadata_flat_still_works ... ok
[INFO] [stdout] test loader::tests::metadata_empty_block ... ok
[INFO] [stdout] test loader::tests::metadata_nested_block ... ok
[INFO] [stdout] test loader::tests::metadata_nested_with_other_fields ... ok
[INFO] [stdout] test loader::tests::metadata_value_with_colon ... ok
[INFO] [stdout] test loader::tests::missing_frontmatter_delimiter ... ok
[INFO] [stdout] test loader::tests::missing_required_fields ... ok
[INFO] [stdout] test loader::tests::name_folded_block_scalar ... ok
[INFO] [stdout] test loader::tests::name_validation_rejects_consecutive_hyphens ... ok
[INFO] [stdout] test loader::tests::name_validation_rejects_dir_mismatch ... ok
[INFO] [stdout] test loader::tests::name_validation_rejects_leading_hyphen ... ok
[INFO] [stdout] test loader::tests::name_validation_rejects_uppercase ... ok
[INFO] [stdout] test loader::tests::name_validation_too_long ... ok
[INFO] [stdout] test loader::tests::nonempty_compatibility_produces_some ... ok
[INFO] [stdout] test loader::tests::pipe_modifier_indicator_produces_error_and_is_skipped ... ok
[INFO] [stdout] test loader::tests::parse_valid_skill ... ok
[INFO] [stdout] test loader::tests::provenance_fields_empty_value_ignored ... ok
[INFO] [stdout] test loader::tests::provenance_fields_optional ... ok
[INFO] [stdout] test loader::tests::provenance_fields_parsed_from_frontmatter ... ok
[INFO] [stdout] test loader::tests::requires_secrets_deprecated_backward_compat ... ok
[INFO] [stdout] test loader::tests::requires_secrets_empty_by_default ... ok
[INFO] [stdout] test loader::tests::requires_secrets_lowercased ... ok
[INFO] [stdout] test loader::tests::requires_secrets_single_value ... ok
[INFO] [stdout] test loader::tests::requires_secrets_trailing_comma ... ok
[INFO] [stdout] test loader::tests::requires_secrets_underscores_unchanged ... ok
[INFO] [stdout] test loader::tests::unclosed_frontmatter ... ok
[INFO] [stdout] test loader::tests::validate_path_within_accepts_legitimate_path ... ok
[INFO] [stdout] test loader::tests::validate_path_within_rejects_symlink_escape ... ok
[INFO] [stdout] test loader::tests::validate_references_broken_link ... ok
[INFO] [stdout] test loader::tests::validate_references_ignores_external_links ... ok
[INFO] [stdout] test loader::tests::validate_references_multiple_links_on_one_line ... ok
[INFO] [stdout] test loader::tests::validate_references_rejects_traversal ... ok
[INFO] [stdout] test loader::tests::validate_references_scripts_and_assets ... ok
[INFO] [stdout] test loader::tests::validate_references_valid ... ok
[INFO] [stdout] test loader::tests::x_requires_secrets_takes_precedence_over_deprecated ... ok
[INFO] [stdout] test loader::tests::x_requires_secrets_parsed_from_frontmatter ... ok
[INFO] [stdout] test manager::tests::install_from_path_already_exists ... ok
[INFO] [stdout] test manager::tests::install_from_path_forged_bundled_stays_quarantined ... ok
[INFO] [stdout] test manager::tests::install_from_path_missing_skill_md ... ok
[INFO] [stdout] test manager::tests::install_from_path_invalid_skill ... ok
[INFO] [stdout] test manager::tests::install_from_path_missing_source_dir ... ok
[INFO] [stdout] test manager::tests::install_from_path_strips_bundled_marker ... ok
[INFO] [stdout] test manager::tests::install_from_path_strips_nested_bundled_marker ... ok
[INFO] [stdout] test manager::tests::install_from_path_success ... ok
[INFO] [stdout] test manager::tests::install_from_url_rejects_bad_scheme ... ok
[INFO] [stdout] test manager::tests::install_from_url_rejects_empty_string ... ok
[INFO] [stdout] test manager::tests::install_from_url_rejects_tab_in_url ... ok
[INFO] [stdout] test manager::tests::install_from_url_rejects_whitespace ... ok
[INFO] [stdout] test manager::tests::list_installed_empty_dir ... ok
[INFO] [stdout] test manager::tests::list_installed_nonexistent_dir ... ok
[INFO] [stdout] test manager::tests::list_installed_populates_requires_secrets ... ok
[INFO] [stdout] test manager::tests::list_installed_skips_dirs_without_skill_md ... ok
[INFO] [stdout] test manager::tests::list_installed_with_skills ... ok
[INFO] [stdout] test manager::tests::new_manager_stores_path ... ok
[INFO] [stdout] test manager::tests::remove_skill_not_found ... ok
[INFO] [stdout] test manager::tests::remove_skill_path_traversal_rejected ... ok
[INFO] [stdout] test manager::tests::remove_skill_success ... ok
[INFO] [stdout] test manager::tests::strip_bundled_markers_empty_dir ... ok
[INFO] [stdout] test manager::tests::strip_bundled_markers_preserves_other_files ... ok
[INFO] [stdout] test manager::tests::strip_bundled_markers_removes_at_multiple_levels ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_injection_in_body ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_valid_skill ... ok
[INFO] [stdout] test manager::tests::verify_all_multiple_skills ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_too_many_sections ... ok
[INFO] [stdout] test manager::tests::verify_all_empty_dir_returns_empty ... ok
[INFO] [stdout] test manager::tests::verify_all_no_stored_hash ... ok
[INFO] [stdout] test manager::tests::verify_all_with_mismatched_hash ... ok
[INFO] [stdout] test manager::tests::verify_skill_not_found ... ok
[INFO] [stdout] test manager::tests::verify_all_with_matching_hash ... ok
[INFO] [stdout] test matcher::tests::backend_debug ... ok
[INFO] [stdout] test matcher::tests::confusability_report_display_clean ... ok
[INFO] [stdout] test matcher::tests::confusability_report_display_with_excluded_skills ... ok
[INFO] [stdout] test matcher::tests::backend_in_memory_match_skills ... ok
[INFO] [stderr] Cloning into '/tmp/.tmpd17Oz9/__tmp_1778831683191352488_16'...
[INFO] [stdout] test matcher::tests::confusability_report_display_with_pairs ... ok
[INFO] [stdout] test manager::tests::verify_skill_success ... ok
[INFO] [stdout] test matcher::tests::confusability_report_display_with_pairs_and_excluded ... ok
[INFO] [stdout] test matcher::tests::confusability_report_empty_when_threshold_high ... ok
[INFO] [stdout] test matcher::tests::confusability_report_finds_similar_pair ... ok
[INFO] [stdout] test matcher::tests::cosine_similarity_different_lengths ... ok
[INFO] [stdout] test matcher::tests::confusability_report_tracks_excluded_skills ... ok
[INFO] [stdout] test matcher::tests::cosine_similarity_parallel ... ok
[INFO] [stdout] test matcher::tests::cosine_similarity_both_zero ... ok
[INFO] [stdout] test matcher::tests::cosine_similarity_empty_vectors ... ok
[INFO] [stdout] test matcher::tests::backend_in_memory_sync_is_noop ... ok
[INFO] [stdout] test matcher::tests::intent_classification_deserialize_without_params ... ok
[INFO] [stdout] test matcher::tests::intent_classification_deserialize ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_injection_in_frontmatter_name ... ok
[INFO] [stdout] test matcher::tests::intent_classification_rejects_missing_required_fields ... ok
[INFO] [stdout] test matcher::tests::match_result_infra_error_on_embed_failure ... ok
[INFO] [stdout] test matcher::tests::intent_classification_json_schema ... ok
[INFO] [stdout] test matcher::tests::match_skills_limit_zero ... ok
[INFO] [stdout] test matcher::tests::match_result_scored_empty_is_not_infra_error ... ok
[INFO] [stdout] test matcher::tests::match_result_scored_nonempty_carries_candidates ... ok
[INFO] [stdout] test matcher::tests::match_skills_preserves_ranking ... ok
[INFO] [stdout] test matcher::tests::match_skills_returns_scores ... ok
[INFO] [stdout] test matcher::tests::matcher_debug ... ok
[INFO] [stdout] test matcher::tests::scored_match_clone_and_debug ... ok
[INFO] [stdout] test matcher::tests::matcher_backend_in_memory_is_not_qdrant ... ok
[INFO] [stdout] test matcher::tests::scored_match_delta_threshold_zero_disables_disambiguation ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_empty_skills ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_returns_all_when_k_larger ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_returns_top_k ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_query_embed_fails ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_single_skill ... ok
[INFO] [stdout] test matcher::tests::test_matcher_new_partial_unsupported_falls_back_to_supported ... ok
[INFO] [stdout] test matcher::tests::test_matcher_new_returns_none_when_all_unsupported ... ok
[INFO] [stdout] test matcher::tests::test_matcher_skips_failed_embeddings ... ok
[INFO] [stdout] test matcher::tests::test_unsupported_emits_single_info_not_per_skill ... ok
[INFO] [stdout] test matcher::tests::two_stage_category_matcher_is_some_with_two_categories ... ok
[INFO] [stdout] test matcher::tests::two_stage_falls_back_when_no_categories ... ok
[INFO] [stdout] test matcher::tests::two_stage_matching_uses_categories ... ok
[INFO] [stdout] test matcher::tests::two_stage_mixed_categorized_and_uncategorized_single_category ... ok
[INFO] [stdout] test matcher::tests::scored_match_delta_at_threshold_boundary ... ok
[INFO] [stdout] test matcher::tests::two_stage_result_count_within_flat_count ... ok
[INFO] [stdout] test matcher::tests::two_stage_singleton_category_goes_to_uncategorized ... ok
[INFO] [stdout] test miner::tests::is_novel_accepts_dissimilar_skill ... ok
[INFO] [stdout] test matcher::tests::test_matcher_new_returns_none_on_failure ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_oversized_body ... ok
[INFO] [stdout] test miner::tests::mining_config_defaults ... ok
[INFO] [stdout] test miner::tests::is_novel_rejects_similar_skill ... ok
[INFO] [stdout] test matcher::tests::scored_match_score_preserved ... ok
[INFO] [stdout] test proactive::tests::classify_docker_with_punctuation ... ok
[INFO] [stdout] test evolution::tests::build_evaluation_prompt_never_panics ... ok
[INFO] [stdout] test proactive::tests::classify_returns_none_for_unknown_domain ... ok
[INFO] [stdout] test proactive::tests::classify_rust_query ... ok
[INFO] [stdout] test proactive::tests::domain_label_to_skill_name ... ok
[INFO] [stdout] test proactive::tests::has_knowledge_empty_registry ... ok
[INFO] [stdout] test proactive::tests::is_excluded_matches_configured_domains ... ok
[INFO] [stdout] test prompt::tests::assets_listed_not_injected ... ok
[INFO] [stdout] test prompt::tests::compact_empty_returns_empty_string ... ok
[INFO] [stdout] test prompt::tests::compact_mode_attribute_present ... ok
[INFO] [stdout] test prompt::tests::compact_multiple_skills ... ok
[INFO] [stdout] test prompt::tests::compact_single_skill_no_path ... ok
[INFO] [stdout] test prompt::tests::empty_skills_returns_empty_string ... ok
[INFO] [stdout] test prompt::tests::format_skills_catalog_empty ... ok
[INFO] [stdout] test prompt::tests::format_skills_catalog_produces_other_skills_tag ... ok
[INFO] [stdout] test prompt::tests::health_attrs_emitted_when_uses_at_threshold ... ok
[INFO] [stdout] test prompt::tests::health_attrs_not_emitted_when_uses_below_threshold ... ok
[INFO] [stdout] test prompt::tests::multiple_skills ... ok
[INFO] [stdout] test prompt::tests::health_attrs_not_emitted_when_skill_not_in_health_map ... ok
[INFO] [stdout] test prompt::tests::no_resources_dir_produces_body_only ... ok
[INFO] [stdout] test prompt::tests::quarantined_skill_gets_wrapped ... ok
[INFO] [stdout] test prompt::tests::quarantined_skill_is_sanitized_and_wrapped ... ok
[INFO] [stdout] test prompt::tests::references_listed_not_injected ... ok
[INFO] [stdout] test prompt::tests::sanitize_case_insensitive ... ok
[INFO] [stdout] test prompt::tests::sanitize_escapes_opening_xml_tags ... ok
[INFO] [stdout] test prompt::tests::sanitize_escapes_xml_tags ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_blocks_ignore_all_previous ... ok
[INFO] [stdout] test matcher::tests::cosine_similarity_within_bounds ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_case_insensitive_marker_detection ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_combines_xml_and_injection ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_leading_whitespace_before_marker ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_multiline_marker ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_im_start_blocked ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_no_markers_unchanged_except_xml ... ok
[INFO] [stdout] test prompt::tests::scripts_listed_not_injected ... ok
[INFO] [stdout] test prompt::tests::single_skill_format ... ok
[INFO] [stdout] test prompt::tests::verified_skill_is_sanitized ... ok
[INFO] [stdout] test prompt::tests::wrap_quarantined_escapes_name ... ok
[INFO] [stdout] test prompt::tests::xml_special_chars_in_name_and_description_are_escaped ... ok
[INFO] [stdout] test registry::tests::empty_directory ... ok
[INFO] [stdout] test registry::tests::get_body_not_found ... ok
[INFO] [stdout] test registry::tests::get_skill_returns_full_skill ... ok
[INFO] [stdout] test registry::tests::into_skills_consumes_registry ... ok
[INFO] [stdout] test prompt::tests::trusted_skill_not_sanitized ... ok
[INFO] [stdout] test prompt::tests::trusted_skill_not_wrapped ... ok
[INFO] [stdout] test registry::tests::lazy_body_loading ... ok
[INFO] [stdout] test registry::tests::missing_directory ... ok
[INFO] [stdout] test registry::tests::load_from_temp_dir ... ok
[INFO] [stdout] test registry::tests::priority_first_path_wins ... ok
[INFO] [stdout] test registry::tests::register_hub_dir_is_idempotent ... ok
[INFO] [stdout] test registry::tests::reload_detects_changes ... ok
[INFO] [stdout] test registry::tests::reload_preserves_hub_dirs ... ok
[INFO] [stdout] test registry::tests::scan_loaded_bundled_skill_with_injection_text_not_flagged ... ok
[INFO] [stdout] test registry::tests::scan_loaded_clean_skills_returns_empty ... ok
[INFO] [stdout] test registry::tests::register_hub_dir_end_to_end ... ok
[INFO] [stdout] test registry::tests::scan_loaded_empty_registry ... ok
[INFO] [stdout] test registry::tests::scan_loaded_detects_injection_in_skill_body ... ok
[INFO] [stdout] test registry::tests::scan_loaded_hub_skill_with_bundled_marker_still_flagged ... ok
[INFO] [stdout] test resource::tests::discover_empty_skill_dir ... ok
[INFO] [stdout] test registry::tests::skips_invalid_skills ... ok
[INFO] [stdout] test resource::tests::discover_with_resources ... ok
[INFO] [stdout] test resource::tests::load_skill_resource_not_found ... ok
[INFO] [stdout] test resource::tests::load_skill_resource_path_traversal ... ok
[INFO] [stdout] test registry::tests::scan_loaded_non_bundled_skill_with_injection_text_is_flagged ... ok
[INFO] [stdout] test rl_head::tests::forward_cache_cleared_after_update ... ok
[INFO] [stdout] test resource::tests::load_skill_resource_valid ... ok
[INFO] [stdout] test rl_head::tests::from_bytes_returns_none_on_corrupt_data ... ok
[INFO] [stdout] test rl_head::tests::blended_score_formula ... ok
[INFO] [stdout] test rl_head::tests::rerank_cold_start_uses_cosine_order ... ok
[INFO] [stdout] test rl_head::tests::rerank_warmup_empty_candidates_returns_empty ... ok
[INFO] [stdout] test rl_head::tests::rerank_post_warmup_winner_cache_used_by_update ... ok
[INFO] [stdout] test rl_head::tests::rerank_warmup_preserves_cosine_ordering_with_multiple_candidates ... ok
[INFO] [stdout] test rl_head::tests::rerank_warmup_single_candidate_populates_last_forward ... ok
[INFO] [stdout] test rl_head::tests::score_returns_value_in_unit_interval ... ok
[INFO] [stdout] test rl_head::tests::update_changes_weights ... ok
[INFO] [stdout] test rl_head::tests::update_count_increments ... ok
[INFO] [stdout] test rl_head::tests::update_without_prior_rerank_returns_false ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_blocked_returns_all ... ok
[INFO] [stdout] test rl_head::tests::warmup_exits_after_updates ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_empty_allowed_tools ... ok
[INFO] [stdout] test rl_head::tests::weights_round_trip_serialization ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_quarantined_allows_safe_tool ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_quarantined_detects_bash ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_quarantined_detects_mcp_suffixed_bash ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_trusted_allows_all ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_verified_allows_all ... ok
[INFO] [stdout] test scanner::tests::clean_body_returns_no_matches ... ok
[INFO] [stdout] test scanner::tests::empty_body_returns_no_matches ... ok
[INFO] [stdout] test scanner::tests::forget_everything_detected ... ok
[INFO] [stdout] test scanner::tests::ignore_instructions_detected ... ok
[INFO] [stdout] test scanner::tests::multiple_patterns_detected ... ok
[INFO] [stdout] test scanner::tests::matched_patterns_does_not_contain_payload_text ... ok
[INFO] [stdout] test scanner::tests::role_override_detected ... ok
[INFO] [stdout] test scanner::tests::system_prompt_leak_descriptive_mention_not_flagged ... ok
[INFO] [stdout] test scanner::tests::system_prompt_leak_extraction_verb_detected ... ok
[INFO] [stdout] test scanner::tests::system_prompt_leak_interrogative_detected ... ok
[INFO] [stdout] test scanner::tests::unicode_cf_bypass_defeated ... ok
[INFO] [stdout] test stem::tests::build_pattern_to_skill_prompt_no_contexts ... ok
[INFO] [stdout] test stem::tests::build_pattern_to_skill_prompt_substitutes ... ok
[INFO] [stdout] test stem::tests::normalize_tool_sequence_compact ... ok
[INFO] [stdout] test scanner::tests::jailbreak_dan_detected ... ok
[INFO] [stdout] test stem::tests::normalize_tool_sequence_empty ... ok
[INFO] [stdout] test stem::tests::sequence_hash_length ... ok
[INFO] [stdout] test stem::tests::should_generate_skill_low_success_rate ... ok
[INFO] [stdout] test stem::tests::should_generate_skill_threshold_met ... ok
[INFO] [stdout] test stem::tests::sequence_hash_deterministic ... ok
[INFO] [stdout] test stem::tests::should_generate_skill_too_few_occurrences ... ok
[INFO] [stdout] test stem::tests::success_rate_partial ... ok
[INFO] [stdout] test stem::tests::success_rate_zero_occurrences ... ok
[INFO] [stdout] test trust::tests::compute_hash ... ok
[INFO] [stdout] test trust::tests::compute_hash_missing_skill_md_returns_error ... ok
[INFO] [stdout] test trust::tests::display ... ok
[INFO] [stdout] test trust::tests::display_file_source ... ok
[INFO] [stdout] test trust::tests::display_local_source ... ok
[INFO] [stdout] test trust::tests::source_default_is_local ... ok
[INFO] [stdout] test trust::tests::source_file_serde_roundtrip ... ok
[INFO] [stdout] test trust::tests::source_serde_roundtrip ... ok
[INFO] [stdout] test trust::tests::compute_hash_different_content ... ok
[INFO] [stdout] test trust::tests::trust_level_reexport_accessible ... ok
[INFO] [stdout] test trust_score::tests::posterior_mean_no_data_is_half ... ok
[INFO] [stdout] test trust_score::tests::posterior_mean_nine_successes ... ok
[INFO] [stdout] test trust_score::tests::posterior_mean_three_quarters ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_always_in_unit_interval ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_balanced_near_half ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_monotone_decreasing_with_failures ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_clamp_at_zero ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_monotone_increasing_with_successes ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_perfect_success_near_one ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_perfect_failure_near_zero ... ok
[INFO] [stdout] test trust_score::tests::rerank_blends_scores ... ok
[INFO] [stdout] test trust_score::tests::rerank_cosine_only_preserves_order ... ok
[INFO] [stdout] test trust_score::tests::rerank_empty_slice_no_panic ... ok
[INFO] [stdout] test trust_score::tests::rerank_single_element_no_panic ... ok
[INFO] [stdout] test trust_score::tests::rerank_trust_only_ignores_cosine ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_no_data_near_prior ... ok
[INFO] [stdout] test watcher::tests::start_with_empty_paths ... ok
[INFO] [stdout] test watcher::tests::start_with_multiple_directories ... ok
[INFO] [stdout] test watcher::tests::start_with_nonexistent_directory_fails ... ok
[INFO] [stdout] test watcher::tests::start_with_valid_directory ... ok
[INFO] [stderr] ssh: Could not resolve hostname github.com: Temporary failure in name resolution
[INFO] [stdout] test manager::tests::install_from_url_accepts_git_at_scheme ... ok
[INFO] [stderr] fatal: Could not read from remote repository.
[INFO] [stderr] 
[INFO] [stderr] Please make sure you have the correct access rights
[INFO] [stderr] and the repository exists.
[INFO] [stdout] test miner::tests::request_delay_zero_rpm_uses_minimum ... ok
[INFO] [stdout] test miner::tests::is_novel_empty_existing ... ok
[INFO] [stdout] test miner::tests::request_delay_25rpm ... ok
[INFO] [stdout] test miner::tests::dry_run_does_not_write_files ... ok
[INFO] [stdout] test watcher::tests::detects_skill_file_change ... ok
[INFO] [stdout] test watcher::tests::ignores_non_skill_file_change ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 409 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.74s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests zeph_skills
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test src/bm25.rs - bm25::Bm25Index::search (line 121) ... ok
[INFO] [stdout] test src/bm25.rs - bm25 (line 23) ... ok
[INFO] [stdout] test src/evaluator.rs - evaluator::SkillEvaluator (line 135) - compile ... ok
[INFO] [stdout] test src/generator.rs - generator::SkillGenerator (line 104) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 39) - compile ... ok
[INFO] [stdout] test src/loader.rs - loader::Skill (line 92) - compile ... ok
[INFO] [stdout] test src/matcher.rs - matcher (line 27) - compile ... ok
[INFO] [stdout] test src/evaluator.rs - evaluator::SkillQualityScore::composite (line 66) ... ok
[INFO] [stdout] test src/proactive.rs - proactive::ProactiveExplorer (line 95) - compile ... ok
[INFO] [stdout] test src/registry.rs - registry (line 18) - compile ... ok
[INFO] [stdout] test src/bm25.rs - bm25::Bm25Index::build (line 62) ... ok
[INFO] [stdout] test src/registry.rs - registry::SkillRegistry::all_meta (line 211) - compile ... ok
[INFO] [stdout] test src/erl.rs - erl (line 19) ... ok
[INFO] [stdout] test src/evolution.rs - evolution::FailureKind (line 26) ... ok
[INFO] [stdout] test src/error.rs - error::SkillError (line 10) ... ok
[INFO] [stdout] test src/stem.rs - stem (line 25) ... ok
[INFO] [stdout] test src/proactive.rs - proactive::DomainLabel::to_skill_name (line 76) ... ok
[INFO] [stdout] test src/watcher.rs - watcher (line 16) - compile ... ok
[INFO] [stdout] test src/trust_score.rs - trust_score (line 23) ... ok
[INFO] [stdout] test src/trust_score.rs - trust_score::posterior_mean (line 79) ... ok
[INFO] [stdout] test src/trust_score.rs - trust_score::rerank (line 108) ... ok
[INFO] [stdout] test src/trust.rs - trust::SkillSource (line 32) ... ok
[INFO] [stdout] test src/trust_score.rs - trust_score::posterior_weight (line 52) ... ok
[INFO] [stdout] test src/scanner.rs - scanner::ScanResult (line 101) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.75s; merged doctests compilation took 1.64s
[INFO] running `Command { std: "docker" "inspect" "88c882dcfdab1e673706187daf4695618d3acc354e7cac4e306e82bd3cf878fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88c882dcfdab1e673706187daf4695618d3acc354e7cac4e306e82bd3cf878fe", kill_on_drop: false }`
[INFO] [stdout] 88c882dcfdab1e673706187daf4695618d3acc354e7cac4e306e82bd3cf878fe
