[INFO] cloning repository https://github.com/rmax-ai/shardlake
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rmax-ai/shardlake" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frmax-ai%2Fshardlake", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frmax-ai%2Fshardlake'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 78f588ba5510b4d0af73f462c68892f10605a216
[INFO] testing rmax-ai/shardlake against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frmax-ai%2Fshardlake" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rmax-ai/shardlake
[INFO] finished tweaking git repo https://github.com/rmax-ai/shardlake
[INFO] tweaked toml for git repo https://github.com/rmax-ai/shardlake written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rmax-ai/shardlake on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rmax-ai/shardlake 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded prometheus v0.13.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c7a61dc2eb19f331e6057e729e3f3ff2c073330fc9e4dd3bb9d054eef3b1f1bf
[INFO] running `Command { std: "docker" "start" "-a" "c7a61dc2eb19f331e6057e729e3f3ff2c073330fc9e4dd3bb9d054eef3b1f1bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c7a61dc2eb19f331e6057e729e3f3ff2c073330fc9e4dd3bb9d054eef3b1f1bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c7a61dc2eb19f331e6057e729e3f3ff2c073330fc9e4dd3bb9d054eef3b1f1bf", kill_on_drop: false }`
[INFO] [stdout] c7a61dc2eb19f331e6057e729e3f3ff2c073330fc9e4dd3bb9d054eef3b1f1bf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a0e7db7c263336a9d8f9849745faada2d9e58114d26084be66d8cd35a8f286aa
[INFO] running `Command { std: "docker" "start" "-a" "a0e7db7c263336a9d8f9849745faada2d9e58114d26084be66d8cd35a8f286aa", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling shardlake-core v0.1.0 (/opt/rustwide/workdir/crates/shardlake-core)
[INFO] [stderr]    Compiling shardlake-storage v0.1.0 (/opt/rustwide/workdir/crates/shardlake-storage)
[INFO] [stderr]    Compiling shardlake-manifest v0.1.0 (/opt/rustwide/workdir/crates/shardlake-manifest)
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling shardlake-index v0.1.0 (/opt/rustwide/workdir/crates/shardlake-index)
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling shardlake-bench v0.1.0 (/opt/rustwide/workdir/crates/shardlake-bench)
[INFO] [stderr]    Compiling shardlake-serve v0.1.0 (/opt/rustwide/workdir/crates/shardlake-serve)
[INFO] [stderr]    Compiling shardlake-cli v0.1.0 (/opt/rustwide/workdir/crates/shardlake-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.40s
[INFO] running `Command { std: "docker" "inspect" "a0e7db7c263336a9d8f9849745faada2d9e58114d26084be66d8cd35a8f286aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a0e7db7c263336a9d8f9849745faada2d9e58114d26084be66d8cd35a8f286aa", kill_on_drop: false }`
[INFO] [stdout] a0e7db7c263336a9d8f9849745faada2d9e58114d26084be66d8cd35a8f286aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ea8c3ba664c6e78dd4d957c4720d08aae2b34afb04655836dea656d9e26a088
[INFO] running `Command { std: "docker" "start" "-a" "7ea8c3ba664c6e78dd4d957c4720d08aae2b34afb04655836dea656d9e26a088", kill_on_drop: false }`
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling shardlake-core v0.1.0 (/opt/rustwide/workdir/crates/shardlake-core)
[INFO] [stderr]    Compiling shardlake-index v0.1.0 (/opt/rustwide/workdir/crates/shardlake-index)
[INFO] [stderr]    Compiling shardlake-storage v0.1.0 (/opt/rustwide/workdir/crates/shardlake-storage)
[INFO] [stderr]    Compiling shardlake-cli v0.1.0 (/opt/rustwide/workdir/crates/shardlake-cli)
[INFO] [stderr]    Compiling shardlake-bench v0.1.0 (/opt/rustwide/workdir/crates/shardlake-bench)
[INFO] [stderr]    Compiling shardlake-manifest v0.1.0 (/opt/rustwide/workdir/crates/shardlake-manifest)
[INFO] [stderr]    Compiling shardlake-serve v0.1.0 (/opt/rustwide/workdir/crates/shardlake-serve)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 18.44s
[INFO] running `Command { std: "docker" "inspect" "7ea8c3ba664c6e78dd4d957c4720d08aae2b34afb04655836dea656d9e26a088", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ea8c3ba664c6e78dd4d957c4720d08aae2b34afb04655836dea656d9e26a088", kill_on_drop: false }`
[INFO] [stdout] 7ea8c3ba664c6e78dd4d957c4720d08aae2b34afb04655836dea656d9e26a088
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] edb3a86db75443069d050ce642cf520414378dab5f587d11a60ed7e66d8a298d
[INFO] running `Command { std: "docker" "start" "-a" "edb3a86db75443069d050ce642cf520414378dab5f587d11a60ed7e66d8a298d", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_bench-ea1d9d3e250e6b3f)
[INFO] [stdout] 
[INFO] [stdout] running 50 tests
[INFO] [stdout] test generate::tests::generates_correct_shape ... ok
[INFO] [stdout] test tests::compare_ann_report_empty_entries_round_trips ... ok
[INFO] [stdout] test tests::compare_ann_report_serialises_all_entries ... ok
[INFO] [stdout] test generate::tests::ids_are_sequential_from_one ... ok
[INFO] [stdout] test generate::tests::reproducible_with_same_seed ... ok
[INFO] [stdout] test tests::ann_family_report_flattens_eval_fields_in_json ... ok
[INFO] [stdout] test generate::tests::different_seeds_produce_different_data ... ok
[INFO] [stdout] test generate::tests::vectors_are_close_to_centroids ... ok
[INFO] [stdout] test generate::tests::metadata_is_none ... ok
[INFO] [stdout] test tests::cost_metrics_uncompressed_index_has_ratio_one ... ok
[INFO] [stdout] test tests::cost_metrics_use_local_paths_without_reading_artifacts ... ok
[INFO] [stdout] test tests::cost_metrics_disk_footprint_matches_sum_of_artifacts ... ok
[INFO] [stdout] test tests::cost_metrics_pq_index_has_compression_ratio_gt_one ... ok
[INFO] [stdout] test tests::cost_metrics_zero_vector_index_has_zero_memory ... ok
[INFO] [stdout] test tests::evaluate_partitioning_reports_shard_size_distribution ... ok
[INFO] [stdout] test tests::evaluate_partitioning_reports_routing_and_recall_with_queries ... ok
[INFO] [stdout] test tests::cost_metrics_disk_footprint_ignores_other_indexes_in_storage ... ok
[INFO] [stdout] test tests::run_benchmark_empty_queries_return_zero_metrics ... ok
[INFO] [stdout] test tests::evaluate_partitioning_propagates_search_errors ... ok
[INFO] [stdout] test tests::evaluate_partitioning_std_dev_zero_for_equal_shards ... ok
[INFO] [stdout] test tests::evaluate_partitioning_keeps_recall_for_legacy_manifests ... ok
[INFO] [stdout] test tests::run_eval_hybrid_returns_error_for_empty_queries ... ok
[INFO] [stdout] test tests::run_benchmark_throughput_is_positive ... ok
[INFO] [stdout] test tests::run_eval_ann_with_ground_truth_rejects_mismatched_lengths ... ok
[INFO] [stdout] test tests::run_eval_ann_with_ground_truth_matches_direct_eval ... ok
[INFO] [stdout] test tests::run_eval_hybrid_returns_error_for_mismatched_query_text_count ... ok
[INFO] [stdout] test tests::run_benchmark_reports_correct_field_counts ... ok
[INFO] [stdout] test generate::tests::rejects_non_finite_cluster_spread - should panic ... ok
[INFO] [stdout] test generate::tests::rejects_zero_dims - should panic ... ok
[INFO] [stdout] test tests::run_workload_benchmark_cold_mode_starts_with_a_fresh_cache_per_query ... ok
[INFO] [stdout] test tests::run_eval_hybrid_reports_correct_field_counts ... ok
[INFO] [stdout] test tests::test_nearest_rank_percentile_handles_single_value ... ok
[INFO] [stdout] test tests::test_nearest_rank_percentile_uses_explicit_rank ... ok
[INFO] [stdout] test tests::run_workload_benchmark_cold_mode_counts_intra_query_hits_for_legacy_manifests ... ok
[INFO] [stdout] test tests::test_precision_partial ... ok
[INFO] [stdout] test tests::test_precision_perfect ... ok
[INFO] [stdout] test tests::test_recall_zero ... ok
[INFO] [stdout] test tests::workload_mode_display_labels_are_correct ... ok
[INFO] [stdout] test tests::workload_mode_serialises_to_snake_case ... ok
[INFO] [stdout] test tests::run_benchmark_recall_is_perfect_with_full_probe ... ok
[INFO] [stdout] test tests::test_recall_perfect ... ok
[INFO] [stdout] test tests::run_workload_benchmark_mixed_mode_runs_without_errors ... ok
[INFO] [stdout] test tests::run_workload_benchmark_warm_mode_yields_high_cache_hit_rate ... ok
[INFO] [stdout] test tests::run_eval_hybrid_vector_recall_perfect_with_full_probe ... ok
[INFO] [stdout] test tests::run_workload_benchmark_report_field_workload_matches_requested_mode ... ok
[INFO] [stdout] test generate::tests::rejects_negative_cluster_spread - should panic ... ok
[INFO] [stdout] test generate::tests::rejects_zero_num_clusters - should panic ... ok
[INFO] [stdout] test generate::tests::rejects_zero_num_vectors - should panic ... ok
[INFO] [stdout] test tests::run_workload_benchmark_empty_queries_returns_zero_metrics_for_all_modes ... ok
[INFO] [stdout] test tests::cost_metrics_saturate_on_overflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shardlake-04820fb5cb8fa9a0)
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test commands::build_index::tests::run_rejects_num_workers_without_parallel_before_loading_dataset ... ok
[INFO] [stdout] test commands::build_index::tests::run_rejects_zero_kmeans_sample_size_before_loading_dataset ... ok
[INFO] [stdout] test commands::build_index::tests::validate_kmeans_sample_size_rejects_zero ... ok
[INFO] [stdout] test commands::build_index::tests::run_preserves_manifest_parse_errors ... ok
[INFO] [stdout] test commands::build_index::tests::validate_num_shards_rejects_zero ... ok
[INFO] [stdout] test commands::build_index_worker::tests::execute_mode_rejects_missing_plan ... ok
[INFO] [stdout] test commands::build_index::tests::run_rejects_zero_num_shards_before_loading_dataset ... ok
[INFO] [stdout] test commands::compare_ann::tests::comparable_aliases_pass_validation ... ok
[INFO] [stdout] test commands::build_index_worker::tests::merge_mode_rejects_missing_index_version_arg ... ok
[INFO] [stdout] test commands::compare_ann::tests::mismatched_dataset_is_rejected ... ok
[INFO] [stdout] test commands::compare_ann::tests::mismatched_metric_is_rejected ... ok
[INFO] [stdout] test commands::evaluate_partitioning::tests::run_errors_on_missing_index ... ok
[INFO] [stdout] test commands::build_index_worker::tests::merge_mode_rejects_missing_plan ... ok
[INFO] [stdout] test commands::compare_ann::tests::canonical_ann_family_distinguishes_ivf_flat_and_pq ... ok
[INFO] [stdout] test commands::build_index_worker::tests::plan_mode_rejects_missing_dataset ... ok
[INFO] [stdout] test commands::compare_ann::tests::canonical_ann_family_normalizes_hyphenated_names ... ok
[INFO] [stdout] test commands::build_index_worker::tests::execute_mode_rejects_out_of_range_worker_id ... ok
[INFO] [stdout] test commands::build_index_worker::tests::execute_mode_builds_shards ... ok
[INFO] [stdout] test commands::build_index_worker::tests::merge_mode_writes_manifest ... ok
[INFO] [stdout] test commands::build_index_worker::tests::plan_mode_writes_worker_plan_to_storage ... ok
[INFO] [stdout] test commands::build_index::tests::run_defaults_embedding_version_from_dataset_manifest ... ok
[INFO] [stdout] test commands::evaluate_partitioning::tests::run_succeeds_via_alias ... ok
[INFO] [stdout] test commands::generate::tests::validate_generate_args_rejects_negative_cluster_spread ... ok
[INFO] [stdout] test commands::ingest::tests::parse_records_rejects_dimension_mismatch ... ok
[INFO] [stdout] test commands::ingest::tests::dataset_manifest_dims_rejects_overflow ... ok
[INFO] [stdout] test commands::evaluate_partitioning::tests::run_succeeds_against_built_index_by_version ... ok
[INFO] [stdout] test commands::build_index::tests::parallel_build_with_single_worker_matches_sequential ... ok
[INFO] [stdout] test commands::evaluate_partitioning::tests::run_validates_nprobe_zero ... ok
[INFO] [stdout] test commands::build_index::tests::parallel_build_produces_valid_manifest ... ok
[INFO] [stdout] test commands::serve::tests::serve_args_accept_enable_debug_routes_flag ... ok
[INFO] [stdout] test commands::serve::tests::serve_args_debug_routes_disabled_by_default ... ok
[INFO] [stdout] test commands::serve::tests::load_bm25_index_returns_index_when_manifest_includes_lexical_artifact ... ok
[INFO] [stdout] test commands::serve::tests::serve_args_reject_zero_shard_cache_capacity ... ok
[INFO] [stdout] test commands::ingest::tests::run_rejects_empty_vector ... ok
[INFO] [stdout] test commands::validate_manifest::tests::validates_dataset_manifest_missing_artifacts ... ok
[INFO] [stdout] test commands::evaluate_partitioning::tests::run_validates_k_zero ... ok
[INFO] [stdout] test commands::validate_manifest::tests::validates_invalid_dataset_manifest_as_failure_report ... ok
[INFO] [stdout] test commands::validate_manifest::tests::validates_dataset_manifest_success ... ok
[INFO] [stdout] test commands::validate_manifest::tests::validates_both_manifests_together ... ok
[INFO] [stdout] test commands::generate::tests::run_writes_reproducible_vectors_jsonl ... ok
[INFO] [stdout] test commands::validate_manifest::tests::continues_after_index_load_error_when_dataset_requested_too ... ok
[INFO] [stdout] test commands::validate_manifest::tests::validates_index_manifest_missing_returns_error ... ok
[INFO] [stdout] test commands::ingest::tests::parse_records_rejects_empty_vector ... ok
[INFO] [stdout] test commands::build_index_worker::tests::merge_mode_preserves_plan_build_metadata ... ok
[INFO] [stdout] test commands::generate::tests::run_writes_expected_artifacts ... ok
[INFO] [stdout] test commands::ingest::tests::run_rejects_dimension_mismatch ... ok
[INFO] [stdout] test commands::generate::tests::validate_generate_args_rejects_zero_num_vectors ... ok
[INFO] [stdout] test commands::validate_manifest::tests::run_errors_when_no_versions_provided ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_core-9c2a063b23e7ed40)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test config::tests::query_config_rejects_zero_rerank_limit ... ok
[INFO] [stdout] test config::tests::prefetch_policy_rejects_zero_threshold_when_enabled ... ok
[INFO] [stdout] test config::tests::query_config_valid_with_all_fields ... ok
[INFO] [stdout] test config::tests::query_config_rejects_invalid_fan_out ... ok
[INFO] [stdout] test config::tests::query_config_rejects_zero_top_k ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_index-85a29acf37f87409)
[INFO] [stdout] test config::tests::system_config_rejects_zero_shard_cache_capacity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 203 tests
[INFO] [stdout] test bm25::tests::bm25_params_default_values ... ok
[INFO] [stdout] test bm25::tests::build_coalesces_duplicate_vector_ids_into_one_document ... ok
[INFO] [stdout] test bm25::tests::build_empty_documents_gives_empty_index ... ok
[INFO] [stdout] test bm25::tests::build_records_correct_doc_count_and_term_count ... ok
[INFO] [stdout] test bm25::tests::custom_params_affect_scores ... ok
[INFO] [stdout] test bm25::tests::from_bytes_rejects_unknown_posting_doc_ids ... ok
[INFO] [stdout] test bm25::tests::search_returns_at_most_k_results ... ok
[INFO] [stdout] test bm25::tests::doc_with_more_matching_terms_scores_higher ... ok
[INFO] [stdout] test bm25::tests::search_scores_are_negative ... ok
[INFO] [stdout] test bm25::tests::tokenize_lowercases ... ok
[INFO] [stdout] test bm25::tests::tokenize_only_punctuation ... ok
[INFO] [stdout] test bm25::tests::tokenize_splits_on_non_alphanumeric ... ok
[INFO] [stdout] test bm25::tests::search_with_k_zero_returns_empty ... ok
[INFO] [stdout] test bm25::tests::to_bytes_from_bytes_round_trip ... ok
[INFO] [stdout] test bm25::tests::search_returns_empty_for_unknown_term ... ok
[INFO] [stdout] test bm25::tests::from_bytes_rejects_bad_magic ... ok
[INFO] [stdout] test builder::tests::build_rejects_zero_num_shards ... ok
[INFO] [stdout] test builder::tests::build_rejects_zero_kmeans_sample_size ... ok
[INFO] [stdout] test builder::tests::build_rejects_pq_for_non_euclidean_metric ... ok
[INFO] [stdout] test bm25::tests::from_bytes_rejects_bad_version ... ok
[INFO] [stdout] test bm25::tests::save_and_load_via_object_store ... ok
[INFO] [stdout] test builder::tests::build_rejects_record_dimension_mismatch ... ok
[INFO] [stdout] test bm25::tests::search_scores_are_sorted_ascending_lower_is_more_relevant ... ok
[INFO] [stdout] test cache::tests::lru_cache_evicts_lru_when_full ... ok
[INFO] [stdout] test cache::tests::lru_cache_capacity_one ... ok
[INFO] [stdout] test cache::tests::lru_cache_insert_and_get ... ok
[INFO] [stdout] test cache::tests::lru_cache_update_promotes_existing_to_mru ... ok
[INFO] [stdout] test cache::tests::shard_cache_hit_returns_cached_value_without_reload ... ok
[INFO] [stdout] test cache::tests::shard_cache_is_empty_after_construction ... ok
[INFO] [stdout] test cache::tests::shard_cache_load_error_is_forwarded ... ok
[INFO] [stdout] test cache::tests::lru_cache_get_miss_on_empty ... ok
[INFO] [stdout] test cache::tests::shard_cache_miss_invokes_load ... ok
[INFO] [stdout] test bm25::tests::tokenize_empty_string ... ok
[INFO] [stdout] test exact::tests::test_distance_cosine_opposite_direction ... ok
[INFO] [stdout] test exact::tests::test_distance_cosine_zero_vector_returns_one ... ok
[INFO] [stdout] test exact::tests::test_distance_euclidean ... ok
[INFO] [stdout] test exact::tests::test_distance_inner_product_negated_dot ... ok
[INFO] [stdout] test exact::tests::test_distance_cosine_orthogonal ... ok
[INFO] [stdout] test builder::tests::build_omits_sample_size_when_sampling_is_not_needed ... ok
[INFO] [stdout] test exact::tests::test_exact_search_cosine ... ok
[INFO] [stdout] test exact::tests::test_exact_search_cosine_vs_euclidean_differ ... ok
[INFO] [stdout] test exact::tests::test_exact_search_euclidean ... ok
[INFO] [stdout] test exact::tests::test_exact_search_inner_product ... ok
[INFO] [stdout] test exact::tests::test_merge_top_k_deduplicates_ids_by_best_score ... ok
[INFO] [stdout] test exact::tests::test_precision_at_k_partial ... ok
[INFO] [stdout] test exact::tests::test_precision_at_k_perfect ... ok
[INFO] [stdout] test exact::tests::test_recall_at_k ... ok
[INFO] [stdout] test ivf::tests::from_bytes_rejects_payload_length_mismatch ... ok
[INFO] [stdout] test ivf::tests::assign_routes_to_correct_cluster ... ok
[INFO] [stdout] test exact::tests::test_distance_cosine_identical_direction ... ok
[INFO] [stdout] test builder::tests::build_without_recall_sample_size_omits_recall_estimate ... ok
[INFO] [stdout] test ivf::tests::from_bytes_rejects_wrong_magic ... ok
[INFO] [stdout] test ivf::tests::from_bytes_rejects_zero_clusters ... ok
[INFO] [stdout] test exact::tests::test_precision_at_k_empty_retrieved ... ok
[INFO] [stdout] test builder::tests::recall_estimate_works_with_pq_compression ... ok
[INFO] [stdout] test ivf::tests::from_bytes_rejects_zero_dims ... ok
[INFO] [stdout] test builder::tests::build_with_sample_size_assigns_all_vectors ... ok
[INFO] [stdout] test ivf::tests::roundtrip_serialisation ... ok
[INFO] [stdout] test ivf::tests::top_probes_returns_nprobe_clusters_sorted_by_distance ... ok
[INFO] [stdout] test cache::tests::shard_cache_reuses_existing_value_after_raced_load ... ok
[INFO] [stdout] test ivf::tests::train_clamps_clusters_to_vector_count ... ok
[INFO] [stdout] test ivf::tests::train_produces_correct_num_clusters ... ok
[INFO] [stdout] test builder::tests::build_with_recall_sample_size_populates_recall_estimate ... ok
[INFO] [stdout] test builder::tests::build_with_sample_size_is_deterministic ... ok
[INFO] [stdout] test kmeans::tests::test_kmeans_on_sample_finds_correct_clusters ... ok
[INFO] [stdout] test builder::tests::recall_estimate_is_deterministic ... ok
[INFO] [stdout] test kmeans::tests::test_kmeans_is_deterministic ... ok
[INFO] [stdout] test metrics::tests::test_default_creates_zeroed_metrics ... ok
[INFO] [stdout] test kmeans::tests::test_nearest_centroid ... ok
[INFO] [stdout] test metrics::tests::test_hit_rate_all_hits ... ok
[INFO] [stdout] test kmeans::tests::test_kmeans_basic ... ok
[INFO] [stdout] test metrics::tests::test_hit_rate_mixed ... ok
[INFO] [stdout] test metrics::tests::test_hit_rate_no_requests ... ok
[INFO] [stdout] test metrics::tests::test_initial_snapshot_is_zeroed ... ok
[INFO] [stdout] test metrics::tests::test_mean_load_latency_no_loads ... ok
[INFO] [stdout] test metrics::tests::test_mean_load_latency_single_load ... ok
[INFO] [stdout] test metrics::tests::test_record_load_attempt_and_retained_bytes_accumulate ... ok
[INFO] [stdout] test pipeline::tests::centroid_router_deduplicates_shards ... ok
[INFO] [stdout] test pipeline::tests::centroid_router_preserves_probe_order_when_deduplicating ... ok
[INFO] [stdout] test cache::tests::shard_cache_evicts_lru_entry ... ok
[INFO] [stdout] test pipeline::tests::exact_candidate_search_returns_nearest ... ok
[INFO] [stdout] test pipeline::tests::identity_embedder_returns_query_unchanged ... ok
[INFO] [stdout] test pipeline::tests::noop_reranker_returns_results_unchanged ... ok
[INFO] [stdout] test pipeline::tests::run_rejects_invalid_query_config ... ok
[INFO] [stdout] test pipeline::tests::pipeline_run_emits_shard_load_and_ann_search_spans ... ok
[INFO] [stdout] test plugin::tests::diskann_plugin_candidate_stage_is_sendable ... ok
[INFO] [stdout] test pipeline::tests::rerank_oversample_is_clamped_to_one ... ok
[INFO] [stdout] test plugin::tests::diskann_plugin_validate_accepts_euclidean ... ok
[INFO] [stdout] test plugin::tests::ann_family_unknown_name_returns_error ... ok
[INFO] [stdout] test plugin::tests::diskann_plugin_beam_width_accessor ... ok
[INFO] [stdout] test plugin::tests::ann_family_as_str_round_trips ... ok
[INFO] [stdout] test plugin::tests::diskann_plugin_validate_rejects_cosine ... ok
[INFO] [stdout] test pipeline::tests::search_alias_matches_run ... ok
[INFO] [stdout] test plugin::tests::diskann_plugin_validate_rejects_inner_product ... ok
[INFO] [stdout] test plugin::tests::hnsw_plugin_candidate_stage_is_sendable ... ok
[INFO] [stdout] test bm25::tests::term_present_in_all_docs_has_low_idf ... ok
[INFO] [stdout] test bm25::tests::search_is_case_insensitive ... ok
[INFO] [stdout] test bm25::tests::empty_index_round_trip ... ok
[INFO] [stdout] test plugin::tests::hnsw_plugin_validate_accepts_all_metrics ... ok
[INFO] [stdout] test pipeline::tests::pipeline_run_with_reranker_emits_rerank_span ... ok
[INFO] [stdout] test plugin::tests::hnsw_plugin_validate_rejects_ef_construction_less_than_m ... ok
[INFO] [stdout] test plugin::tests::hnsw_config_default_values_are_valid ... ok
[INFO] [stdout] test plugin::tests::hnsw_plugin_validate_rejects_zero_ef_search ... ok
[INFO] [stdout] test plugin::tests::hnsw_plugin_validate_rejects_zero_m ... ok
[INFO] [stdout] test plugin::tests::ivf_flat_plugin_candidate_stage_is_sendable ... ok
[INFO] [stdout] test plugin::tests::ivf_flat_plugin_family_name ... ok
[INFO] [stdout] test plugin::tests::ivf_flat_plugin_validate_accepts_all_metrics ... ok
[INFO] [stdout] test plugin::tests::hnsw_plugin_family_name ... ok
[INFO] [stdout] test plugin::tests::ivf_pq_plugin_candidate_stage_is_sendable ... ok
[INFO] [stdout] test plugin::tests::ivf_pq_plugin_family_name ... ok
[INFO] [stdout] test plugin::tests::ivf_pq_plugin_validate_accepts_euclidean ... ok
[INFO] [stdout] test plugin::tests::ivf_pq_plugin_validate_rejects_cosine ... ok
[INFO] [stdout] test plugin::tests::plugin_dispatch_based_on_family_name ... ok
[INFO] [stdout] test plugin::tests::registry_exists_returns_false_for_unknown_name ... ok
[INFO] [stdout] test plugin::tests::registry_exists_returns_true_for_known_names ... ok
[INFO] [stdout] test plugin::tests::registry_families_contains_all_builtins ... ok
[INFO] [stdout] test plugin::tests::registry_get_flat_rejects_ivf_pq_with_helpful_message ... ok
[INFO] [stdout] test plugin::tests::registry_get_flat_rejects_unknown_family ... ok
[INFO] [stdout] test plugin::tests::registry_get_flat_returns_diskann_plugin ... ok
[INFO] [stdout] test plugin::tests::registry_get_flat_returns_ivf_flat_plugin ... ok
[INFO] [stdout] test pq::tests::from_bytes_rejects_inconsistent_sub_dims ... ok
[INFO] [stdout] test pq::tests::from_bytes_rejects_invalid_params ... ok
[INFO] [stdout] test pq::tests::from_bytes_rejects_wrong_magic ... ok
[INFO] [stdout] test pq::tests::distance_table_rejects_dimension_mismatch ... ok
[INFO] [stdout] test pq::tests::train_clamps_codebook_size_to_available_vectors ... ok
[INFO] [stdout] test pq::tests::train_rejects_inconsistent_vector_dimensions ... ok
[INFO] [stdout] test pq::tests::train_rejects_invalid_params ... ok
[INFO] [stdout] test ranking::tests::normalize_all_equal_scores ... ok
[INFO] [stdout] test ranking::tests::normalize_all_nan_scores_returns_zeroes ... ok
[INFO] [stdout] test pq::tests::codebook_roundtrip ... ok
[INFO] [stdout] test ranking::tests::normalize_distinct_scores ... ok
[INFO] [stdout] test plugin::tests::registry_get_flat_returns_hnsw_plugin ... ok
[INFO] [stdout] test ranking::tests::normalize_empty_list ... ok
[INFO] [stdout] test ranking::tests::normalize_nan_scores_with_finite_scores_penalizes_nan_entries ... ok
[INFO] [stdout] test ranking::tests::normalize_negative_scores_bm25_convention ... ok
[INFO] [stdout] test pq::tests::encode_rejects_dimension_mismatch ... ok
[INFO] [stdout] test ranking::tests::normalize_single_element ... ok
[INFO] [stdout] test ranking::tests::policy_accepts_pure_bm25 ... ok
[INFO] [stdout] test ranking::tests::policy_accepts_pure_vector ... ok
[INFO] [stdout] test ranking::tests::policy_rejects_nan_vector_weight ... ok
[INFO] [stdout] test ranking::tests::policy_default_is_valid ... ok
[INFO] [stdout] test ranking::tests::policy_rejects_both_zero_weights ... ok
[INFO] [stdout] test ranking::tests::policy_rejects_nan_bm25_weight ... ok
[INFO] [stdout] test ranking::tests::policy_rejects_negative_vector_weight ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_both_empty_returns_empty ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_metadata_from_vector_takes_precedence ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_missing_bm25_score_penalized ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_blends_both_signals ... ok
[INFO] [stdout] test pq::tests::adc_distance_is_non_negative ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_k_larger_than_candidates ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_missing_vector_score_penalized ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_pure_bm25_ignores_vector ... ok
[INFO] [stdout] test ranking::tests::policy_rejects_negative_bm25_weight ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_pure_vector_ignores_bm25 ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_non_unit_weights_still_return_zero_one_scores ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_preserves_bm25_only_metadata ... ok
[INFO] [stdout] test pq::tests::encoding_is_deterministic ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_k_zero_returns_empty ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_scores_are_in_zero_one_range ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_truncates_to_k ... ok
[INFO] [stdout] test ranking::tests::rank_hybrid_stable_tie_breaking_by_id ... ok
[INFO] [stdout] test searcher::tests::load_shard_records_load_attempt_on_storage_error ... ok
[INFO] [stdout] test pq::tests::train_produces_correct_shape ... ok
[INFO] [stdout] test searcher::tests::load_pq_shard_records_load_attempt_on_storage_error ... ok
[INFO] [stdout] test searcher::tests::search_rejects_query_dimension_mismatch ... ok
[INFO] [stdout] test searcher::tests::candidate_shards_cap_limits_probed_shards ... ok
[INFO] [stdout] test searcher::tests::from_config_rejects_invalid_prefetch_policy ... ok
[INFO] [stdout] test searcher::tests::search_with_plan_rejects_dimension_mismatch ... ok
[INFO] [stdout] test shard::tests::pq_shard_rejects_code_out_of_range ... ok
[INFO] [stdout] test shard::tests::pq_shard_rejects_version_1_bytes ... ok
[INFO] [stdout] test shard::tests::pq_shard_roundtrip ... ok
[INFO] [stdout] test shard::tests::roundtrip ... ok
[INFO] [stdout] test worker::tests::plan_workers_clamps_num_workers_to_shard_count ... ok
[INFO] [stdout] test searcher::tests::searcher_falls_back_to_get_without_local_path ... ok
[INFO] [stdout] test shard::tests::encoded_len_matches_serialized_size_for_pq_shards ... ok
[INFO] [stdout] test worker::tests::plan_workers_is_reproducible ... ok
[INFO] [stdout] test worker::tests::plan_workers_records_build_metadata ... ok
[INFO] [stdout] test worker::tests::plan_workers_rejects_dimension_mismatch ... ok
[INFO] [stdout] test searcher::tests::max_vectors_per_shard_limits_candidates ... ok
[INFO] [stdout] test worker::tests::plan_workers_rejects_zero_num_shards ... ok
[INFO] [stdout] test worker::tests::plan_workers_rejects_zero_num_workers ... ok
[INFO] [stdout] test worker::tests::plan_workers_rejects_empty_records ... ok
[INFO] [stdout] test searcher::tests::search_with_plan_matches_search_results ... ok
[INFO] [stdout] test searcher::tests::search_with_plan_captures_routing_details ... ok
[INFO] [stdout] test pq::tests::encode_returns_valid_codes ... ok
[INFO] [stdout] test worker::tests::plan_workers_writes_coarse_quantizer_to_storage ... ok
[INFO] [stdout] test worker::tests::plan_workers_produces_correct_structure ... ok
[INFO] [stdout] test worker::tests::worker_execute_output_covers_all_assigned_shards ... ok
[INFO] [stdout] test worker::tests::worker_execute_writes_output_metadata_to_storage ... ok
[INFO] [stdout] test worker::tests::worker_plan_roundtrip_serialisation ... ok
[INFO] [stdout] test searcher::tests::prefetch_warms_hot_evicted_shards_on_runtime_search_path ... ok
[INFO] [stdout] test searcher::tests::searcher_uses_mmap_for_local_shards_when_path_is_available ... ok
[INFO] [stdout] test worker::tests::worker_execute_rejects_invalid_assignment_and_record_dims ... ok
[INFO] [stdout] test shard::tests::encoded_len_matches_serialized_size_for_raw_shards ... ok
[INFO] [stdout] test worker::tests::worker_execute_rejects_malformed_plan_inputs ... ok
[INFO] [stdout] test worker::tests::worker_execute_is_reproducible ... ok
[INFO] [stdout] test worker::tests::worker_execute_builds_shards_and_writes_output ... ok
[INFO] [stdout] test plugin::tests::diskann_plugin_family_name ... ok
[INFO] [stdout] test metrics::tests::test_hit_rate_all_misses ... ok
[INFO] [stdout] test ivf::tests::top_probes_clamped_by_num_clusters ... ok
[INFO] [stdout] test bm25::tests::to_bytes_is_deterministic_across_rebuilds ... ok
[INFO] [stdout] test pq::tests::adc_self_distance_is_near_zero ... ok
[INFO] [stdout] test plugin::tests::ivf_pq_plugin_validate_rejects_inner_product ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 203 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bm25.rs (/opt/rustwide/target/debug/deps/bm25-8b373eba6495e0ba)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test artifact_key_matches_paths_module ... ok
[INFO] [stdout] test build_empty_corpus ... ok
[INFO] [stdout] test build_indexes_all_documents ... ok
[INFO] [stdout] test custom_k1_and_b_are_persisted ... ok
[INFO] [stdout] test frequent_term_across_all_docs_has_lower_idf_contribution ... ok
[INFO] [stdout] test from_bytes_rejects_corrupt_posting_doc_ids ... ok
[INFO] [stdout] test duplicate_vector_ids_are_coalesced_deterministically ... ok
[INFO] [stdout] test search_k_zero_returns_empty ... ok
[INFO] [stdout] test lexical_index_config_serialises_and_deserialises ... ok
[INFO] [stdout] test search_respects_k_limit ... ok
[INFO] [stdout] test round_trip_via_bytes_preserves_search_results ... ok
[INFO] [stdout] test search_returns_ranked_results_for_single_term ... ok
[INFO] [stdout] test save_and_load_via_object_store_round_trip ... ok
[INFO] [stdout] test search_scores_are_sorted_ascending ... ok
[INFO] [stdout] test search_multi_term_query_ranks_better_matches_first ... ok
[INFO] [stdout] test zero_b_disables_length_normalisation ... ok
[INFO] [stdout] test search_unknown_term_returns_empty ... ok
[INFO] [stdout] test search_scores_are_negative ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cache.rs (/opt/rustwide/target/debug/deps/cache-854860d84a1e0d5d)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test shard_cache_default_capacity_is_128 ... ok
[INFO] [stdout] test shard_cache_lru_eviction ... ok
[INFO] [stdout] test shard_cache_hit_on_second_access ... ok
[INFO] [stdout] test shard_cache_miss_on_first_access ... ok
[INFO] [stdout] test cached_loader_returns_same_arc_on_repeat_access ... ok
[INFO] [stdout] test cached_loader_respects_custom_capacity ... ok
[INFO] [stdout] test index_searcher_with_tiny_cache_still_returns_results ... ok
[INFO] [stdout] test cached_loader_lazy_loads_shard_on_first_access ... ok
[INFO] [stdout] test shard_cache_capacity_from_system_config ... ok
[INFO] [stdout] test pipeline_builder_with_cache_capacity_propagates_limit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cache_metrics.rs (/opt/rustwide/target/debug/deps/cache_metrics-13e21a48fc268646)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test test_hit_rate_progression ... ok
[INFO] [stdout] test test_storage_error_records_attempt_without_retained_bytes ... ok
[INFO] [stdout] test test_decode_error_records_attempt_without_retained_bytes ... ok
[INFO] [stdout] test test_invalid_shard_does_not_record_fetch_metrics ... ok
[INFO] [stdout] test test_first_load_records_miss_and_load_metrics ... ok
[INFO] [stdout] test test_warm_cache_produces_only_hits ... ok
[INFO] [stdout] test test_second_load_records_hit ... ok
[INFO] [stdout] test test_retained_bytes_accumulate ... ok
[INFO] [stdout] test test_metrics_arc_reflects_live_updates ... ok
[INFO] [stdout] test test_multiple_shards_record_individual_misses ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/diskann.rs (/opt/rustwide/target/debug/deps/diskann-60c9443e94a5c553)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test ann_family_diskann_parses_and_round_trips ... ok
[INFO] [stdout] test diskann_default_beam_width_is_positive ... ok
[INFO] [stdout] test diskann_plugin_rejects_inner_product_metric ... ok
[INFO] [stdout] test diskann_plugin_validation_prevents_wrong_metric_pipeline ... ok
[INFO] [stdout] test diskann_plugin_family_is_diskann ... ok
[INFO] [stdout] test diskann_stage_does_not_scan_full_shard_when_beam_is_small ... ok
[INFO] [stdout] test diskann_stage_top_k_greater_than_beam_width_returns_k_results ... ok
[INFO] [stdout] test diskann_stage_result_count_is_min_k_shard_len ... ok
[INFO] [stdout] test diskann_plugin_rejects_cosine_metric ... ok
[INFO] [stdout] test diskann_stage_zero_k_returns_no_results ... ok
[INFO] [stdout] test registry_includes_diskann_family ... ok
[INFO] [stdout] test ann_family_diskann_is_not_default ... ok
[INFO] [stdout] test diskann_stage_probe_set_reaches_last_record ... ok
[INFO] [stdout] test diskann_stage_rejects_non_euclidean_metric ... ok
[INFO] [stdout] test registry_exists_returns_true_for_diskann ... ok
[INFO] [stdout] test diskann_stage_small_shard_returns_all_available ... ok
[INFO] [stdout] test diskann_plugin_accepts_euclidean_metric ... ok
[INFO] [stdout] test registry_get_flat_returns_diskann_plugin_with_default_beam_width ... ok
[INFO] [stdout] test diskann_plugin_wires_into_query_pipeline_and_returns_results ... ok
[INFO] [stdout] test diskann_plugin_with_wide_beam_matches_exact_quality ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-6b717baa5a06f8b1)
[INFO] [stderr]      Running tests/ivf.rs (/opt/rustwide/target/debug/deps/ivf-2ded618dc35220c4)
[INFO] [stderr]      Running tests/merge.rs (/opt/rustwide/target/debug/deps/merge-55e46c7d8c05faf9)
[INFO] [stderr]      Running tests/parallel_build.rs (/opt/rustwide/target/debug/deps/parallel_build-88df7b85ff973c01)
[INFO] [stdout] test diskann_stage_rejects_zero_beam_width ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_pq_build_rejects_non_euclidean_metric ... ok
[INFO] [stdout] test hnsw_build_rejects_invalid_hnsw_config ... ok
[INFO] [stdout] test test_build_is_deterministic ... ok
[INFO] [stdout] test test_pq_build_via_config ... ok
[INFO] [stdout] test test_build_and_search ... ok
[INFO] [stdout] test hnsw_searcher_uses_hnsw_plugin_for_hnsw_manifest ... ok
[INFO] [stdout] test test_pq_search_preserves_metadata ... ok
[INFO] [stdout] test hnsw_build_emits_hnsw_algorithm_in_manifest ... ok
[INFO] [stdout] test test_search_does_not_load_non_probed_shards ... ok
[INFO] [stdout] test test_candidate_shards_cap_keeps_nearest_shard_order ... ok
[INFO] [stdout] test test_pq_build_is_deterministic ... ok
[INFO] [stdout] test test_pq_build_and_search ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test ivf_quantizer_top_probes_ordered ... ok
[INFO] [stdout] test ivf_quantizer_separates_two_clusters ... ok
[INFO] [stdout] test ivf_quantizer_train_and_assign_basic ... ok
[INFO] [stdout] test build_compacts_empty_clusters_before_persisting_quantizer ... ok
[INFO] [stdout] test coarse_quantizer_centroids_match_shard_def_centroids ... ok
[INFO] [stdout] test build_persists_coarse_quantizer_artifact ... ok
[INFO] [stdout] test coarse_quantizer_key_matches_canonical_path ... ok
[INFO] [stdout] test build_emits_ivf_flat_algorithm ... ok
[INFO] [stdout] test build_records_num_clusters_in_params ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test merge_k_zero_returns_empty ... ok
[INFO] [stdout] test merge_deduplicates_keeps_best_score ... ok
[INFO] [stdout] test merge_all_same_id_returns_single_best ... ok
[INFO] [stdout] test merge_truncates_to_k ... ok
[INFO] [stdout] test merge_empty_input_returns_empty ... ok
[INFO] [stdout] test merge_global_top_k_across_multiple_shards ... ok
[INFO] [stdout] test merge_order_is_score_ascending_then_id_ascending ... ok
[INFO] [stdout] test merge_returns_all_when_fewer_than_k ... ok
[INFO] [stdout] test merge_empty_shard_among_non_empty ... ok
[INFO] [stdout] test merge_deduplicates_retains_metadata_of_best_entry ... ok
[INFO] [stdout] test merge_is_stable_regardless_of_input_order ... ok
[INFO] [stdout] test global_merge_trait_object_works ... ok
[INFO] [stdout] test merge_tie_broken_by_vector_id_ascending ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test parallel_build_writes_all_shard_artifacts ... ok
[INFO] [stdout] test parallel_build_is_deterministic ... ok
[INFO] [stdout] test parallel_build_propagates_shard_write_error ... ok
[INFO] [stdout] test parallel_build_shard_ids_are_sorted ... ok
[INFO] [stdout] test parallel_build_executes_shards_concurrently ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pipeline.rs (/opt/rustwide/target/debug/deps/pipeline-5376d7b30fb63e46)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test exact_rerank_stage_rescores_candidates ... ok
[INFO] [stdout] test pq_candidate_stage_rejects_non_euclidean_queries ... ok
[INFO] [stdout] test pq_candidate_stage_ranks_identical_vector_first ... ok
[INFO] [stdout] test test_mmap_min_size_bytes_constant ... ok
[INFO] [stdout] test cosine_and_euclidean_pipelines_produce_different_top_results_for_scale_differing_corpus ... ok
[INFO] [stdout] test pipeline_shard_load_failure_propagates ... ok
[INFO] [stdout] test pipeline_nprobe_limits_shards_probed ... ok
[INFO] [stdout] test test_mmap_loader_caches_shards ... ok
[INFO] [stdout] test test_mmap_loader_returns_same_results_as_cached_loader ... ok
[INFO] [stdout] test test_mmap_loader_fallback_for_small_files ... ok
[INFO] [stdout] test inner_product_pipeline_returns_query_vector_as_top_result ... ok
[INFO] [stdout] test pipeline_rerank_receives_only_merged_candidate_records ... ok
[INFO] [stdout] test cosine_pipeline_returns_query_vector_as_top_result ... ok
[INFO] [stdout] test pipeline_with_pq_stage_and_reranking_finds_correct_top1 ... ok
[INFO] [stdout] test pq_rerank_pipeline_matches_exact_topk_set ... ok
[INFO] [stdout] test pipeline_matches_searcher_results ... ok
[INFO] [stdout] test pipeline_shard_searches_run_concurrently ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/plugin.rs (/opt/rustwide/target/debug/deps/plugin-36117975e3ae9162)
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test ann_family_default_is_ivf_flat ... ok
[INFO] [stdout] test ann_family_parses_all_known_names ... ok
[INFO] [stdout] test hnsw_plugin_accepts_all_distance_metrics ... ok
[INFO] [stdout] test ann_family_display_matches_as_str ... ok
[INFO] [stdout] test hnsw_ann_family_round_trips ... ok
[INFO] [stdout] test hnsw_plugin_custom_config_is_accessible ... ok
[INFO] [stdout] test hnsw_plugin_satisfies_ann_plugin_trait ... ok
[INFO] [stdout] test hnsw_plugin_invalid_config_rejected_at_validation ... ok
[INFO] [stdout] test ivf_flat_plugin_satisfies_ann_plugin_trait ... ok
[INFO] [stdout] test registry_exists_for_known_families ... ok
[INFO] [stdout] test hnsw_plugin_ef_construction_less_than_m_is_rejected ... ok
[INFO] [stdout] test registry_does_not_exist_for_unknown_family ... ok
[INFO] [stdout] test ivf_pq_plugin_accepts_euclidean_metric ... ok
[INFO] [stdout] test ivf_pq_plugin_satisfies_ann_plugin_trait ... ok
[INFO] [stdout] test registry_get_flat_rejects_unknown_family ... ok
[INFO] [stdout] test registry_get_flat_returns_hnsw_plugin ... ok
[INFO] [stdout] test registry_exposes_all_builtin_families ... ok
[INFO] [stdout] test registry_get_flat_rejects_ivf_pq_with_actionable_message ... ok
[INFO] [stdout] test registry_get_flat_returns_diskann_plugin ... ok
[INFO] [stdout] test ivf_pq_plugin_rejects_cosine_metric ... ok
[INFO] [stdout] test ivf_pq_plugin_rejects_inner_product_metric ... ok
[INFO] [stdout] test registry_get_flat_returns_ivf_flat_plugin ... ok
[INFO] [stdout] test ivf_pq_plugin_validation_prevents_misconfigured_pipeline ... ok
[INFO] [stdout] test ivf_flat_plugin_accepts_all_distance_metrics ... ok
[INFO] [stdout] test ann_family_parse_unknown_returns_error ... ok
[INFO] [stdout] test hnsw_plugin_candidate_stage_searches_shard ... ok
[INFO] [stdout] test both_backends_wire_into_pipeline_via_plugin_interface ... ok
[INFO] [stdout] test ivf_flat_plugin_candidate_stage_searches_shard ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/prefetch.rs (/opt/rustwide/target/debug/deps/prefetch-72f656119412d509)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test prefetch_policy_validate_disabled_always_ok ... ok
[INFO] [stdout] test prefetch_policy_validate_enabled_zero_count_is_invalid ... ok
[INFO] [stdout] test prefetch_policy_validate_enabled_nonzero_count_is_ok ... ok
[INFO] [stdout] test loader_bounded_cache_does_not_exceed_capacity ... ok
[INFO] [stdout] test loader_disabled_policy_no_extra_loads ... ok
[INFO] [stdout] test loader_enabled_policy_threshold_not_met_no_warming ... ok
[INFO] [stdout] test loader_unbounded_cache_retains_all_loaded_shards ... ok
[INFO] [stdout] test loader_enabled_policy_warms_evicted_hot_shard ... ok
[INFO] [stdout] test loader_no_policy_loads_only_requested_shard ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ranking.rs (/opt/rustwide/target/debug/deps/ranking-ed365e4cf9e2acf0)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test blended_ranking_non_unit_weights_produce_valid_output ... ok
[INFO] [stdout] test both_empty_returns_empty ... ok
[INFO] [stdout] test blended_ranking_candidate_in_both_lists_ranks_first ... ok
[INFO] [stdout] test blended_ranking_deterministic_across_repeated_calls ... ok
[INFO] [stdout] test candidates_in_both_lists_rank_above_bm25_only ... ok
[INFO] [stdout] test k_larger_than_union_returns_all ... ok
[INFO] [stdout] test candidates_in_both_lists_rank_above_vector_only ... ok
[INFO] [stdout] test k_zero_returns_empty ... ok
[INFO] [stdout] test pure_vector_ranking_ordered_by_vector_score ... ok
[INFO] [stdout] test pure_bm25_ranking_ordered_by_bm25_score ... ok
[INFO] [stdout] test pure_vector_ranking_truncates_to_k ... ok
[INFO] [stdout] test hybrid_scores_always_non_negative ... ok
[INFO] [stdout] test pure_bm25_ranking_empty_vector_list ... ok
[INFO] [stdout] test ranking_stable_on_identical_hybrid_scores_tie_breaks_by_id_asc ... ok
[INFO] [stderr]      Running tests/rerank.rs (/opt/rustwide/target/debug/deps/rerank-428beff32f155402)
[INFO] [stdout] test single_candidate_in_each_list_no_overlap ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stderr]      Running tests/validation.rs (/opt/rustwide/target/debug/deps/validation-4706989c88947f53)
[INFO] [stdout] test rerank_cosine_distance_ordering ... ok
[INFO] [stdout] test rerank_top_result_is_stable_for_exact_ann ... ok
[INFO] [stdout] test rerank_corrects_approximate_scores ... ok
[INFO] [stdout] test rerank_scores_match_exact_euclidean_distance ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test test_validate_dataset_detects_missing_metadata_artifact ... ok
[INFO] [stdout] test test_validate_dataset_detects_missing_vectors_artifact ... ok
[INFO] [stdout] test test_validate_dataset_into_result_ok ... ok
[INFO] [stdout] test test_validate_dataset_detects_structural_failure ... ok
[INFO] [stdout] test test_validate_dataset_passes_with_artifacts_present ... ok
[INFO] [stdout] test test_validate_dataset_reports_storage_error_for_invalid_key ... ok
[INFO] [stdout] test test_validate_dataset_collects_both_missing_artifacts ... ok
[INFO] [stdout] test test_validate_index_into_result_err ... ok
[INFO] [stdout] test test_validate_index_detects_structural_failure ... ok
[INFO] [stdout] test test_validation_failure_display ... ok
[INFO] [stdout] test test_validate_index_collects_all_failures ... ok
[INFO] [stdout] test test_validate_index_detects_invalid_coarse_quantizer_artifact ... ok
[INFO] [stdout] test test_validate_index_detects_vector_count_mismatch ... ok
[INFO] [stdout] test test_validate_index_into_result_ok ... ok
[INFO] [stdout] test test_validate_index_detects_missing_coarse_quantizer_artifact ... ok
[INFO] [stdout] test test_validate_index_passes_with_all_artifacts_present ... ok
[INFO] [stdout] test test_validate_index_detects_missing_shard ... ok
[INFO] [stdout] test test_validate_index_detects_missing_vectors_artifact ... ok
[INFO] [stdout] test test_validate_index_detects_fingerprint_field_mismatch ... ok
[INFO] [stdout] test test_validate_index_detects_centroid_mismatch ... ok
[INFO] [stdout] test test_validate_index_detects_pq_parameter_mismatch ... ok
[INFO] [stdout] test test_validate_index_detects_fingerprint_mismatch ... ok
[INFO] [stdout] test test_validate_index_detects_dimension_mismatch ... ok
[INFO] [stdout] test test_validate_index_detects_missing_metadata_artifact ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/worker_merge.rs (/opt/rustwide/target/debug/deps/worker_merge-b3e09a9c72b3a47b)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test merge_preserves_coarse_quantizer_key ... ok
[INFO] [stdout] test merge_rejects_incompatible_index_version ... ok
[INFO] [stdout] test merge_includes_routing_metadata ... ok
[INFO] [stdout] test merge_rejects_duplicate_shard_across_workers ... ok
[INFO] [stdout] test merge_preserves_plan_build_metadata ... ok
[INFO] [stdout] test merge_is_deterministic_regardless_of_output_order ... ok
[INFO] [stdout] test merge_produces_valid_manifest ... ok
[INFO] [stdout] test merge_produces_correct_shard_summary ... ok
[INFO] [stdout] test merge_rejects_duplicate_worker_id ... ok
[INFO] [stdout] test merge_rejects_missing_shard ... ok
[INFO] [stdout] test merge_rejects_mismatched_shard_worker_id ... ok
[INFO] [stdout] test merge_respects_alias_param ... ok
[INFO] [stdout] test merge_rejects_missing_worker ... ok
[INFO] [stdout] test merge_rejects_out_of_range_worker_id ... ok
[INFO] [stdout] test merge_rejects_out_of_range_shard_id ... ok
[INFO] [stdout] test merge_saves_manifest_to_storage ... ok
[INFO] [stdout] test merge_rejects_empty_outputs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_manifest-616d2b72b7affa08)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/dataset_manifest.rs (/opt/rustwide/target/debug/deps/dataset_manifest-5f027e3bb2b8ac14)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_dataset_manifest_loads_legacy_info_json ... ok
[INFO] [stdout] test test_dataset_manifest_load_missing_returns_error ... ok
[INFO] [stdout] test test_dataset_manifest_validate_rejects_empty_metadata_key ... ok
[INFO] [stdout] test test_dataset_manifest_validate_rejects_empty_vectors_key ... ok
[INFO] [stdout] test test_dataset_manifest_validate_rejects_unsupported_version ... ok
[INFO] [stdout] test test_dataset_manifest_loads_legacy_info_json_from_store ... ok
[INFO] [stdout] test test_dataset_manifest_save_load_roundtrip ... ok
[INFO] [stdout] test test_dataset_manifest_validate_rejects_zero_dims ... ok
[INFO] [stdout] test test_dataset_manifest_validate_rejects_zero_vector_count ... ok
[INFO] [stderr]      Running tests/manifest.rs (/opt/rustwide/target/debug/deps/manifest-0458b9d44b09edf3)
[INFO] [stdout] test test_dataset_manifest_json_fields ... ok
[INFO] [stdout] test test_dataset_manifest_load_rejects_dataset_version_mismatch ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test test_check_algorithm_compat_mismatch ... ok
[INFO] [stdout] test test_check_algorithm_compat_uses_v1_default ... ok
[INFO] [stdout] test test_check_dataset_version_compat_mismatch ... ok
[INFO] [stdout] test test_check_algorithm_compat_ok ... ok
[INFO] [stdout] test test_check_dataset_version_compat_ok ... ok
[INFO] [stdout] test test_check_dimension_compat_mismatch ... ok
[INFO] [stdout] test test_full_compat_algorithm_only_ok ... ok
[INFO] [stdout] test test_check_dimension_compat_ok ... ok
[INFO] [stdout] test test_full_compat_extra_manifest_params_ignored ... ok
[INFO] [stdout] test test_full_compat_required_param_missing_from_manifest ... ok
[INFO] [stdout] test test_full_compat_algorithm_mismatch ... ok
[INFO] [stdout] test test_full_compat_required_param_value_mismatch ... ok
[INFO] [stdout] test test_alias_roundtrip ... ok
[INFO] [stdout] test test_full_compat_required_params_all_match ... ok
[INFO] [stdout] test test_full_compat_variant_caller_none_skips_check ... ok
[INFO] [stdout] test test_full_compat_variant_manifest_none_requested_some ... ok
[INFO] [stdout] test test_full_compat_variant_match_ok ... ok
[INFO] [stdout] test test_full_compat_variant_mismatch ... ok
[INFO] [stdout] test test_v1_manifest_defaults_new_fields ... ok
[INFO] [stdout] test test_load_accepts_compat_fingerprint_field ... ok
[INFO] [stdout] test test_v3_manifest_without_routing_passes_validation ... ok
[INFO] [stdout] test test_v1_save_upgrades_to_current_version ... ok
[INFO] [stdout] test test_v2_centroid_round_trips ... ok
[INFO] [stdout] test test_validate_bad_count ... ok
[INFO] [stdout] test test_validate_rejects_empty_fingerprint ... ok
[INFO] [stdout] test test_validate_rejects_empty_routing_centroid_id ... ok
[INFO] [stdout] test test_validate_rejects_empty_routing_file_location ... ok
[INFO] [stdout] test test_validate_rejects_enabled_false_with_pq8_codec ... ok
[INFO] [stdout] test test_validate_rejects_enabled_true_with_none_codec ... ok
[INFO] [stdout] test test_validate_rejects_empty_routing_index_type ... ok
[INFO] [stdout] test test_validate_rejects_invalid_recall_estimate ... ok
[INFO] [stdout] test test_validate_rejects_ivf_flat_without_coarse_quantizer_key ... ok
[INFO] [stdout] test test_validate_rejects_lexical_doc_count_mismatch ... ok
[INFO] [stdout] test test_validate_rejects_lexical_config_on_legacy_manifest_versions ... ok
[INFO] [stdout] test test_validate_rejects_none_codec_with_stale_pq_codebook_size ... ok
[INFO] [stdout] test test_validate_rejects_inconsistent_shard_summary ... ok
[INFO] [stdout] test test_validate_rejects_none_codec_with_stale_codebook_key ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_serve-be69bd080d3558ed)
[INFO] [stdout] test test_validate_rejects_none_codec_with_stale_pq_num_subspaces ... ok
[INFO] [stdout] test test_validate_rejects_pq8_codebook_size_exceeds_256 ... ok
[INFO] [stdout] test test_validate_rejects_pq8_empty_codebook_key ... ok
[INFO] [stdout] test test_save_load_roundtrip ... ok
[INFO] [stdout] test test_validate_accepts_valid_pq8_compression ... ok
[INFO] [stdout] test test_validate_rejects_pq8_missing_codebook_key ... ok
[INFO] [stdout] test test_validate_rejects_pq8_zero_codebook_size ... ok
[INFO] [stdout] test test_validate_rejects_pq8_missing_num_subspaces ... ok
[INFO] [stdout] test test_validate_rejects_unsupported_manifest_version ... ok
[INFO] [stdout] test test_validate_rejects_unknown_codec ... ok
[INFO] [stdout] test test_validate_rejects_negative_build_duration ... ok
[INFO] [stdout] test test_v4_round_trips_lifecycle_and_routing_fields ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stdout] test prom::tests::gather_increments_query_counters ... ok
[INFO] [stdout] test prom::tests::gather_reflects_cache_metric_snapshot ... ok
[INFO] [stdout] test prom::tests::gather_returns_expected_metric_families ... ok
[INFO] [stdout] test prom::tests::gather_uses_supplied_retained_bytes ... ok
[INFO] [stdout] test routes::tests::query_mode_defaults_to_vector_when_absent ... ok
[INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_no_bm25_index ... ok
[INFO] [stdout] test routes::tests::query_mode_lexical_returns_results ... ok
[INFO] [stdout] test routes::tests::metrics_route_contains_expected_metric_families ... ok
[INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_missing_query_text ... ok
[INFO] [stdout] test routes::tests::query_plan_route_rejects_zero_k ... ok
[INFO] [stdout] test routes::tests::query_plan_route_disabled_by_default ... ok
[INFO] [stdout] test routes::tests::query_mode_vector_rejects_missing_vector ... ok
[INFO] [stdout] test routes::tests::query_plan_route_rejects_dimension_mismatch ... ok
[INFO] [stdout] test routes::tests::query_route_accepts_distance_metric_override ... ok
[INFO] [stdout] test routes::tests::query_plan_route_searched_shards_subset_of_index_shards ... ok
[INFO] [stdout] test routes::tests::query_plan_route_returns_plan ... ok
[INFO] [stdout] test routes::tests::metrics_route_increments_after_query ... ok
[INFO] [stdout] test routes::tests::metrics_route_returns_200_with_prometheus_content_type ... ok
[INFO] [stdout] test routes::tests::query_mode_lexical_rejects_whitespace_only_query_text ... ok
[INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_punctuation_only_query_text ... ok
[INFO] [stdout] test routes::tests::query_mode_lexical_rejects_missing_query_text ... ok
[INFO] [stdout] test routes::tests::query_mode_hybrid_returns_results ... ok
[INFO] [stdout] test routes::tests::query_mode_hybrid_rejects_missing_vector ... ok
[INFO] [stdout] test routes::tests::query_mode_vector_explicit_returns_results ... ok
[INFO] [stdout] test routes::tests::query_mode_invalid_value_rejected ... ok
[INFO] [stdout] test routes::tests::query_mode_hybrid_rerank_limit_widens_bm25_candidates ... ok
[INFO] [stdout] test routes::tests::query_route_applies_distance_metric_override ... ok
[INFO] [stdout] test routes::tests::query_route_rejects_nprobe_overflow ... ok
[INFO] [stdout] test routes::tests::query_route_rejects_non_euclidean_metric_for_pq_indexes ... ok
[INFO] [stdout] test routes::tests::query_route_accepts_fan_out_overrides ... ok
[INFO] [stdout] test routes::tests::query_route_rejects_zero_k ... ok
[INFO] [stdout] test routes::tests::query_route_rejects_dimension_mismatch ... ok
[INFO] [stdout] test routes::tests::query_route_rejects_zero_rerank_limit ... ok
[INFO] [stdout] test routes::tests::query_route_rejects_zero_candidate_centroids ... ok
[INFO] [stdout] test routes::tests::query_route_returns_results ... ok
[INFO] [stdout] test routes::tests::query_route_accepts_rerank_limit ... ok
[INFO] [stdout] test routes::tests::query_route_nprobe_backward_compat ... ok
[INFO] [stdout] test routes::tests::query_route_with_rerank_returns_correct_top_result ... ok
[INFO] [stdout] test routes::tests::query_mode_lexical_rejects_no_bm25_index ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shardlake_storage-77ccdc0010dc4b0f)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test paths::tests::dataset_keys_have_stable_layout ... ok
[INFO] [stdout] test local::tests::put_get_list_and_delete_round_trip ... ok
[INFO] [stdout] test local::tests::rejects_path_traversal_and_absolute_keys ... ok
[INFO] [stdout] test local::tests::create_writer_persists_bytes_at_key ... ok
[INFO] [stdout] test paths::tests::index_keys_have_stable_layout ... ok
[INFO] [stdout] test paths::tests::index_lexical_key_has_stable_layout ... ok
[INFO] [stdout] test paths::tests::index_pq_codebook_key_has_stable_layout ... ok
[INFO] [stdout] test paths::tests::alias_key_has_stable_layout ... ok
[INFO] [stdout] test paths::tests::worker_keys_have_stable_layout ... ok
[INFO] [stdout] test s3::tests::all_operations_return_storage_error_other ... ok
[INFO] [stdout] test s3::tests::debug_output_redacts_credentials ... ok
[INFO] [stdout] test s3::tests::construction_succeeds_and_config_is_accessible ... ok
[INFO] [stderr]      Running tests/local.rs (/opt/rustwide/target/debug/deps/local-c0cdd1efab43d35b)
[INFO] [stdout] test s3::tests::error_messages_include_the_key ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_put_get_exists_delete ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shardlake_bench
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test crates/shardlake-bench/src/lib.rs - CostMetrics (line 69) ... ignored
[INFO] [stdout] test crates/shardlake-bench/src/lib.rs - EvalHybridReport (line 796) ... ignored
[INFO] [stdout] test crates/shardlake-bench/src/generate.rs - generate (line 10) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shardlake_core
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test crates/shardlake-core/src/types.rs - types::AnnFamily (line 61) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shardlake_index
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test crates/shardlake-index/src/plugin.rs - plugin (line 21) ... ignored
[INFO] [stdout] test crates/shardlake-index/src/plugin.rs - plugin::AnnPlugin (line 60) ... ignored
[INFO] [stdout] test crates/shardlake-index/src/plugin.rs - plugin::AnnRegistry (line 482) ... ignored
[INFO] [stdout] test crates/shardlake-index/src/pq.rs - pq (line 18) ... ignored
[INFO] [stdout] test crates/shardlake-index/src/validator.rs - validator (line 10) ... ignored
[INFO] [stdout] test crates/shardlake-index/src/worker.rs - worker::WorkerBuilder (line 646) ... ignored
[INFO] [stdout] test crates/shardlake-index/src/pipeline.rs - pipeline::MmapShardLoader (line 328) - compile ... ok
[INFO] [stdout] test crates/shardlake-index/src/bm25.rs - bm25::Bm25Index::build (line 143) ... ok
[INFO] [stdout] test crates/shardlake-index/src/metrics.rs - metrics::CacheMetrics (line 23) ... ok
[INFO] [stdout] test crates/shardlake-index/src/ranking.rs - ranking (line 59) ... ok
[INFO] [stdout] test crates/shardlake-index/src/bm25.rs - bm25::BM25Params (line 65) ... ok
[INFO] [stdout] test crates/shardlake-index/src/ranking.rs - ranking::HybridRankingPolicy (line 101) ... ok
[INFO] [stdout] test crates/shardlake-index/src/ivf.rs - ivf::IvfQuantizer (line 50) ... ok
[INFO] [stdout] test crates/shardlake-index/src/bm25.rs - bm25::Bm25Index (line 103) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 1.46s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shardlake_manifest
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shardlake_serve
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shardlake_storage
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test crates/shardlake-storage/src/s3.rs - s3 (line 30) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "edb3a86db75443069d050ce642cf520414378dab5f587d11a60ed7e66d8a298d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "edb3a86db75443069d050ce642cf520414378dab5f587d11a60ed7e66d8a298d", kill_on_drop: false }`
[INFO] [stdout] edb3a86db75443069d050ce642cf520414378dab5f587d11a60ed7e66d8a298d
