[INFO] cloning repository https://github.com/nullcline-labs/spec.ai
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nullcline-labs/spec.ai" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnullcline-labs%2Fspec.ai", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnullcline-labs%2Fspec.ai'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] abf67a5696adb5025822a2fdd0313d08069f1508
[INFO] testing nullcline-labs/spec.ai against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnullcline-labs%2Fspec.ai" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nullcline-labs/spec.ai
[INFO] finished tweaking git repo https://github.com/nullcline-labs/spec.ai
[INFO] tweaked toml for git repo https://github.com/nullcline-labs/spec.ai written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nullcline-labs/spec.ai on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nullcline-labs/spec.ai 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.110
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.110
[INFO] [stderr]   Downloaded sketches-ddsketch v0.3.0
[INFO] [stderr]   Downloaded compression-codecs v0.4.37
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.60
[INFO] [stderr]   Downloaded tokio-tungstenite v0.24.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.110
[INFO] [stderr]   Downloaded metrics-exporter-prometheus v0.16.2
[INFO] [stderr]   Downloaded quanta v0.12.6
[INFO] [stderr]   Downloaded metrics v0.24.3
[INFO] [stderr]   Downloaded axum-server v0.7.3
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.110
[INFO] [stderr]   Downloaded tungstenite v0.24.0
[INFO] [stderr]   Downloaded metrics-util v0.19.1
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded utoipa v5.4.0
[INFO] [stderr]   Downloaded async-compression v0.4.40
[INFO] [stderr]   Downloaded raw-cpuid v11.6.0
[INFO] [stderr]   Downloaded js-sys v0.3.87
[INFO] [stderr]   Downloaded utoipa-gen v5.4.0
[INFO] [stderr]   Downloaded aws-lc-rs v1.16.0
[INFO] [stderr]   Downloaded web-sys v0.3.87
[INFO] [stderr]   Downloaded aws-lc-sys v0.37.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5
[INFO] running `Command { std: "docker" "start" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", 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" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", 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" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling aws-lc-rs v1.16.0
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling fs-err v3.3.0
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling compression-core v0.4.31
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling compression-codecs v0.4.37
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling sketches-ddsketch v0.3.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling arc-swap v1.8.2
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling aws-lc-sys v0.37.1
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling metrics v0.24.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling utoipa-gen v5.4.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling metrics-util v0.19.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling async-compression v0.4.40
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling utoipa v5.4.0
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum-server v0.7.3
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.16.2
[INFO] [stderr]    Compiling specai-core v0.1.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling specai-server v0.1.0 (/opt/rustwide/workdir/crates/server)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 10s
[INFO] running `Command { std: "docker" "inspect" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", 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" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling utoipa-gen v5.4.0
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum-server v0.7.3
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.16.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling utoipa v5.4.0
[INFO] [stderr]    Compiling specai-core v0.1.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling specai-server v0.1.0 (/opt/rustwide/workdir/crates/server)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 56.54s
[INFO] running `Command { std: "docker" "inspect" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", 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" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/specai_core-9780351ae827e506)
[INFO] [stdout] 
[INFO] [stdout] running 63 tests
[INFO] [stdout] test circuit_breaker::tests::test_closed_allows_requests ... ok
[INFO] [stdout] test circuit_breaker::tests::test_opens_after_threshold_failures ... ok
[INFO] [stdout] test circuit_breaker::tests::test_open_rejects_requests ... ok
[INFO] [stdout] test cache::tests::test_global_capacity_limit ... ok
[INFO] [stdout] test cache::tests::test_counter_across_many_inserts ... ok
[INFO] [stdout] test cache::tests::test_insert_and_get ... ok
[INFO] [stdout] test cache::tests::test_remove_session ... ok
[INFO] [stdout] test embedder::cached::tests::test_cache_miss_different_text ... ok
[INFO] [stdout] test cache::tests::test_ring_buffer_overflow ... ok
[INFO] [stdout] test embedder::guarded::tests::test_failure_recorded ... ok
[INFO] [stdout] test embedder::cached::tests::test_cache_hit ... ok
[INFO] [stdout] test embedder::cached::tests::test_capacity_limit ... ok
[INFO] [stdout] test embedder::cached::tests::test_error_passthrough ... ok
[INFO] [stdout] test embedder::guarded::tests::test_health_check_default_impl ... ok
[INFO] [stdout] test engine::tests::test_close_session_removes_cache ... ok
[INFO] [stdout] test engine::tests::test_speculate_embed_failure ... ok
[INFO] [stdout] test engine::tests::test_speculate_stores_in_cache ... ok
[INFO] [stdout] test engine::tests::test_submit_miss_no_fallback_on_retriever_failure ... ok
[INFO] [stdout] test engine::tests::test_submit_cache_miss ... ok
[INFO] [stdout] test engine::tests::test_submit_cache_hit ... ok
[INFO] [stdout] test engine::tests::test_speculate_skips_short_query ... ok
[INFO] [stdout] test reranker::tests::test_alpha_one_preserves_order ... ok
[INFO] [stdout] test embedder::cached::tests::test_ttl_expiry ... ok
[INFO] [stdout] test reranker::tests::test_alpha_zero_ranks_by_text ... ok
[INFO] [stdout] test reranker::tests::test_reranker_reorders ... ok
[INFO] [stdout] test reranker::text_relevance::tests::test_case_insensitive ... ok
[INFO] [stdout] test cache::tests::test_evict_expired ... ok
[INFO] [stdout] test reranker::text_relevance::tests::test_empty_strings ... ok
[INFO] [stdout] test reranker::text_relevance::tests::test_identical_strings ... ok
[INFO] [stdout] test reranker::text_relevance::tests::test_partial_overlap ... ok
[INFO] [stdout] test reranker::text_relevance::tests::test_no_overlap ... ok
[INFO] [stdout] test reranker::text_relevance::tests::test_punctuation_stripped ... ok
[INFO] [stdout] test retriever::guarded::tests::test_failure_recorded ... ok
[INFO] [stdout] test retriever::guarded::tests::test_circuit_open_rejects ... ok
[INFO] [stdout] test retriever::guarded::tests::test_success_path ... ok
[INFO] [stdout] test retriever::guarded::tests::test_health_check_default_impl ... ok
[INFO] [stdout] test engine::tests::test_stats_counts ... ok
[INFO] [stdout] test engine::tests::test_submit_no_cache ... ok
[INFO] [stdout] test engine::tests::test_submit_partial_fallback_on_retriever_failure ... ok
[INFO] [stdout] test engine::tests::test_submit_retriever_failure ... ok
[INFO] [stdout] test embedder::guarded::tests::test_success_path ... ok
[INFO] [stdout] test embedder::guarded::tests::test_circuit_open_rejects ... ok
[INFO] [stdout] test similarity::tests::test_cosine_identical ... ok
[INFO] [stdout] test similarity::tests::test_cosine_opposite ... ok
[INFO] [stdout] test similarity::tests::test_cosine_orthogonal ... ok
[INFO] [stdout] test similarity::tests::test_gate_hit ... ok
[INFO] [stdout] test similarity::tests::test_cosine_zero_vector ... ok
[INFO] [stdout] test similarity::tests::test_gate_miss ... ok
[INFO] [stdout] test similarity::tests::test_gate_partial ... ok
[INFO] [stdout] test types::tests::test_cache_verdict_display ... ok
[INFO] [stdout] test circuit_breaker::tests::test_success_resets_to_closed ... ok
[INFO] [stdout] test circuit_breaker::tests::test_half_open_after_recovery_timeout ... ok
[INFO] [stdout] test embedder::http::tests::test_embed_api_error ... ok
[INFO] [stdout] test retriever::vectorsdb::tests::test_search_with_api_key ... ok
[INFO] [stdout] test embedder::http::tests::test_embed_empty_response ... ok
[INFO] [stdout] test embedder::http::tests::test_embed_success ... ok
[INFO] [stdout] test retriever::vectorsdb::tests::test_search_success ... ok
[INFO] [stdout] test retriever::vectorsdb::tests::test_multi_collection_truncates_to_top_k ... ok
[INFO] [stdout] test embedder::http::tests::test_embed_with_api_key ... ok
[INFO] [stdout] test retriever::vectorsdb::tests::test_search_api_error ... ok
[INFO] [stdout] test retriever::vectorsdb::tests::test_multi_collection_merge ... ok
[INFO] [stdout] test retriever::vectorsdb::tests::test_multi_collection_one_fails ... ok
[INFO] [stdout] test cache::eviction::tests::test_eviction_task_removes_expired_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/specai_server-ed83b4d8bf5b0978)
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test api::errors::tests::test_from_engine_error ... ok
[INFO] [stdout] test api::errors::tests::test_not_found_status ... ok
[INFO] [stdout] test api::auth::tests::test_no_lockout_below_threshold ... ok
[INFO] [stdout] test api::auth::tests::test_different_ips_tracked_independently ... ok
[INFO] [stdout] test api::auth::tests::test_success_resets_counter ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/spec_ai-e7d8c8e1c20b3e36)
[INFO] [stdout] test api::auth::tests::test_record_failure_increments_count ... ok
[INFO] [stdout] test api::errors::tests::test_bad_request_status ... ok
[INFO] [stdout] test api::auth::tests::test_lockout_expires_after_window ... ok
[INFO] [stdout] test api::errors::tests::test_service_unavailable_status ... ok
[INFO] [stdout] test api::auth::tests::test_lockout_triggers_after_max_failures ... ok
[INFO] [stdout] test api::auth::tests::test_record_failure_ignores_none_ip ... ok
[INFO] [stdout] test api::errors::tests::test_internal_status ... ok
[INFO] [stdout] test api::metrics::tests::test_record_request ... ok
[INFO] [stdout] test api::metrics::tests::test_record_speculation_timeout ... ok
[INFO] [stdout] test api::metrics::tests::test_update_engine_metrics_with_submissions ... ok
[INFO] [stdout] test api::metrics::tests::test_update_engine_metrics_zero_submissions ... ok
[INFO] [stdout] test api::validation::tests::test_empty_query ... ok
[INFO] [stdout] test api::metrics::tests::test_record_auth_failure ... ok
[INFO] [stdout] test api::validation::tests::test_empty_session_id ... ok
[INFO] [stdout] test api::validation::tests::test_query_at_max_length ... ok
[INFO] [stdout] test api::validation::tests::test_session_id_at_max_length ... ok
[INFO] [stdout] test api::validation::tests::test_too_long_query ... ok
[INFO] [stdout] test api::validation::tests::test_too_long_session_id ... ok
[INFO] [stdout] test api::validation::tests::test_valid_query ... ok
[INFO] [stdout] test api::validation::tests::test_session_id_with_special_chars ... ok
[INFO] [stdout] test api::validation::tests::test_valid_session_id ... ok
[INFO] [stdout] test api::ws::tests::test_ip_connection_counter_increment_decrement ... ok
[INFO] [stdout] test api::ws::tests::test_ip_connection_limit_at_max ... ok
[INFO] [stdout] test api::ws::tests::test_ip_connection_limit_different_ips ... ok
[INFO] [stdout] test api::ws::tests::test_ip_connection_limit_under_max ... ok
[INFO] [stdout] test api::ws::tests::test_origin_allowed_matching ... ok
[INFO] [stdout] test api::ws::tests::test_origin_allowed_when_no_restriction ... ok
[INFO] [stdout] test api::ws::tests::test_origin_empty_list_rejects_all ... ok
[INFO] [stdout] test api::ws::tests::test_origin_rejected_not_matching ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test tests::test_file_config_full_deserialize ... ok
[INFO] [stdout] test tests::test_allowed_origins_parsed ... ok
[INFO] [stdout] test tests::test_load_config_file_no_path_no_file ... ok
[INFO] [stdout] test tests::test_file_config_partial ... ok
[INFO] [stdout] test tests::test_file_config_with_allowed_origins ... ok
[INFO] [stdout] test tests::test_rerank_alpha_bounds ... ok
[INFO] [stdout] test tests::test_file_config_unknown_field_rejected ... ok
[INFO] [stdout] test tests::test_merge_config_cli_overrides_file ... ok
[INFO] [stdout] test tests::test_load_config_file_missing_explicit_path ... ok
[INFO] [stdout] test tests::test_merge_config_file_overrides_defaults ... ok
[INFO] [stdout] test tests::test_merge_config_empty_file_keeps_defaults ... ok
[INFO] [stdout] test tests::test_tls_cert_without_key_fails ... ok
[INFO] [stdout] test tests::test_threshold_validation_rejects_inverted ... ok
[INFO] [stdout] test tests::test_threshold_validation_accepts_valid ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-c1606f85443c26da)
[INFO] [stdout] test tests::test_tls_both_cert_and_key_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test test_auth_invalid_bearer_token ... ok
[INFO] [stdout] test test_auth_not_required_when_no_key_configured ... ok
[INFO] [stdout] test test_auth_protects_submit ... ok
[INFO] [stdout] test test_health_body_contains_status_ok ... ok
[INFO] [stdout] test test_auth_protects_ready ... ok
[INFO] [stdout] test test_auth_allows_submit_with_valid_key ... ok
[INFO] [stdout] test test_docs_returns_ok ... ok
[INFO] [stdout] test test_auth_missing_bearer_prefix ... ok
[INFO] [stdout] test test_health_body_contains_version ... ok
[INFO] [stdout] test test_health_bypasses_auth ... ok
[INFO] [stdout] test test_health_returns_json_content_type ... ok
[INFO] [stdout] test test_health_returns_ok ... ok
[INFO] [stdout] test test_metrics_returns_ok ... ok
[INFO] [stdout] test test_response_has_request_id_header ... ok
[INFO] [stdout] test test_auth_valid_bearer_token ... ok
[INFO] [stdout] test test_stats_initial_values_are_zero ... ok
[INFO] [stdout] test test_ready_returns_ok_with_healthy_mocks ... ok
[INFO] [stdout] test test_health_body_contains_uptime ... ok
[INFO] [stdout] test test_metrics_returns_text ... ok
[INFO] [stdout] test test_stats_body_contains_cache_hits ... ok
[INFO] [stdout] test test_stats_returns_json_content_type ... ok
[INFO] [stdout] test test_auth_required_when_key_set_missing_header ... ok
[INFO] [stdout] test test_auth_required_missing_header_error_body ... ok
[INFO] [stdout] test test_ready_returns_503_when_embedder_fails ... ok
[INFO] [stdout] test test_request_id_is_uuid_format ... ok
[INFO] [stdout] test test_auth_invalid_token_error_body ... ok
[INFO] [stdout] test test_auth_protects_metrics ... ok
[INFO] [stdout] test test_submit_empty_session_id ... ok
[INFO] [stdout] test test_stats_returns_ok ... ok
[INFO] [stdout] test test_submit_get_method_not_allowed ... ok
[INFO] [stdout] test test_stats_body_contains_predictions_total ... ok
[INFO] [stdout] test test_docs_contains_openapi ... ok
[INFO] [stdout] test test_submit_empty_query_error_message ... ok
[INFO] [stdout] test test_docs_contains_paths ... ok
[INFO] [stdout] test test_submit_empty_query ... ok
[INFO] [stdout] test test_submit_invalid_session_id_semicolon ... ok
[INFO] [stdout] test test_submit_invalid_session_id_slash ... ok
[INFO] [stdout] test test_submit_missing_content_type ... ok
[INFO] [stdout] test test_submit_query_too_long ... ok
[INFO] [stdout] test test_submit_invalid_json ... ok
[INFO] [stdout] test test_submit_returns_documents ... ok
[INFO] [stdout] test test_submit_returns_latency ... ok
[INFO] [stdout] test test_submit_missing_query_field ... ok
[INFO] [stdout] test test_ws_endpoint_without_upgrade_returns_error ... ok
[INFO] [stdout] test test_submit_updates_engine_stats ... ok
[INFO] [stdout] test test_submit_query_at_max_length ... ok
[INFO] [stdout] test test_ws_close_session ... ok
[INFO] [stdout] test test_unknown_route_returns_404 ... ok
[INFO] [stdout] test test_submit_valid_session_id_with_hyphens_and_underscores ... ok
[INFO] [stdout] test test_ws_origin_rejected ... ok
[INFO] [stdout] test test_ws_submit_returns_results ... ok
[INFO] [stdout] test test_ws_invalid_json_returns_error ... ok
[INFO] [stdout] test test_submit_verdict_is_miss_on_first_call ... ok
[INFO] [stdout] test test_submit_invalid_session_id_space ... ok
[INFO] [stdout] test test_submit_valid_request ... ok
[INFO] [stdout] test test_ws_invalid_session_id_returns_error ... ok
[INFO] [stdout] test test_ws_keystroke_triggers_speculation ... ok
[INFO] [stdout] test test_ws_cleanup_on_disconnect ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests specai_core
[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 specai_server
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5", kill_on_drop: false }`
[INFO] [stdout] 35ff63b3a384a0e5820738a207edb4fd6420796fbf8dd6409e1a1001a413c5f5
