[INFO] fetching crate zeph-skills 0.22.5...
[INFO] testing zeph-skills-0.22.5 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate zeph-skills 0.22.5 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate zeph-skills 0.22.5
[INFO] finished tweaking crates.io crate zeph-skills 0.22.5
[INFO] tweaked toml for crates.io crate zeph-skills 0.22.5 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate zeph-skills 0.22.5 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate zeph-skills 0.22.5 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zeph-db v0.22.5
[INFO] [stderr]   Downloaded etcetera v0.11.0
[INFO] [stderr]   Downloaded cpu-time v1.0.0
[INFO] [stderr]   Downloaded zerovec-derive v0.11.4
[INFO] [stderr]   Downloaded zeph-common v0.22.5
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.13
[INFO] [stderr]   Downloaded zeph-scheduler v0.22.5
[INFO] [stderr]   Downloaded sqlx-macros v0.9.0
[INFO] [stderr]   Downloaded sqlx-macros-core v0.9.0
[INFO] [stderr]   Downloaded icu_provider v2.3.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.14
[INFO] [stderr]   Downloaded sqlx-sqlite v0.9.0
[INFO] [stderr]   Downloaded sqlx-mysql v0.9.0
[INFO] [stderr]   Downloaded zeph-durable v0.22.5
[INFO] [stderr]   Downloaded zerovec v0.11.7
[INFO] [stderr]   Downloaded sqlx-core v0.9.0
[INFO] [stderr]   Downloaded sqlx-postgres v0.9.0
[INFO] [stderr]   Downloaded hkdf v0.13.0
[INFO] [stderr]   Downloaded blake3 v1.8.6
[INFO] [stderr]   Downloaded sqlx v0.9.0
[INFO] [stderr]   Downloaded zeph-config v0.22.5
[INFO] [stderr]   Downloaded zeph-memory v0.22.5
[INFO] [stderr]   Downloaded cron v0.17.0
[INFO] [stderr]   Downloaded zeph-llm v0.22.5
[INFO] [stderr]   Downloaded rand_distr v0.6.0
[INFO] [stderr]   Downloaded ollama-rs v0.3.6
[INFO] [stderr]   Downloaded fancy-regex v0.17.0
[INFO] [stderr]   Downloaded tonic-prost v0.14.6
[INFO] [stderr]   Downloaded tonic v0.14.6
[INFO] [stderr]   Downloaded prost-types v0.14.4
[INFO] [stderr]   Downloaded prost-derive v0.14.4
[INFO] [stderr]   Downloaded qdrant-client v1.19.0
[INFO] [stderr]   Downloaded prost v0.14.4
[INFO] [stderr]   Downloaded tracing-test-macro v0.2.6
[INFO] [stderr]   Downloaded unsafe-libyaml-norway v0.2.15
[INFO] [stderr]   Downloaded lru v0.18.2
[INFO] [stderr]   Downloaded serde_norway v0.9.42
[INFO] [stderr]   Downloaded tracing-test v0.2.6
[INFO] [stderr]   Downloaded tiktoken-rs v0.12.0
[INFO] [stderr]   Downloaded notify-debouncer-mini v0.7.0
[INFO] [stderr]   Downloaded fsevent-sys v4.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16
[INFO] running `Command { std: "docker" "start" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling cc v1.2.67
[INFO] [stderr]    Compiling inotify-sys v0.1.8
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling rapidhash v4.5.1
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling chacha20 v0.10.2
[INFO] [stderr]    Compiling cpu-time v1.0.0
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling metrics v0.24.6
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling inotify v0.11.5
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]    Compiling unsafe-libyaml-norway v0.2.15
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling zeph-skills v0.22.5 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling blake3 v1.8.6
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling uuid v1.24.1
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling toml_edit v0.25.13+spec-1.1.0
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zerovec-derive v0.11.4
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling serde_norway v0.9.42
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling zerovec v0.11.7
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_provider v2.3.0
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling zeph-common v0.22.5
[INFO] [stderr]    Compiling zeph-config v0.22.5
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling rustls-webpki v0.103.14
[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.4
[INFO] [stderr]    Compiling ollama-rs v0.3.6
[INFO] [stderr]    Compiling zeph-llm v0.22.5
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 35s
[INFO] running `Command { std: "docker" "inspect" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling tracing-test-macro v0.2.6
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling ordered-float v5.3.0
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tracing-test v0.2.6
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling zeph-common v0.22.5
[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 rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling zeph-config v0.22.5
[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.4
[INFO] [stderr]    Compiling ollama-rs v0.3.6
[INFO] [stderr]    Compiling zeph-llm v0.22.5
[INFO] [stderr]    Compiling zeph-skills v0.22.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/zeph_skills-46ae71211a685c49)
[INFO] [stdout] 
[INFO] [stdout] running 578 tests
[INFO] [stdout] test bm25::tests::rrf_fuse_both_empty_returns_empty ... ok
[INFO] [stdout] test bm25::tests::linear_fuse_bm25_helps_lexical_keyword_match ... ok
[INFO] [stdout] test bm25::tests::linear_fuse_empty_both_returns_empty ... ok
[INFO] [stdout] test bm25::tests::linear_fuse_negative_cosine_clamped_to_zero ... ok
[INFO] [stdout] test bm25::tests::linear_fuse_bm25_only_returns_midpoint_score ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_both_lists_rank0_normalizes_to_one ... ok
[INFO] [stdout] test bm25::tests::build_empty ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_empty_embedding ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_disjoint_lists ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_merges_lists ... ok
[INFO] [stdout] test bm25::tests::tokenize_all_short_returns_empty ... ok
[INFO] [stdout] test bm25::tests::search_no_match ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_rank_matters_first_beats_second ... ok
[INFO] [stdout] test bm25::tests::tokenize_splits_on_non_alphanumeric ... ok
[INFO] [stdout] test bm25::tests::linear_fuse_scores_bounded_zero_to_one ... 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 bundled::tests::marker_no_file_returns_no_marker ... ok
[INFO] [stdout] test bundled::tests::marker_empty_file_returns_corrupt ... ok
[INFO] [stdout] test bundled::tests::parse_version_from_frontmatter ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_single_list_rank0_passes_min_injection_threshold ... ok
[INFO] [stdout] test bm25::tests::rrf_fuse_empty_bm25 ... ok
[INFO] [stdout] test bundled::tests::marker_with_version_returns_version ... ok
[INFO] [stdout] test bundled::tests::parse_version_missing_returns_none ... ok
[INFO] [stdout] test bm25::tests::search_single_doc_hit ... ok
[INFO] [stdout] test bm25::tests::search_limit_zero_returns_empty ... ok
[INFO] [stdout] test bm25::tests::search_multi_word_query ... ok
[INFO] [stdout] test bm25::tests::search_exact_term_ranks_highest ... ok
[INFO] [stdout] test bm25::tests::search_scores_positive_for_matching_term ... ok
[INFO] [stdout] test embedding::tests::clone_preserves_data ... ok
[INFO] [stdout] test embedding::tests::dim_accessor ... ok
[INFO] [stdout] test embedding::tests::as_ref_returns_normalized_slice ... ok
[INFO] [stdout] test embedding::tests::embed_skills_with_timeout_empty_skips_provider_call ... ok
[INFO] [stdout] test embedding::tests::embed_skills_with_timeout_uses_batch_on_success ... ok
[INFO] [stdout] test embedding::tests::embed_skills_with_timeout_falls_back_on_mismatched_batch_length ... ok
[INFO] [stdout] test embedding::tests::from_raw_any_dimension ... ok
[INFO] [stdout] test embedding::tests::from_raw_normalizes_dominant_magnitude_component ... ok
[INFO] [stdout] test embedding::tests::embed_skills_with_timeout_fallback_tolerates_individual_skill_failure ... ok
[INFO] [stdout] test embedding::tests::embed_skills_with_timeout_falls_back_on_batch_error ... ok
[INFO] [stdout] test embedding::tests::from_raw_normalizes_to_unit_length ... ok
[INFO] [stdout] test embedding::tests::into_inner_returns_normalized_vec ... ok
[INFO] [stdout] test embedding::tests::new_dimension_mismatch ... ok
[INFO] [stdout] test embedding::tests::from_raw_zero_vector_stays_zero ... ok
[INFO] [stdout] test embedding::tests::from_raw_preserves_sign_of_negative_components ... ok
[INFO] [stdout] test embedding::tests::new_empty_dimension_zero ... ok
[INFO] [stdout] test bm25::tests::tokenize_filters_short_tokens ... ok
[INFO] [stdout] test embedding::tests::new_valid_dimension ... ok
[INFO] [stdout] test erl::tests::build_reflection_extract_prompt_substitutes ... 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::format_heuristics_section_empty ... 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_identical ... ok
[INFO] [stdout] test evaluator::tests::composite_score_default_weights ... ok
[INFO] [stdout] test erl::tests::text_similarity_empty_both ... ok
[INFO] [stdout] test erl::tests::text_similarity_partial ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_clamps_out_of_range ... 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::parse_eval_response_invalid_returns_err ... ok
[INFO] [stdout] test evaluator::tests::evaluator_reject_low_score ... ok
[INFO] [stdout] test evaluator::tests::evaluator_fail_closed_on_llm_error ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_valid_json ... ok
[INFO] [stdout] test evaluator::tests::composite_score_custom_weights ... ok
[INFO] [stdout] test evolution::tests::build_correction_extraction_prompt_substitutes ... ok
[INFO] [stdout] test evaluator::tests::parse_eval_response_strips_code_fence ... ok
[INFO] [stdout] test evolution::tests::build_domain_gate_prompt_substitutes ... ok
[INFO] [stdout] test evolution::tests::build_evaluation_prompt_substitutes ... ok
[INFO] [stdout] test evolution::tests::build_improvement_prompt_with_feedback ... ok
[INFO] [stdout] test evolution::tests::build_reflection_prompt_substitutes ... ok
[INFO] [stdout] test evolution::tests::correction_extraction_result_missing_optional_field ... 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::domain_gate_result_false ... ok
[INFO] [stdout] test evolution::tests::domain_gate_result_deserialize ... ok
[INFO] [stdout] test evolution::tests::correction_extraction_result_deserialize_valid ... ok
[INFO] [stdout] test evolution::tests::failure_kind_as_str_roundtrip ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_error_permission_denied ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_error_exit_nonzero ... 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 bundled::tests::is_legacy_bundled_skips_modified_skill ... ok
[INFO] [stdout] test evolution::tests::failure_kind_from_tool_error_category_key_mappings ... 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::failure_pattern_serde_roundtrip ... ok
[INFO] [stdout] test evolution::tests::outcome_str_variants ... ok
[INFO] [stdout] test evolution::tests::skill_evaluation_extra_unknown_fields_succeeds ... 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::step_correction_serde_roundtrip ... 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::success_rate_zero_total ... 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::validate_body_sections_at_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_exceeds_limit ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_absolute_cap ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_exceeds_limit ... ok
[INFO] [stdout] test evolution::tests::validate_body_sections_within_limit ... ok
[INFO] [stdout] test extensions::tests::parse_extensions_absent_returns_none ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_empty_original ... ok
[INFO] [stdout] test extensions::tests::parse_extensions_empty_block_returns_default ... ok
[INFO] [stdout] test extensions::tests::default_is_all_empty ... ok
[INFO] [stdout] test evolution::tests::validate_body_size_within_limit ... ok
[INFO] [stdout] test extensions::tests::parse_extensions_invalid_yaml_returns_none ... ok
[INFO] [stdout] test extensions::tests::parse_extensions_only_ui ... ok
[INFO] [stdout] test bundled::tests::provision_to_empty_dir_installs_all_skills ... ok
[INFO] [stdout] test extensions::tests::roundtrip_yaml ... ok
[INFO] [stdout] test extensions::tests::parse_extensions_toolbar_button_no_icon ... ok
[INFO] [stdout] test extensions::tests::parse_full_extensions_block ... ok
[INFO] [stdout] test generator::tests::approve_and_save_rejects_existing ... ok
[INFO] [stdout] test generator::tests::approve_and_save_writes_file ... 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::build_generation_prompt_includes_category ... 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::parse_and_validate_rejects_missing_name ... 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 embedding::tests::embed_skills_with_timeout_falls_back_on_batch_timeout ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_leading_hyphen ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_valid ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_trailing_hyphen ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_uppercase ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_traversal ... ok
[INFO] [stdout] test group::tests::context_role_variant_exists ... ok
[INFO] [stdout] test bundled::tests::is_legacy_bundled_matches_identical_content ... ok
[INFO] [stdout] test generator::tests::validate_generated_name_rejects_too_long ... ok
[INFO] [stdout] test group::tests::group_result_contains_empty_requirements_and_failure_notes ... ok
[INFO] [stdout] test group::tests::missing_entry_embedding_returns_flat ... ok
[INFO] [stdout] test group::tests::one_above_threshold_returns_grouped ... ok
[INFO] [stdout] test group::tests::all_below_threshold_returns_flat ... ok
[INFO] [stdout] test extensions::tests::extensions_block_stops_at_next_top_level_field ... ok
[INFO] [stdout] test group::tests::single_skill_returns_flat ... ok
[INFO] [stdout] test group::tests::empty_skills_returns_flat ... ok
[INFO] [stdout] test group::tests::threshold_zero_positive_similarity_is_grouped ... ok
[INFO] [stdout] test group::tests::threshold_zero_cosine_zero_not_grouped ... ok
[INFO] [stdout] test loader::tests::allowed_tools_empty ... ok
[INFO] [stdout] test group::tests::mixed_similarity_only_high_ones_become_support ... ok
[INFO] [stdout] test loader::tests::allowed_tools_with_parens ... ok
[INFO] [stdout] test group::tests::missing_support_embedding_skipped_others_still_grouped ... ok
[INFO] [stdout] test loader::tests::block_scalar_as_last_frontmatter_field ... ok
[INFO] [stdout] test loader::tests::block_scalar_followed_by_other_fields ... ok
[INFO] [stdout] test loader::tests::block_scalar_followed_by_allowed_tools ... ok
[INFO] [stdout] test loader::tests::block_scalar_continuation_trailing_whitespace_stripped ... ok
[INFO] [stdout] test generator::tests::generate_returns_timeout_when_initial_chat_hangs ... 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_leading_hyphen_rejected ... ok
[INFO] [stdout] test loader::tests::block_scalar_single_line_folded ... ok
[INFO] [stdout] test loader::tests::block_scalar_followed_by_requires_secrets ... 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_stored_on_loaded_skill_meta ... ok
[INFO] [stdout] test loader::tests::category_valid_stored_on_meta ... ok
[INFO] [stdout] test loader::tests::category_uppercase_rejected ... 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_with_digits_and_hyphens_valid ... ok
[INFO] [stdout] test loader::tests::chomping_indicator_produces_error_and_is_skipped ... ok
[INFO] [stdout] test loader::tests::compatibility_exceeds_max_length ... ok
[INFO] [stdout] test loader::tests::compatibility_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 generator::tests::generate_returns_timeout_when_retry_chat_hangs ... 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::empty_license_produces_none ... ok
[INFO] [stdout] test loader::tests::empty_compatibility_produces_none ... ok
[INFO] [stdout] test loader::tests::extended_frontmatter ... ok
[INFO] [stdout] test loader::tests::extensions_absent_when_not_in_skill_md ... ok
[INFO] [stdout] test loader::tests::full_skill_with_folded_description ... ok
[INFO] [stdout] test loader::tests::extensions_block_parsed_from_skill_md ... ok
[INFO] [stdout] test loader::tests::extensions_absent_does_not_prevent_skill_loading ... 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::literal_block_scalar_preserves_relative_indentation ... ok
[INFO] [stdout] test loader::tests::indent_modifier_indicator_produces_error_and_is_skipped ... ok
[INFO] [stdout] test loader::tests::load_body_from_meta ... 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::load_skill_meta_only ... ok
[INFO] [stdout] test loader::tests::metadata_nested_block ... ok
[INFO] [stdout] test loader::tests::missing_frontmatter_delimiter ... 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::name_folded_block_scalar ... ok
[INFO] [stdout] test loader::tests::missing_required_fields ... 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::name_validation_rejects_consecutive_hyphens ... ok
[INFO] [stdout] test loader::tests::parent_skill_absent_when_not_in_frontmatter ... ok
[INFO] [stdout] test loader::tests::parent_skill_parsed_from_frontmatter ... ok
[INFO] [stdout] test loader::tests::nonempty_compatibility_produces_some ... ok
[INFO] [stdout] test loader::tests::name_validation_rejects_dir_mismatch ... ok
[INFO] [stdout] test loader::tests::invalid_yaml ... ok
[INFO] [stdout] test loader::tests::parse_valid_skill ... ok
[INFO] [stdout] test loader::tests::name_validation_rejects_leading_hyphen ... ok
[INFO] [stdout] test loader::tests::pipe_modifier_indicator_produces_error_and_is_skipped ... ok
[INFO] [stdout] test loader::tests::provenance_fields_empty_value_ignored ... ok
[INFO] [stdout] test loader::tests::proactive_domain_absent_when_not_in_frontmatter ... ok
[INFO] [stdout] test loader::tests::provenance_fields_parsed_from_frontmatter ... ok
[INFO] [stdout] test loader::tests::requires_secrets_empty_by_default ... ok
[INFO] [stdout] test loader::tests::requires_secrets_deprecated_backward_compat ... ok
[INFO] [stdout] test loader::tests::requires_secrets_lowercased ... ok
[INFO] [stdout] test loader::tests::triggers_empty_value_produces_empty_vec ... ok
[INFO] [stdout] test loader::tests::triggers_cap_at_twenty ... ok
[INFO] [stdout] test loader::tests::triggers_parsed_from_frontmatter ... ok
[INFO] [stdout] test loader::tests::requires_secrets_underscores_unchanged ... ok
[INFO] [stdout] test loader::tests::proactive_domain_parsed_from_frontmatter ... ok
[INFO] [stdout] test loader::tests::requires_secrets_single_value ... ok
[INFO] [stdout] test loader::tests::provenance_fields_optional ... ok
[INFO] [stdout] test loader::tests::triggers_too_short_entries_filtered ... ok
[INFO] [stdout] test loader::tests::requires_secrets_trailing_comma ... ok
[INFO] [stdout] test loader::tests::triggers_stored_on_loaded_skill_meta ... ok
[INFO] [stdout] test loader::tests::validate_path_within_accepts_legitimate_path ... ok
[INFO] [stdout] test loader::tests::unclosed_frontmatter ... ok
[INFO] [stdout] test loader::tests::validate_path_within_rejects_symlink_escape ... ok
[INFO] [stdout] test loader::tests::validate_references_multiple_links_on_one_line ... ok
[INFO] [stdout] test loader::tests::validate_references_scripts_and_assets ... ok
[INFO] [stdout] test loader::tests::x_requires_secrets_takes_precedence_over_deprecated ... ok
[INFO] [stdout] test loader::tests::validate_references_broken_link ... ok
[INFO] [stdout] test loader::tests::validate_references_rejects_traversal ... ok
[INFO] [stdout] test loader::tests::validate_references_valid ... ok
[INFO] [stdout] test loader::tests::x_requires_secrets_parsed_from_frontmatter ... ok
[INFO] [stdout] test loader::tests::validate_references_ignores_external_links ... 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_forged_bundled_stays_quarantined ... ok
[INFO] [stdout] test manager::tests::install_from_path_already_exists ... ok
[INFO] [stdout] test manager::tests::install_from_path_strips_bundled_marker ... ok
[INFO] [stdout] test evolution::tests::build_evaluation_prompt_never_panics ... 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::list_installed_populates_requires_secrets ... ok
[INFO] [stdout] test manager::tests::install_from_url_rejects_whitespace ... 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_path_traversal_rejected ... 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::list_installed_nonexistent_dir ... ok
[INFO] [stdout] test manager::tests::list_installed_empty_dir ... ok
[INFO] [stdout] test manager::tests::remove_skill_not_found ... ok
[INFO] [stdout] test manager::tests::remove_skill_success ... ok
[INFO] [stdout] test manager::tests::list_installed_skips_dirs_without_skill_md ... ok
[INFO] [stdout] test manager::tests::verify_all_empty_dir_returns_empty ... ok
[INFO] [stdout] test manager::tests::strip_bundled_markers_removes_at_multiple_levels ... ok
[INFO] [stdout] test manager::tests::verify_all_multiple_skills ... ok
[INFO] [stdout] test manager::tests::verify_all_no_stored_hash ... ok
[INFO] [stdout] test manager::tests::verify_skill_success ... 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::backend_in_memory_match_skills ... ok
[INFO] [stdout] test matcher::tests::backend_in_memory_refresh_skill_embeddings_is_noop ... ok
[INFO] [stdout] test matcher::tests::confusability_report_display_clean ... ok
[INFO] [stderr] Cloning into '/tmp/.tmpHNitIJ/__tmp_1791321143568375369_4434'...
[INFO] [stdout] test matcher::tests::confusability_report_display_with_excluded_skills ... ok
[INFO] [stdout] test matcher::tests::backend_in_memory_skill_embedding_returns_owned_vec ... ok
[INFO] [stdout] test manager::tests::verify_skill_not_found ... ok
[INFO] [stdout] test matcher::tests::backend_in_memory_sync_is_noop ... ok
[INFO] [stdout] test matcher::tests::backend_in_memory_skill_embedding_out_of_range_is_none ... ok
[INFO] [stdout] test matcher::tests::confusability_report_display_with_pairs ... ok
[INFO] [stdout] test matcher::tests::confusability_report_display_with_pairs_and_excluded ... ok
[INFO] [stdout] test manager::tests::verify_all_with_mismatched_hash ... 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::cosine_similarity_empty_vectors ... 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::intent_classification_deserialize ... 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::intent_classification_deserialize_without_params ... 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::scored_match_clone_and_debug ... ok
[INFO] [stdout] test matcher::tests::match_skills_returns_scores ... ok
[INFO] [stdout] test matcher::tests::scored_match_delta_at_threshold_boundary ... ok
[INFO] [stdout] test matcher::tests::global_trigger_cap_limits_embeddings ... ok
[INFO] [stdout] test matcher::tests::scored_match_delta_threshold_zero_disables_disambiguation ... ok
[INFO] [stdout] test matcher::tests::matcher_backend_in_memory_is_not_qdrant ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_query_embed_fails ... ok
[INFO] [stdout] test matcher::tests::test_match_skills_empty_skills ... ok
[INFO] [stdout] test matcher::tests::matcher_debug ... ok
[INFO] [stdout] test matcher::tests::test_matcher_new_returns_none_on_failure ... 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_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::trigger_embed_failure_skipped_silently ... ok
[INFO] [stdout] test matcher::tests::test_unsupported_emits_single_info_not_per_skill ... ok
[INFO] [stdout] test matcher::tests::trigger_score_dominates_description_score ... ok
[INFO] [stdout] test matcher::tests::test_matcher_skips_failed_embeddings ... 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::test_matcher_new_returns_none_when_all_unsupported ... ok
[INFO] [stdout] test merge_prompts::tests::build_merge_messages_contains_name_and_version ... ok
[INFO] [stdout] test matcher::tests::two_stage_singleton_category_goes_to_uncategorized ... ok
[INFO] [stdout] test matcher::tests::two_stage_mixed_categorized_and_uncategorized_single_category ... ok
[INFO] [stdout] test merge_prompts::tests::build_merge_messages_wraps_bodies_in_xml_tags ... ok
[INFO] [stdout] test matcher::tests::two_stage_result_count_within_flat_count ... ok
[INFO] [stdout] test merge_prompts::tests::build_merge_messages_length ... ok
[INFO] [stdout] test merger::tests::decide_add_below_merge_threshold ... ok
[INFO] [stdout] test merger::tests::decide_discard_at_exact_dedup_threshold ... ok
[INFO] [stdout] test merger::tests::decide_discard_in_merge_zone_disabled ... ok
[INFO] [stdout] test merger::tests::decide_merge_in_merge_zone_enabled ... ok
[INFO] [stdout] test merger::tests::decide_discard_above_dedup_threshold ... ok
[INFO] [stdout] test merger::tests::find_nearest_empty_returns_none ... ok
[INFO] [stdout] test matcher::tests::two_stage_matching_uses_categories ... ok
[INFO] [stdout] test merger::tests::find_nearest_returns_closest ... ok
[INFO] [stdout] test matcher::tests::cosine_similarity_within_bounds ... ok
[INFO] [stdout] test miner::tests::is_novel_accepts_dissimilar_skill ... ok
[INFO] [stdout] test merger::tests::find_nearest_single_entry ... ok
[INFO] [stdout] test miner::tests::is_novel_rejects_similar_skill ... ok
[INFO] [stdout] test merger::tests::decide_add_at_merge_threshold_boundary ... ok
[INFO] [stdout] test miner::tests::mining_config_defaults ... ok
[INFO] [stdout] test matcher::tests::scored_match_score_preserved ... ok
[INFO] [stdout] test matcher::tests::confusability_report_tracks_excluded_skills ... ok
[INFO] [stdout] test matcher::tests::match_result_scored_empty_is_not_infra_error ... ok
[INFO] [stdout] test matcher::tests::match_skills_limit_zero ... ok
[INFO] [stdout] test proactive::tests::classify_docker_with_punctuation ... 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::stamp_proactive_domain_inserts_after_name ... ok
[INFO] [stdout] test proactive::tests::has_knowledge_matches_by_proactive_domain_not_llm_chosen_name ... ok
[INFO] [stdout] test promoter::tests::batch_hash_deterministic ... ok
[INFO] [stdout] test promoter::tests::batch_hash_empty ... ok
[INFO] [stdout] test promoter::tests::batch_hash_order_independent ... ok
[INFO] [stdout] test proactive::tests::is_excluded_matches_configured_domains ... ok
[INFO] [stdout] test promoter::tests::batch_hash_single_element ... ok
[INFO] [stdout] test promoter::tests::build_prompt_contains_skill_body_and_heuristics ... ok
[INFO] [stdout] test promoter::tests::build_prompt_numbers_heuristics ... ok
[INFO] [stdout] test promoter::tests::parse_body_enrichment ... ok
[INFO] [stdout] test promoter::tests::parse_body_enrichment_empty_body_returns_none ... ok
[INFO] [stdout] test promoter::tests::parse_new_skill ... ok
[INFO] [stdout] test promoter::tests::parse_new_skill_missing_body_returns_none ... ok
[INFO] [stdout] test promoter::tests::parse_garbage_returns_none ... ok
[INFO] [stdout] test promoter::tests::parse_new_skill_missing_name_returns_none ... ok
[INFO] [stdout] test promoter::tests::parse_none_response ... ok
[INFO] [stdout] test proactive::tests::stamp_proactive_domain_replaces_existing_value ... ok
[INFO] [stdout] test promoter::tests::parse_none_with_whitespace ... ok
[INFO] [stdout] test prompt::tests::assets_listed_not_injected ... ok
[INFO] [stdout] test promoter::tests::parse_none_case_insensitive ... 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_annotates_quarantined_and_blocked_trust ... ok
[INFO] [stdout] test prompt::tests::compact_mode_attribute_present ... ok
[INFO] [stdout] test prompt::tests::compact_empty_returns_empty_string ... ok
[INFO] [stdout] test prompt::tests::format_skills_catalog_produces_other_skills_tag ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_empty_requirements_not_emitted ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_flat_fallback_same_as_format_skills_prompt ... ok
[INFO] [stdout] test prompt::tests::format_skills_catalog_empty ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_missing_trust_entry_support_not_excluded ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_non_empty_failure_notes_emitted ... ok
[INFO] [stdout] test prompt::tests::format_skills_catalog_no_attribute_for_unclassified_skill ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_produces_active_skill_tags ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_quarantined_support_excluded ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_trust_sanitization_applied_to_verified_support ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_trusted_entry_not_sanitized ... ok
[INFO] [stdout] test prompt::tests::health_attrs_emitted_when_uses_at_threshold ... ok
[INFO] [stdout] test prompt::tests::grouped_prompt_non_empty_requirements_emitted ... ok
[INFO] [stdout] test prompt::tests::health_attrs_not_emitted_when_skill_not_in_health_map ... ok
[INFO] [stdout] test prompt::tests::health_attrs_not_emitted_when_uses_below_threshold ... ok
[INFO] [stdout] test prompt::tests::missing_trust_entry_distinct_from_explicit_quarantine ... ok
[INFO] [stdout] test prompt::tests::missing_trust_entry_not_quarantined ... ok
[INFO] [stdout] test prompt::tests::multiple_skills ... ok
[INFO] [stdout] test prompt::tests::no_resources_dir_produces_body_only ... ok
[INFO] [stdout] test prompt::tests::quarantined_skill_is_sanitized_and_wrapped ... ok
[INFO] [stdout] test prompt::tests::quarantined_skill_gets_wrapped ... 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_metadata_at_exact_max_len_no_ellipsis ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_blocks_disregard_marker ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_case_insensitive_strip ... ok
[INFO] [stdout] test prompt::tests::references_listed_not_injected ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_ascii_truncation_adds_ellipsis ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_one_byte_over_max_len_gets_ellipsis ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_strips_ignore_prefix ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_passthrough_clean_text ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_multiline_strips_bad_line_keeps_good ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_utf8_truncation_safe ... ok
[INFO] [stderr] ssh: Could not resolve hostname github.com: Temporary failure in name resolution
[INFO] [stdout] test prompt::tests::sanitize_metadata_strips_you_are_prefix ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_blocks_ignore_all_previous ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_combines_xml_and_injection ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_im_start_blocked ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_case_insensitive_marker_detection ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_leading_whitespace_before_marker ... ok
[INFO] [stdout] test prompt::tests::sanitize_metadata_within_limit_no_ellipsis ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_no_markers_unchanged_except_xml ... ok
[INFO] [stdout] test prompt::tests::sanitize_skill_text_multiline_marker ... ok
[INFO] [stdout] test prompt::tests::scripts_listed_not_injected ... ok
[INFO] [stdout] test prompt::tests::trusted_skill_description_not_wrapped_in_data_boundary ... 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 prompt::tests::trusted_skill_not_sanitized ... 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::untrusted_skill_description_wrapped_in_data_boundary ... ok
[INFO] [stdout] test prompt::tests::wrap_data_description_wraps_correctly ... ok
[INFO] [stdout] test prompt::tests::trusted_skill_not_wrapped ... ok
[INFO] [stdout] test prompt::tests::xml_special_chars_in_name_and_description_are_escaped ... ok
[INFO] [stdout] test prompt_template::tests::render_leaves_unmatched_braces_untouched ... ok
[INFO] [stdout] test prompt::tests::wrap_quarantined_escapes_name ... ok
[INFO] [stdout] test prompt::tests::wrap_data_description_empty_string ... ok
[INFO] [stdout] test registry::tests::discovers_skill_at_depth_two ... ok
[INFO] [stdout] test manager::tests::install_from_url_accepts_git_at_scheme ... ok
[INFO] [stdout] test registry::tests::empty_directory ... ok
[INFO] [stdout] test prompt_template::tests::render_substitutes_all_keys ... ok
[INFO] [stdout] test registry::tests::fingerprint_changes_when_nested_skill_added ... ok
[INFO] [stdout] test registry::tests::discovers_skills_at_mixed_depths ... ok
[INFO] [stdout] test registry::tests::get_body_not_found ... ok
[INFO] [stdout] test registry::tests::into_skills_consumes_registry ... ok
[INFO] [stdout] test registry::tests::lazy_body_loading ... ok
[INFO] [stdout] test registry::tests::lexicographic_sibling_order_determines_duplicate_winner ... ok
[INFO] [stdout] test registry::tests::get_skill_returns_full_skill ... ok
[INFO] [stdout] test registry::tests::load_from_temp_dir ... ok
[INFO] [stdout] test registry::tests::load_skips_symlink_to_directory_within_base_quietly ... ok
[INFO] [stdout] test registry::tests::load_follows_symlinked_skill_md_within_base ... ok
[INFO] [stdout] test registry::tests::missing_directory ... ok
[INFO] [stdout] test registry::tests::priority_first_path_wins ... ok
[INFO] [stdout] test registry::tests::load_skips_symlinked_skill_escaping_base ... ok
[INFO] [stdout] test registry::tests::parent_wins_over_descendant_same_branch ... ok
[INFO] [stdout] test registry::tests::register_hub_dir_is_idempotent ... ok
[INFO] [stdout] test registry::tests::reload_detects_changes ... ok
[INFO] [stdout] test prompt_template::tests::render_missing_key_is_noop ... ok
[INFO] [stdout] test miner::tests::embed_existing_skips_skills_on_timeout ... ok
[INFO] [stdout] test miner::tests::request_delay_zero_rpm_uses_minimum ... ok
[INFO] [stdout] test miner::tests::dry_run_does_not_write_files ... ok
[INFO] [stdout] test miner::tests::is_novel_empty_existing ... ok
[INFO] [stdout] test registry::tests::scan_loaded_empty_registry ... ok
[INFO] [stdout] test registry::tests::skips_invalid_skills ... ok
[INFO] [stdout] test resource::tests::discover_empty_skill_dir ... 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 resource::tests::load_skill_resource_valid ... ok
[INFO] [stdout] test rl_head::tests::blended_score_formula ... ok
[INFO] [stdout] test rl_head::tests::forward_cache_cleared_after_update ... ok
[INFO] [stdout] test rl_head::tests::from_bytes_returns_none_on_corrupt_data ... ok
[INFO] [stdout] test rl_head::tests::persist_snapshot_matches_individual_getters ... ok
[INFO] [stdout] test rl_head::tests::persist_snapshot_reflects_shared_updates_from_cloned_handle ... ok
[INFO] [stdout] test rl_head::tests::rerank_cold_start_uses_cosine_order ... ok
[INFO] [stdout] test rl_head::tests::rerank_outcome_reports_atomic_blended_and_update_count ... ok
[INFO] [stdout] test rl_head::tests::rerank_post_warmup_blended_order_can_disagree_with_cosine_order ... ok
[INFO] [stdout] test rl_head::tests::rerank_post_warmup_winner_cache_used_by_update ... ok
[INFO] [stdout] test rl_head::tests::rerank_warmup_empty_candidates_returns_empty ... 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_is_scale_invariant_when_skill_embed_is_normalized_first ... ok
[INFO] [stdout] test rl_head::tests::score_returns_value_in_unit_interval ... ok
[INFO] [stdout] test miner::tests::request_delay_25rpm ... ok
[INFO] [stdout] test rl_head::tests::update_changes_weights ... ok
[INFO] [stdout] test rl_head::tests::update_without_prior_rerank_returns_false ... ok
[INFO] [stdout] test rl_head::tests::warmup_exits_after_updates ... ok
[INFO] [stdout] test rl_head::tests::weights_round_trip_serialization ... ok
[INFO] [stdout] test rl_head::tests::update_count_increments ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_empty_allowed_tools ... ok
[INFO] [stdout] test scanner::tests::capability_escalation_blocked_returns_all ... 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 miner::tests::is_novel_returns_error_on_embed_timeout ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_injection_in_body ... ok
[INFO] [stdout] test scanner::tests::forget_everything_detected ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_valid_skill ... ok
[INFO] [stdout] test registry::tests::scan_loaded_hub_skill_with_bundled_marker_still_flagged ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_too_many_sections ... ok
[INFO] [stdout] test scanner::tests::jailbreak_dan_detected ... ok
[INFO] [stdout] test scanner::tests::multiple_patterns_detected ... ok
[INFO] [stdout] test scanner::tests::role_override_detected ... ok
[INFO] [stdout] test registry::tests::scan_loaded_bundled_skill_with_injection_text_not_flagged ... ok
[INFO] [stdout] test scanner::tests::matched_patterns_does_not_contain_payload_text ... ok
[INFO] [stdout] test scanner::tests::empty_body_returns_no_matches ... ok
[INFO] [stdout] test scanner::tests::system_prompt_leak_interrogative_detected ... ok
[INFO] [stdout] test registry::tests::scan_loaded_non_bundled_skill_with_injection_text_is_flagged ... ok
[INFO] [stdout] test scanner::tests::system_prompt_leak_descriptive_mention_not_flagged ... ok
[INFO] [stdout] test registry::tests::register_hub_dir_end_to_end ... ok
[INFO] [stdout] test scanner::tests::clean_body_returns_no_matches ... ok
[INFO] [stdout] test registry::tests::scan_loaded_clean_skills_returns_empty ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_injection_in_frontmatter_name ... ok
[INFO] [stdout] test scanner::tests::system_prompt_leak_extraction_verb_detected ... ok
[INFO] [stdout] test registry::tests::scan_loaded_detects_injection_in_skill_body ... ok
[INFO] [stdout] test semantic_scanner::tests::map_verdict_allow_with_truncation_becomes_warn ... ok
[INFO] [stdout] test semantic_scanner::tests::build_user_prompt_contains_xml_delimiters ... ok
[INFO] [stdout] test semantic_scanner::tests::map_verdict_allow_no_truncation ... ok
[INFO] [stdout] test semantic_scanner::tests::build_user_prompt_neutralizes_closing_delimiter_in_body ... ok
[INFO] [stdout] test semantic_scanner::tests::sample_boundary_exact_fits ... ok
[INFO] [stdout] test registry::tests::reload_preserves_hub_dirs ... ok
[INFO] [stdout] test semantic_scanner::tests::map_verdict_block ... ok
[INFO] [stdout] test semantic_scanner::tests::map_verdict_unknown_becomes_block ... ok
[INFO] [stdout] test semantic_scanner::tests::sample_long_content_truncated ... 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 semantic_scanner::tests::sample_short_content_unchanged ... ok
[INFO] [stdout] test scanner::tests::unicode_cf_bypass_defeated ... ok
[INFO] [stdout] test proactive::tests::explore_then_reload_closes_has_knowledge_gate ... ok
[INFO] [stdout] test stem::tests::normalize_tool_sequence_empty ... ok
[INFO] [stdout] test scanner::tests::ignore_instructions_detected ... ok
[INFO] [stdout] test stem::tests::sequence_hash_deterministic ... ok
[INFO] [stdout] test stem::tests::success_rate_zero_occurrences ... ok
[INFO] [stdout] test stem::tests::should_generate_skill_low_success_rate ... ok
[INFO] [stdout] test stem::tests::sequence_hash_length ... ok
[INFO] [stdout] test stem::tests::should_generate_skill_threshold_met ... 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 trace_extractor::tests::ensure_closed_frontmatter_passes_already_closed ... ok
[INFO] [stdout] test trace_extractor::tests::build_prompt_text_empty_messages ... ok
[INFO] [stdout] test trace_extractor::tests::build_prompt_text_respects_max_turns ... ok
[INFO] [stdout] test trace_extractor::tests::embed_existing_empty_returns_empty ... ok
[INFO] [stdout] test trace_extractor::tests::extract_from_trace_empty_messages_returns_zero ... ok
[INFO] [stdout] test trace_extractor::tests::process_candidate_counts_injection_without_decrement ... ok
[INFO] [stdout] test trace_extractor::tests::session_record_returns_correct_fields ... ok
[INFO] [stdout] test trust::tests::compute_hash_different_content ... ok
[INFO] [stdout] test trust::tests::display_file_source ... ok
[INFO] [stdout] test trace_extractor::tests::build_prompt_text_truncates_at_byte_limit ... ok
[INFO] [stdout] test trace_extractor::tests::cosine_find_nearest_integration ... ok
[INFO] [stdout] test trace_extractor::tests::ensure_closed_frontmatter_adds_closing_delimiter ... ok
[INFO] [stdout] test trace_extractor::tests::ensure_closed_frontmatter_ignores_non_frontmatter ... ok
[INFO] [stdout] test trace_extractor::tests::ensure_closed_frontmatter_not_fooled_by_dashes_in_field_value ... ok
[INFO] [stdout] test trace_extractor::tests::process_candidate_repairs_unclosed_frontmatter ... ok
[INFO] [stdout] test trace_extractor::tests::process_candidate_counts_parse_fail_separately ... 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_local_source ... ok
[INFO] [stdout] test trust::tests::display ... ok
[INFO] [stdout] test trust::tests::skill_trust_requires_trust_check_default_false ... ok
[INFO] [stdout] test trust::tests::hash_mismatch_detection_with_per_invocation_check ... ok
[INFO] [stdout] test trace_extractor::tests::apply_decision_merge_same_name_path_populates_saved_skill_paths ... ok
[INFO] [stdout] test trust::tests::source_file_serde_roundtrip ... ok
[INFO] [stdout] test trust::tests::trust_level_reexport_accessible ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_monotone_increasing_with_successes ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_always_in_unit_interval ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_monotone_decreasing_with_failures ... ok
[INFO] [stdout] test trust_score::tests::posterior_mean_nine_successes ... ok
[INFO] [stdout] test trust::tests::skill_trust_requires_trust_check_true ... ok
[INFO] [stdout] test trust::tests::source_serde_roundtrip ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_clamp_at_zero ... ok
[INFO] [stdout] test trust_score::tests::rerank_cosine_only_preserves_order ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_balanced_near_half ... ok
[INFO] [stdout] test trace_extractor::tests::apply_decision_add_path_populates_saved_skill_paths ... ok
[INFO] [stdout] test trust::tests::source_default_is_local ... ok
[INFO] [stdout] test trust_score::tests::posterior_mean_no_data_is_half ... ok
[INFO] [stdout] test trust_score::tests::rerank_empty_slice_no_panic ... ok
[INFO] [stdout] test generator::tests::parse_and_validate_rejects_oversized_body ... ok
[INFO] [stdout] test trust_score::tests::posterior_mean_three_quarters ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_perfect_failure_near_zero ... 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_nonexistent_directory_fails ... ok
[INFO] [stdout] test trust_score::tests::posterior_weight_perfect_success_near_one ... ok
[INFO] [stdout] test trust_score::tests::rerank_blends_scores ... ok
[INFO] [stdout] test trace_extractor::tests::apply_decision_merge_path_populates_saved_skill_paths ... ok
[INFO] [stdout] test watcher::tests::start_with_valid_directory ... 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::detects_skill_file_change ... ok
[INFO] [stdout] test watcher::tests::ignores_non_skill_file_change ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 578 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests zeph_skills
[INFO] [stdout] 
[INFO] [stdout] running 53 tests
[INFO] [stdout] test src/bm25.rs - bm25 (line 26) ... ok
[INFO] [stdout] test src/embedding.rs - embedding::SkillEmbedding (line 47) ... ok
[INFO] [stdout] test src/bm25.rs - bm25::Bm25Index::search (line 124) ... ok
[INFO] [stdout] test src/bm25.rs - bm25::linear_fuse (line 193) ... ok
[INFO] [stdout] test src/bm25.rs - bm25::Bm25Index::build (line 65) ... ok
[INFO] [stdout] test src/embedding.rs - embedding::SkillEmbedding::from_raw (line 107) ... ok
[INFO] [stdout] test src/embedding.rs - embedding (line 12) ... ok
[INFO] [stdout] test src/embedding.rs - embedding::embed_skills_with_timeout (line 174) - compile ... ok
[INFO] [stdout] test src/erl.rs - erl (line 19) ... ok
[INFO] [stdout] test src/generator.rs - generator::SkillGenerator (line 105) - compile ... ok
[INFO] [stdout] test src/evaluator.rs - evaluator::SkillEvaluator (line 137) - compile ... ok
[INFO] [stdout] test src/embedding.rs - embedding::SkillEmbedding::new (line 70) ... ok
[INFO] [stdout] test src/lib.rs - (line 39) - compile ... ok
[INFO] [stdout] test src/merge_prompts.rs - merge_prompts::build_merge_messages (line 40) ... ignored
[INFO] [stdout] test src/extensions.rs - extensions::SkillExtensions (line 124) ... ok
[INFO] [stdout] test src/generator.rs - generator::SkillGenerator::write_quarantined (line 331) - compile ... ok
[INFO] [stdout] test src/embedding.rs - embedding::SkillEmbedding::into_inner (line 143) ... ok
[INFO] [stdout] test src/loader.rs - loader::Skill (line 143) - compile ... ok
[INFO] [stdout] test src/matcher.rs - matcher (line 27) - compile ... ok
[INFO] [stdout] test src/merger.rs - merger::decide (line 89) ... ignored
[INFO] [stdout] test src/merger.rs - merger::find_nearest (line 151) ... ignored
[INFO] [stdout] test src/proactive.rs - proactive::ProactiveExplorer (line 95) - compile ... ok
[INFO] [stdout] test src/embedding.rs - embedding::SkillEmbedding::dim (line 128) ... ok
[INFO] [stdout] test src/evaluator.rs - evaluator::SkillQualityScore::composite (line 67) ... ok
[INFO] [stdout] test src/error.rs - error::SkillError (line 10) ... ok
[INFO] [stdout] test src/evolution.rs - evolution::FailureKind (line 28) ... ok
[INFO] [stdout] test src/registry.rs - registry (line 40) - compile ... ok
[INFO] [stdout] test src/registry.rs - registry::SkillRegistry::load_errors (line 279) - compile ... ok
[INFO] [stdout] test src/registry.rs - registry::SkillRegistry::load (line 166) - compile ... ok
[INFO] [stdout] test src/registry.rs - registry::SkillRegistry::all_meta (line 322) - compile ... ok
[INFO] [stdout] test src/promoter.rs - promoter (line 12) ... ok
[INFO] [stdout] test src/promoter.rs - promoter::build_promotion_prompt (line 76) ... ok
[INFO] [stdout] test src/semantic_scanner.rs - semantic_scanner (line 20) - compile ... ok
[INFO] [stdout] test src/semantic_scanner.rs - semantic_scanner::SkillSemanticScanner (line 117) - compile ... ok
[INFO] [stdout] test src/prompt.rs - prompt::wrap_data_description (line 243) ... ok
[INFO] [stdout] test src/trace_extractor.rs - trace_extractor::TraceExtractor::new (line 145) - compile ... ok
[INFO] [stdout] test src/group.rs - group::group_skills (line 86) ... ok
[INFO] [stdout] test src/proactive.rs - proactive::DomainLabel::to_skill_name (line 76) ... ok
[INFO] [stdout] test src/extensions.rs - extensions::SkillKeybinding (line 77) ... ok
[INFO] [stdout] test src/extensions.rs - extensions::SkillMonitor (line 100) ... ok
[INFO] [stdout] test src/prompt.rs - prompt::sanitize_skill_metadata (line 198) ... ok
[INFO] [stdout] test src/promoter.rs - promoter::compute_batch_hash (line 108) ... ok
[INFO] [stdout] test src/promoter.rs - promoter::parse_promotion_response (line 136) ... ok
[INFO] [stdout] test src/watcher.rs - watcher (line 17) - compile ... ok
[INFO] [stdout] test src/trust_score.rs - trust_score::posterior_weight (line 52) ... ok
[INFO] [stdout] test src/extensions.rs - extensions::SkillUiElement (line 38) ... ok
[INFO] [stdout] test src/trust_score.rs - trust_score::rerank (line 108) ... ok
[INFO] [stdout] test src/stem.rs - stem (line 25) ... ok
[INFO] [stdout] test src/trust.rs - trust::SkillSource (line 32) ... 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/merger.rs - merger (line 19) ... ok
[INFO] [stdout] test src/scanner.rs - scanner::ScanResult (line 101) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 50 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.78s; merged doctests compilation took 2.17s
[INFO] running `Command { std: "docker" "inspect" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16", kill_on_drop: false }`
[INFO] [stdout] 65cf894acc9f6095cbd3a843165b6ef90cbe28bcd16bf1914a4925274e1f7f16
