[INFO] cloning repository https://github.com/Episkey-G/GrokSearch-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Episkey-G/GrokSearch-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEpiskey-G%2FGrokSearch-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEpiskey-G%2FGrokSearch-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] de86cd1bd59540a7a1aad353bb978fa148025ba5 [INFO] testing Episkey-G/GrokSearch-rs 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%2FEpiskey-G%2FGrokSearch-rs" "/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/Episkey-G/GrokSearch-rs [INFO] finished tweaking git repo https://github.com/Episkey-G/GrokSearch-rs [INFO] tweaked toml for git repo https://github.com/Episkey-G/GrokSearch-rs written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Episkey-G/GrokSearch-rs 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/Episkey-G/GrokSearch-rs 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] 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] 5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199 [INFO] running `Command { std: "docker" "start" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", 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" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199" "/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" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", 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" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling cc v1.2.62 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling rustls v0.23.40 [INFO] [stderr] Compiling compression-core v0.4.32 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling webpki-roots v1.0.7 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling compression-codecs v0.4.38 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling async-compression v0.4.42 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tower-http v0.6.10 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling grok-search-rs v0.1.17 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.64s [INFO] running `Command { std: "docker" "inspect" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", 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" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199" "/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 tempfile v3.27.0 [INFO] [stderr] Compiling tower-http v0.6.10 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling grok-search-rs v0.1.17 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 20.64s [INFO] running `Command { std: "docker" "inspect" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", 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" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199" "/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.30s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/grok_search_rs-7065f31749eb543f) [INFO] [stdout] [INFO] [stdout] running 90 tests [INFO] [stdout] test config::source_config_tests::enrich_config_defaults_hold ... ok [INFO] [stdout] test config::source_config_tests::enrich_concurrency_reads_env_and_clamps ... ok [INFO] [stdout] test config::source_config_tests::debug_does_not_leak_secret_values ... ok [INFO] [stdout] test config::source_config_tests::source_caps_defaults_hold ... ok [INFO] [stdout] test config::source_config_tests::github_token_present_and_filtered ... ok [INFO] [stdout] test config::source_config_tests::source_max_answers_reads_env ... ok [INFO] [stdout] test config::transport_field_tests::transport_chat_completions_when_only_compat_set ... ok [INFO] [stdout] test config::source_config_tests::source_max_comments_reads_env ... ok [INFO] [stdout] test config::transport_field_tests::transport_defaults_to_responses_when_only_grok_set ... ok [INFO] [stdout] test config::transport_field_tests::transport_prefers_grok_when_both_set ... ok [INFO] [stdout] test mcp::tests::tools_list_descriptions_guide_routing ... ok [INFO] [stdout] test model::source::tests::source_content_none_omitted_from_json ... ok [INFO] [stdout] test model::source::tests::source_content_some_appears_in_json ... ok [INFO] [stdout] test model::tool::tests::web_fetch_output_includes_source_type_and_omits_none_fallback_reason ... ok [INFO] [stdout] test model::tool::tests::web_fetch_output_serializes_fallback_reason_when_present ... ok [INFO] [stdout] test oauth::login::tests::callback_line_extracts_code_and_state ... ok [INFO] [stdout] test mcp::tests::web_map_returns_url_sources_without_search_metadata ... ok [INFO] [stdout] test mcp::tests::initialized_notification_does_not_emit_response ... ok [INFO] [stdout] test mcp::tests::ping_request_gets_empty_success_response ... ok [INFO] [stdout] test oauth::pkce::tests::pkce_challenge_is_s256_url_safe_no_pad ... ok [INFO] [stdout] test config::transport_field_tests::loads_openai_compatible_fields_from_env ... ok [INFO] [stdout] test oauth::token_store::tests::damaged_token_file_returns_error ... ok [INFO] [stdout] test oauth::token_store::tests::detects_expiring_tokens ... ok [INFO] [stdout] test oauth::token_store::tests::parses_jwt_exp ... ok [INFO] [stdout] test oauth::token_store::tests::save_and_load_token_store_round_trips ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::all_empty_segments_fall_back_to_raw_value ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::comma_separated_keys_split_trim_and_drop_empties ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::key_indexing_wraps_for_failover_offsets ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::key_scoped_statuses_trigger_rotation_only ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::rotation_cursor_is_shared_across_provider_clones ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::single_key_parses_to_one_entry ... ok [INFO] [stdout] test providers::tavily::key_ring_tests::start_rotates_round_robin_across_requests ... ok [INFO] [stdout] test service::enrich_tests::enrich_specialist_failure_rescued_by_generic_fetch ... ok [INFO] [stdout] test service::enrich_tests::enrich_generic_url_uses_provider_fetch_fallback ... ok [INFO] [stdout] test service::enrich_tests::extra_sources_zero_suppresses_inline ... ok [INFO] [stdout] test service::enrich_tests::include_content_false_omits_content_field ... ok [INFO] [stdout] test service::transport_dispatch_tests::default_model_falls_back_to_grok_model_when_compat_model_missing ... ok [INFO] [stdout] test service::transport_dispatch_tests::default_model_follows_chat_completions_when_compat_model_set ... ok [INFO] [stdout] test service::transport_dispatch_tests::default_model_uses_grok_model_on_responses_transport ... ok [INFO] [stdout] test service::enrich_tests::enrich_fault_isolation_one_fails_rest_ok ... ok [INFO] [stdout] test service::transport_dispatch_tests::doctor_reports_github_token_status ... ok [INFO] [stdout] test service::transport_dispatch_tests::doctor_reports_openai_compatible_transport_fields ... ok [INFO] [stdout] test service::enrich_tests::get_sources_inherits_enriched_content ... ok [INFO] [stdout] test service::transport_dispatch_tests::fake_with_router_constructs_and_clones ... ok [INFO] [stdout] test service::transport_dispatch_tests::service_constructs_for_chat_completions_transport ... ok [INFO] [stdout] test service::transport_dispatch_tests::service_rejects_chat_completions_without_url ... ok [INFO] [stdout] test sources::github::tests::comments_url_clamps_per_page_to_github_max ... ok [INFO] [stdout] test sources::github::tests::comments_url_requests_one_more_than_cap ... ok [INFO] [stdout] test sources::arxiv::tests::extract_id_strips_pdf_suffix ... ok [INFO] [stdout] test sources::stackexchange::tests::answers_pagesize_requests_one_more_than_cap_capped_at_100 ... ok [INFO] [stdout] test sources::stackexchange::tests::answers_url_requests_markdown_filter_and_vote_sort ... ok [INFO] [stdout] test sources::github::tests::parse_review_bodies_skips_empty_and_maps_submitted_at ... ok [INFO] [stdout] test sources::stackexchange::tests::decode_entities_handles_named_decimal_and_hex ... ok [INFO] [stdout] test service::transport_dispatch_tests::doctor_still_reports_grok_responses_on_responses_transport ... ok [INFO] [stdout] test service::enrich_tests::enrich_truncates_to_max_chars ... ok [INFO] [stdout] test service::enrich_tests::web_search_inline_default_fills_content ... ok [INFO] [stdout] test sources::stackexchange::tests::field_str_decodes_html_entities_in_body_markdown ... ok [INFO] [stdout] test sources::stackexchange::tests::decode_entities_leaves_unknown_and_bare_ampersand_intact ... ok [INFO] [stdout] test sources::arxiv::tests::extract_id_handles_abs_and_extensionless_pdf ... ok [INFO] [stdout] test sources::github::tests::pr_endpoints_target_pulls_paths ... ok [INFO] [stdout] test sources::github::tests::parse_comments_maps_user_login_and_timestamps ... ok [INFO] [stdout] test sources::stackexchange::tests::field_str_prefers_body_markdown_over_html_body ... ok [INFO] [stdout] test sources::stackexchange::tests::site_from_host_keeps_mathoverflow_full_domain ... ok [INFO] [stdout] test sources::stackexchange::tests::question_url_requests_markdown_filter_not_withbody ... ok [INFO] [stdout] test sources::stackexchange::tests::is_se_host_accepts_per_site_meta_hosts ... ok [INFO] [stdout] test sources::stackexchange::tests::site_from_host_maps_meta_mathoverflow ... ok [INFO] [stdout] test sources::stackexchange::tests::site_from_host_maps_per_site_meta_hosts ... ok [INFO] [stdout] test sources::stackexchange::tests::site_from_host_preserves_meta_stackexchange ... ok [INFO] [stdout] test sources::stackexchange::tests::site_from_host_strips_regular_stackexchange_subdomain ... ok [INFO] [stdout] test sources::tests::empty_router_finds_nothing ... ok [INFO] [stdout] test sources::tests::router_returns_first_matching_extractor_in_order ... ok [INFO] [stdout] test sources::tests::source_type_as_str_matches_serialization ... ok [INFO] [stdout] test sources::tests::resolve_content_empty_render_falls_back ... ok [INFO] [stdout] test sources::tests::source_type_serializes_to_required_snake_case_strings ... ok [INFO] [stdout] test sources::wikipedia::tests::build_api_url_does_not_double_encode_preencoded_title ... ok [INFO] [stdout] test sources::tests::source_caps_default_is_5_answers_30_comments ... ok [INFO] [stdout] test sources::tests::router_with_extractor_finds_first_match ... ok [INFO] [stdout] test sources::tests::resolve_content_err_returns_labeled_reason ... ok [INFO] [stdout] test sources::wikipedia::tests::excluded_namespace_allows_real_articles ... ok [INFO] [stdout] test sources::tests::get_json_maps_connection_failure_to_err ... ok [INFO] [stdout] test sources::tests::resolve_content_ok_returns_content_and_kind ... ok [INFO] [stdout] test sources::tests::get_text_maps_connection_failure_to_err ... ok [INFO] [stdout] test sources::wikipedia::tests::build_api_url_requests_full_article_not_intro ... ok [INFO] [stdout] test sources::wikipedia::tests::build_api_url_encodes_query_delimiters_in_title ... ok [INFO] [stdout] test sources::tests::resolve_content_no_match_returns_sentinel ... ok [INFO] [stdout] test sources::wikipedia::tests::excluded_namespace_decodes_encoded_colon ... ok [INFO] [stdout] test sources::wikipedia::tests::excluded_namespace_is_case_insensitive ... ok [INFO] [stdout] test service::enrich_tests::counting_extractor_self_test ... ok [INFO] [stdout] test service::enrich_tests::enrich_concurrency_is_bounded ... ok [INFO] [stdout] test service::enrich_tests::enrich_timeout_yields_note_not_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/grok_search_rs-a0115eb9c6ddc649) [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/adapter_grok_responses.rs (/opt/rustwide/target/debug/deps/adapter_grok_responses-d76de911e685c723) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test parses_inline_bracket_citations_from_message_text ... ok [INFO] [stderr] Running tests/config.rs (/opt/rustwide/target/debug/deps/config-27cfa86436dd566a) [INFO] [stdout] test grok_responses_payload_includes_web_search_by_default ... ok [INFO] [stdout] test grok_responses_payload_adds_x_search_only_when_enabled ... ok [INFO] [stdout] test web_search_enabled_requires_tool_intent ... ok [INFO] [stdout] test parses_output_text_fallback ... ok [INFO] [stdout] test inline_citations_dedupe_against_structured_sources ... ok [INFO] [stdout] test parses_grok_responses_text_annotations_and_search_call_sources ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 28 tests [INFO] [stdout] test auth_path_falls_back_to_userprofile_when_home_missing ... ok [INFO] [stdout] test auth_path_uses_config_sibling_by_default ... ok [INFO] [stdout] test auth_path_honors_explicit_override ... ok [INFO] [stdout] test config_enables_x_search_only_when_configured ... ok [INFO] [stdout] test config_path_falls_back_to_userprofile_when_home_missing ... ok [INFO] [stdout] test config_normalizes_grok_search_url_to_v1_base ... ok [INFO] [stdout] test config_path_none_when_no_env_set ... ok [INFO] [stdout] test config_file_supplies_values_when_env_absent ... ok [INFO] [stdout] test config_file_supports_all_documented_keys ... ok [INFO] [stdout] test config_path_honors_explicit_env_override ... ok [INFO] [stdout] test config_path_explicit_override_wins_over_home ... ok [INFO] [stdout] test config_path_uses_home_on_unix_layout ... ok [INFO] [stdout] test config_path_prefers_home_over_userprofile_when_both_set ... ok [INFO] [stdout] test config_reads_auth_file_override ... ok [INFO] [stdout] test config_reads_extra_sources_and_fallback_sources_from_env ... ok [INFO] [stdout] test config_reads_firecrawl_settings ... ok [INFO] [stdout] test config_reads_grok_search_responses_defaults ... ok [INFO] [stdout] test config_reads_oauth_auth_mode_from_env ... ok [INFO] [stdout] test config_reads_timeout_seconds ... ok [INFO] [stdout] test config_redacts_grok_tavily_and_firecrawl_keys ... ok [INFO] [stdout] test invalid_source_counts_fall_back_to_safe_defaults ... ok [INFO] [stdout] test oauth_transport_wins_over_openai_compatible_config ... ok [INFO] [stdout] test response_budget_defaults_and_env_overrides ... ok [INFO] [stdout] test unknown_auth_mode_falls_back_to_api_key ... ok [INFO] [stdout] test missing_config_file_falls_back_to_env_and_defaults ... ok [INFO] [stdout] test fresh_template_does_not_override_defaults_or_supply_credentials ... ok [INFO] [stdout] test env_overrides_config_file_values ... ok [INFO] [stderr] Running tests/integration_compat.rs (/opt/rustwide/target/debug/deps/integration_compat-693be5e27031d20c) [INFO] [stdout] test write_template_creates_file_then_is_idempotent ... 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] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test chat_completions_e2e_returns_text_and_sources ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/integration_service.rs (/opt/rustwide/target/debug/deps/integration_service-9d546a58c9be2be6) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test full_service_web_search_via_chat_completions ... ignored [INFO] [stderr] Running tests/logging.rs (/opt/rustwide/target/debug/deps/logging-b1ff59fc5c549215) [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Running tests/openai_compatible_adapter.rs (/opt/rustwide/target/debug/deps/openai_compatible_adapter-7f498267da1cec0c) [INFO] [stdout] test debug_log_redacts_authorization_and_api_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test errors_when_content_empty_and_no_sources ... ok [INFO] [stdout] test payload_omits_tools_when_disabled ... ok [INFO] [stdout] test provider_request_model_overrides_self_model ... ok [INFO] [stdout] test user_system_overrides_default_hint ... ok [INFO] [stdout] test payload_includes_tools_when_web_search_enabled ... ok [INFO] [stdout] test extracts_perplexity_style_message_citations ... ok [INFO] [stdout] test extracts_array_form_message_content ... ok [INFO] [stdout] test inline_scanner_recovers_after_malformed_citation ... ok [INFO] [stdout] test extracts_openai_nested_url_citation_annotations ... ok [INFO] [stdout] test extracts_top_level_search_sources ... ok [INFO] [stdout] test extracts_inline_bracket_citations_from_content ... ok [INFO] [stdout] test extracts_openai_style_annotations ... ok [INFO] [stdout] test merges_and_dedupes_across_all_paths ... ok [INFO] [stdout] test provider_endpoint_appends_chat_completions ... ok [INFO] [stdout] test provider_endpoint_strips_trailing_slash ... ok [INFO] [stdout] test provider_endpoint_normalizes_root_url_to_v1 ... ok [INFO] [stdout] test provider_endpoint_normalizes_full_endpoint_input ... 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 tests/response_budget.rs (/opt/rustwide/target/debug/deps/response_budget-2023398eda0bc72f) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test response_format_concise_omits_inline_content ... ok [INFO] [stdout] test budget_counts_metadata_and_drops_tail_sources ... ok [INFO] [stdout] test inline_content_capped_to_max_inline_sources ... ok [INFO] [stdout] test get_sources_paginates_with_offset_limit ... ok [INFO] [stdout] test response_format_invalid_value_is_rejected ... ok [INFO] [stdout] test response_within_budget_is_not_truncated ... ok [INFO] [stdout] test response_format_detailed_overrides_include_content_false ... ok [INFO] [stdout] test response_budget_trims_tail_and_cache_keeps_full_content ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/service_contract.rs (/opt/rustwide/target/debug/deps/service_contract-d05ab62484aa5594) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test service_requires_grok_search_api_key ... ok [INFO] [stdout] test web_fetch_no_specialist_match_has_no_fallback_reason ... ok [INFO] [stdout] test get_sources_returns_same_payload_repeatedly ... ok [INFO] [stdout] test web_fetch_source_type_present_on_normal_fetch ... ok [INFO] [stdout] test fallback_honors_include_content_false ... ok [INFO] [stdout] test web_fetch_specialist_err_falls_back_to_generic ... ok [INFO] [stdout] test web_fetch_truncates_to_max_chars_when_explicit ... ok [INFO] [stdout] test web_search_fallback_reason_reflects_grok_error_kind ... ok [INFO] [stdout] test web_fetch_specialist_empty_render_falls_back_to_generic ... ok [INFO] [stdout] test web_fetch_uses_firecrawl_when_tavily_fetch_fails ... ok [INFO] [stdout] test web_fetch_truncates_via_env_default ... ok [INFO] [stdout] test web_search_speculation_serves_enrichment_with_one_source_call ... ok [INFO] [stdout] test web_search_returns_content_and_caches_sources ... ok [INFO] [stdout] test web_search_uses_env_default_extra_sources_after_grok_success ... ok [INFO] [stdout] test web_search_success_path_returns_inline_sources ... ok [INFO] [stderr] Running tests/source_merge.rs (/opt/rustwide/target/debug/deps/source_merge-b82b3a7734ad9dba) [INFO] [stdout] test web_search_falls_back_to_tavily_when_grok_has_no_sources ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/sources_render.rs (/opt/rustwide/target/debug/deps/sources_render-d7ec405406724321) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test merge_sources_dedupes_by_url_and_preserves_first_provider ... ok [INFO] [stdout] test source_provider_field_accepts_static_str_via_cow ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 23 tests [INFO] [stdout] test arxiv_matcher_negative_non_paper_paths ... ok [INFO] [stdout] test arxiv_matcher_positive_abs_and_pdf ... ok [INFO] [stdout] test arxiv_parse_atom_lists_all_authors ... ok [INFO] [stdout] test arxiv_parse_atom_returns_categories ... ok [INFO] [stdout] test arxiv_parse_atom_returns_pdf_link ... ok [INFO] [stdout] test github_issue_render_folds_comments_at_cap ... ok [INFO] [stdout] test github_issue_render_shows_labels ... ok [INFO] [stdout] test github_issue_render_shows_title_and_state ... ok [INFO] [stdout] test arxiv_render_shows_title_and_pdf_link ... ok [INFO] [stdout] test github_pr_render_shows_merged_state ... ok [INFO] [stdout] test github_matcher_strict_positive_and_negative ... ok [INFO] [stdout] test arxiv_parse_atom_returns_title ... ok [INFO] [stdout] test se_matcher_full_network_positive ... ok [INFO] [stdout] test se_matcher_non_question_negative ... ok [INFO] [stdout] test se_render_accepted_answer_includes_comments ... ok [INFO] [stdout] test se_render_accepted_answer_marked_and_first ... ok [INFO] [stdout] test se_render_folds_extra_answers_at_cap ... ok [INFO] [stdout] test se_render_other_answers_have_no_comments ... ok [INFO] [stdout] test wiki_matcher_excludes_all_non_article_namespaces ... ok [INFO] [stdout] test wiki_matcher_positive_article_urls ... ok [INFO] [stdout] test wiki_parse_page_extracts_title_body_and_lang ... ok [INFO] [stdout] test wiki_render_produces_clean_plaintext ... ok [INFO] [stdout] test wiki_render_shows_title_and_body ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/sse_bug_repro.rs (/opt/rustwide/target/debug/deps/sse_bug_repro-4f407409c82f31fc) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test post_json_errors_on_response_failed_terminal_event ... ok [INFO] [stdout] test post_json_returns_when_done_event_has_no_data ... ok [INFO] [stdout] test post_json_preserves_metadata_only_chat_stream ... ok [INFO] [stdout] test post_json_decodes_sse_utf8_after_full_event_boundary ... ok [INFO] [stdout] test post_json_preserves_chat_stream_metadata ... ok [INFO] [stdout] test post_json_parses_trailing_sse_event_at_eof ... ok [INFO] [stdout] test post_json_returns_when_stream_true_sse_completed_without_connection_close ... ok [INFO] [stdout] test post_json_returns_when_stream_false_still_gets_sse ... ok [INFO] [stdout] test post_json_returns_when_done_event_has_empty_data ... ok [INFO] [stdout] test post_json_splits_cr_only_sse_events ... ok [INFO] [stdout] test post_json_uses_earliest_mixed_sse_delimiter ... ok [INFO] [stdout] test post_json_strips_initial_sse_bom ... ok [INFO] [stdout] test post_json_returns_when_done_event_has_json_payload ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/tavily_parse.rs (/opt/rustwide/target/debug/deps/tavily_parse-e9a5045e814341b7) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test limit_tavily_results_truncates_api_results ... ok [INFO] [stdout] test normalizes_tavily_map_string_results ... ok [INFO] [stdout] test tavily_search_body_omits_filters_when_empty ... ok [INFO] [stdout] test tavily_search_body_serializes_filters ... ok [INFO] [stdout] test tavily_map_request_uses_limit_not_max_results ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/tavily_rotation.rs (/opt/rustwide/target/debug/deps/tavily_rotation-7444f9de5b6df57b) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test single_key_exhausts_without_retry ... ok [INFO] [stdout] test key_scoped_failure_rotates_to_next_key_and_succeeds ... ok [INFO] [stdout] test upstream_5xx_fails_fast_without_rotation ... ok [INFO] [stdout] test plan_limit_432_rotates_like_rate_limit ... ok [INFO] [stdout] test successive_requests_round_robin_across_keys ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests grok_search_rs [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" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199", kill_on_drop: false }` [INFO] [stdout] 5d209e683e187db13e07612a91beabb8b4eba1bb9ff1dcdabc5f00b36a415199