[INFO] cloning repository https://github.com/Microck/kagi-cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Microck/kagi-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMicrock%2Fkagi-cli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMicrock%2Fkagi-cli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6653e303888abfa2d2e6c8b884fd91f0498312e2 [INFO] testing Microck/kagi-cli against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMicrock%2Fkagi-cli" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Microck/kagi-cli [INFO] finished tweaking git repo https://github.com/Microck/kagi-cli [INFO] tweaked toml for git repo https://github.com/Microck/kagi-cli written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Microck/kagi-cli on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Microck/kagi-cli 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cssparser v0.36.0 [INFO] [stderr] Downloaded phf_codegen v0.13.1 [INFO] [stderr] Downloaded string_cache_codegen v0.6.1 [INFO] [stderr] Downloaded markup5ever v0.39.0 [INFO] [stderr] Downloaded servo_arc v0.4.3 [INFO] [stderr] Downloaded cliclack v0.5.2 [INFO] [stderr] Downloaded clap_complete v4.6.0 [INFO] [stderr] Downloaded html5ever v0.39.0 [INFO] [stderr] Downloaded textwrap v0.16.2 [INFO] [stderr] Downloaded selectors v0.36.1 [INFO] [stderr] Downloaded tendril v0.5.0 [INFO] [stderr] Downloaded ego-tree v0.11.0 [INFO] [stderr] Downloaded string_cache v0.9.0 [INFO] [stderr] Downloaded web_atoms v0.2.3 [INFO] [stderr] Downloaded scraper v0.26.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7ee7c47fc4789e2bf755324a81243163d03b1cabfa7055c80fbf036ea17366c7 [INFO] running `Command { std: "docker" "start" "-a" "7ee7c47fc4789e2bf755324a81243163d03b1cabfa7055c80fbf036ea17366c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7ee7c47fc4789e2bf755324a81243163d03b1cabfa7055c80fbf036ea17366c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ee7c47fc4789e2bf755324a81243163d03b1cabfa7055c80fbf036ea17366c7", kill_on_drop: false }` [INFO] [stdout] 7ee7c47fc4789e2bf755324a81243163d03b1cabfa7055c80fbf036ea17366c7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 12c80ba385320e4fb059dce279c607378fe3808b96a6d28382a4a12799cceaf7 [INFO] running `Command { std: "docker" "start" "-a" "12c80ba385320e4fb059dce279c607378fe3808b96a6d28382a4a12799cceaf7", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling dtoa v1.0.11 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling tendril v0.5.0 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Compiling dtoa-short v0.3.5 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling servo_arc v0.4.3 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling selectors v0.36.1 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling unit-prefix v0.5.2 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling ego-tree v0.11.0 [INFO] [stderr] Compiling web_atoms v0.2.3 [INFO] [stderr] Compiling toml_writer v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling toml v1.0.7+spec-1.1.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling string_cache v0.9.0 [INFO] [stderr] Compiling indicatif v0.18.4 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling cliclack v0.5.2 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling cssparser v0.36.0 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling markup5ever v0.39.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling clap_complete v4.6.0 [INFO] [stderr] Compiling html5ever v0.39.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling scraper v0.26.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [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 hyper v1.8.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling kagi v0.4.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s [INFO] running `Command { std: "docker" "inspect" "12c80ba385320e4fb059dce279c607378fe3808b96a6d28382a4a12799cceaf7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12c80ba385320e4fb059dce279c607378fe3808b96a6d28382a4a12799cceaf7", kill_on_drop: false }` [INFO] [stdout] 12c80ba385320e4fb059dce279c607378fe3808b96a6d28382a4a12799cceaf7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 401d851ac4601879350b8fd851fea3796cb60914c2a0848ade45fda1e770a9aa [INFO] running `Command { std: "docker" "start" "-a" "401d851ac4601879350b8fd851fea3796cb60914c2a0848ade45fda1e770a9aa", kill_on_drop: false }` [INFO] [stderr] Compiling kagi v0.4.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 11.24s [INFO] running `Command { std: "docker" "inspect" "401d851ac4601879350b8fd851fea3796cb60914c2a0848ade45fda1e770a9aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "401d851ac4601879350b8fd851fea3796cb60914c2a0848ade45fda1e770a9aa", kill_on_drop: false }` [INFO] [stdout] 401d851ac4601879350b8fd851fea3796cb60914c2a0848ade45fda1e770a9aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fd10284800e2c6b4ddcf64015ceb208ba2221d71e686ced5e92029aad82e339a [INFO] running `Command { std: "docker" "start" "-a" "fd10284800e2c6b4ddcf64015ceb208ba2221d71e686ced5e92029aad82e339a", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kagi-77d08fb1af07107c) [INFO] [stdout] [INFO] [stdout] running 159 tests [INFO] [stdout] test api::tests::backfills_translate_language_metadata ... ok [INFO] [stdout] test api::tests::live_ask_page_rust_homepage ... ignored, requires live KAGI_SESSION_TOKEN [INFO] [stdout] test api::tests::live_assistant_thread_roundtrip ... ignored [INFO] [stdout] test api::tests::live_custom_assistant_crud_roundtrip ... ignored, requires live KAGI_SESSION_TOKEN and mutates custom assistants [INFO] [stdout] test api::tests::live_custom_bang_crud_roundtrip ... ignored, requires live KAGI_SESSION_TOKEN and mutates custom bangs [INFO] [stdout] test api::tests::live_lens_crud_roundtrip ... ignored, requires live KAGI_SESSION_TOKEN and mutates lenses [INFO] [stdout] test api::tests::keeps_existing_translate_detected_language_when_present ... ok [INFO] [stdout] test api::tests::builds_ask_page_prompt ... ok [INFO] [stdout] test api::tests::builds_translate_payload_with_optional_fields ... ok [INFO] [stdout] test api::tests::captures_translate_optional_section_failures_as_warnings ... ok [INFO] [stdout] test api::tests::does_not_retry_translate_bootstrap_for_invalid_session_auth ... ok [INFO] [stdout] test api::tests::extracts_translate_session_from_set_cookie_headers ... ok [INFO] [stdout] test api::tests::live_redirect_crud_roundtrip ... ignored, requires live KAGI_SESSION_TOKEN and mutates redirects [INFO] [stdout] test api::tests::live_translate_core_only_skips_auxiliary_sections ... ignored, requires live KAGI_SESSION_TOKEN [INFO] [stdout] test api::tests::live_translate_localizes_auxiliary_metadata_for_non_english_targets ... ignored, requires live KAGI_SESSION_TOKEN [INFO] [stdout] test api::tests::live_translate_populates_language_metadata_and_sections ... ignored, requires live KAGI_SESSION_TOKEN [INFO] [stdout] test api::tests::falls_back_to_requested_source_when_detected_iso_is_empty ... ok [INFO] [stdout] test api::tests::lists_news_filter_presets_with_language_fallback ... ok [INFO] [stdout] test api::tests::normalizes_aux_quality_values ... ok [INFO] [stdout] test api::tests::normalizes_custom_bang_trigger_and_redirect_rule ... ok [INFO] [stdout] test api::tests::hide_mode_omits_matching_news_stories ... ok [INFO] [stdout] test api::tests::localizes_translate_suggestions_payload_to_target_language ... ok [INFO] [stdout] test api::tests::normalizes_subscriber_summary_input ... ok [INFO] [stdout] test api::tests::normalizes_subscriber_summary_length_values ... ok [INFO] [stdout] test api::tests::normalizes_assistant_query_and_thread_id ... ok [INFO] [stdout] test api::tests::localizes_translate_word_insights_payload_to_target_language ... ok [INFO] [stdout] test api::tests::news_filter_keyword_matching_respects_word_boundaries ... ok [INFO] [stdout] test api::tests::normalizes_ask_page_url ... ok [INFO] [stdout] test api::tests::normalizes_subscriber_summary_type_values ... ok [INFO] [stdout] test api::tests::maps_translate_bootstrap_auth_statuses ... ok [INFO] [stdout] test api::tests::parses_api_error_message ... ok [INFO] [stdout] test api::tests::parses_assistant_thread_delete_stream ... ok [INFO] [stdout] test api::tests::parses_assistant_prompt_stream ... ok [INFO] [stdout] test api::tests::parses_assistant_thread_list_stream ... ok [INFO] [stdout] test api::tests::parses_assistant_thread_open_stream ... ok [INFO] [stdout] test api::tests::parses_content_disposition_filename ... ok [INFO] [stdout] test api::tests::omits_empty_translate_option_state ... ok [INFO] [stdout] test api::tests::parses_fastgpt_envelope ... ok [INFO] [stdout] test api::tests::parses_summarize_envelope ... ok [INFO] [stdout] test api::tests::rejects_empty_ask_page_question ... ok [INFO] [stdout] test api::tests::parses_translate_detect_from_object_or_array ... ok [INFO] [stdout] test api::tests::rejects_empty_assistant_query_and_thread_id ... ok [INFO] [stdout] test api::tests::blur_mode_tags_matching_news_stories ... ok [INFO] [stdout] test api::tests::preserves_explicit_translate_source_language ... ok [INFO] [stdout] test api::tests::rejects_empty_translate_source_language ... ok [INFO] [stdout] test api::tests::rejects_empty_translate_target_language ... ok [INFO] [stdout] test api::tests::rejects_error_state_in_subscriber_summarize_stream ... ok [INFO] [stdout] test api::tests::rejects_invalid_subscriber_summary_length ... ok [INFO] [stdout] test api::tests::rejects_invalid_subscriber_summary_type ... ok [INFO] [stdout] test api::tests::rejects_non_http_ask_page_url ... ok [INFO] [stdout] test api::tests::rejects_translate_bootstrap_success_without_cookie ... ok [INFO] [stdout] test api::tests::rejects_translate_target_auto_value ... ok [INFO] [stdout] test api::tests::rejects_empty_translate_text ... ok [INFO] [stdout] test api::tests::rejects_invalid_subscriber_summary_input_shape ... ok [INFO] [stdout] test api::tests::resolves_new_resource_refs_by_expected_keys ... ok [INFO] [stdout] test api::tests::rejects_invalid_ask_page_url ... ok [INFO] [stdout] test api::tests::parses_subscriber_summarize_stream ... ok [INFO] [stdout] test api::tests::retries_translate_bootstrap_when_cookie_is_missing ... ok [INFO] [stdout] test auth::tests::extracts_token_from_session_link_url ... ok [INFO] [stdout] test auth::tests::base_search_keeps_api_token_as_fallback_when_session_is_preferred ... ok [INFO] [stdout] test api::tests::resolves_translate_bootstrap_from_success_cookie ... ok [INFO] [stdout] test api::tests::resolves_news_category_by_display_name ... ok [INFO] [stdout] test api::tests::rejects_unknown_news_filter_preset ... ok [INFO] [stdout] test auth::tests::normalizes_session_link_from_environment_style_input ... ok [INFO] [stdout] test auth::tests::prefers_api_for_base_search_when_configured ... ok [INFO] [stdout] test auth::tests::prefers_session_for_base_search_by_default ... ok [INFO] [stdout] test auth::tests::builds_env_session_credential_from_session_link ... ok [INFO] [stdout] test auth::tests::requires_session_for_filtered_search ... ok [INFO] [stdout] test auth::tests::builds_config_session_credential_from_session_link ... ok [INFO] [stdout] test auth::tests::requires_session_for_lens_search ... ok [INFO] [stdout] test auth::tests::rejects_session_link_without_token_param ... ok [INFO] [stdout] test api::tests::rejects_empty_translate_detect_array ... ok [INFO] [stdout] test auth::tests::keeps_raw_session_token_input ... ok [INFO] [stdout] test api::tests::skips_disabled_translate_optional_sections_without_polling ... ok [INFO] [stdout] test auth::tests::rejects_empty_api_token_input ... ok [INFO] [stdout] test auth_wizard::tests::prompts_for_preference_when_both_methods_exist_and_choice_changes_it ... ok [INFO] [stdout] test auth::tests::status_output_redacts_values ... ok [INFO] [stdout] test auth_wizard::tests::api_validation_warning_mentions_search_api_behavior ... ok [INFO] [stdout] test auth::tests::load_config_auth_snapshot_normalizes_session_link_and_preference ... ok [INFO] [stdout] test auth_wizard::tests::builds_api_instructions_with_official_settings_page ... ok [INFO] [stdout] test auth_wizard::tests::prompts_for_preference_when_other_method_exists_via_environment ... ok [INFO] [stdout] test auth_wizard::tests::builds_session_candidate_from_full_session_link ... ok [INFO] [stdout] test auth_wizard::tests::session_validation_warning_stays_generic ... ok [INFO] [stdout] test auth_wizard::tests::builds_session_instructions_with_official_settings_page ... ok [INFO] [stdout] test api::tests::uses_detected_source_language_when_translate_from_is_auto ... ok [INFO] [stdout] test auth_wizard::tests::renders_ascii_intro_only_on_wide_terminals ... ok [INFO] [stdout] test auth_wizard::tests::env_override_message_mentions_environment_precedence ... ok [INFO] [stdout] test auth::tests::prefers_env_over_config_values ... ok [INFO] [stdout] test api::tests::returns_none_when_set_cookie_name_is_missing ... ok [INFO] [stdout] test auth::tests::rejects_invalid_preferred_auth_value ... ok [INFO] [stdout] test auth::tests::save_credentials_updates_preference_when_requested ... ok [INFO] [stdout] test auth::tests::save_credentials_preserves_existing_values_when_only_one_is_updated ... ok [INFO] [stdout] test cli::tests::accepts_filter_inputs_with_default_mode_and_scope ... ok [INFO] [stdout] test cli::tests::rejects_non_default_filter_options_without_inputs ... ok [INFO] [stdout] test cli::tests::rejects_filters_with_listing_modes ... ok [INFO] [stdout] test parser::tests::parses_assistant_thread_list_items ... ok [INFO] [stdout] test parser::tests::allows_custom_assistant_create_form_without_selected_model ... ok [INFO] [stdout] test parser::tests::parses_assistant_profile_list_items ... ok [INFO] [stdout] test cli::tests::parses_lens_enable_command ... ok [INFO] [stdout] test quick::tests::live_quick_invalid_token_is_rejected ... ignored, requires network access [INFO] [stdout] test quick::tests::live_quick_query_with_lens ... ignored, requires live Kagi session token [INFO] [stdout] test quick::tests::live_quick_query_with_question_mark ... ignored, requires live Kagi session token [INFO] [stdout] test quick::tests::live_quick_query_without_question_mark ... ignored, requires live Kagi session token [INFO] [stdout] test quick::tests::parses_quick_answer_stream ... ok [INFO] [stdout] test quick::tests::prettify_markdown_cleans_spacing_after_footnote_removal ... ok [INFO] [stdout] test parser::tests::parses_custom_bang_form_fields ... ok [INFO] [stdout] test parser::tests::parses_assistant_profile_form_fields ... ok [INFO] [stdout] test quick::tests::parses_quick_reference_markdown_items ... ok [INFO] [stdout] test quick::tests::rejects_quick_limit_notice_stream ... ok [INFO] [stdout] test parser::tests::parses_redirect_form_fields ... ok [INFO] [stdout] test parser::tests::parses_redirect_list_rows ... ok [INFO] [stdout] test quick::tests::format_quick_markdown_appends_followups ... ok [INFO] [stdout] test quick::tests::rejects_quick_unauthorized_stream ... ok [INFO] [stdout] test quick::tests::rejects_quick_stream_without_final_message ... ok [INFO] [stdout] test search::tests::builds_query_params_for_search_filters ... ok [INFO] [stdout] test cli::tests::rejects_conflicting_redirect_flags ... ok [INFO] [stdout] test quick::tests::strip_inline_footnote_refs_removes_numeric_markers ... ok [INFO] [stdout] test parser::tests::parses_lens_list_items ... ok [INFO] [stdout] test quick::tests::format_quick_pretty_renders_sections ... ok [INFO] [stdout] test search::tests::execute_api_search_rejects_filtered_requests ... ok [INFO] [stdout] test search::tests::execute_api_search_requires_token ... ok [INFO] [stdout] test search::tests::execute_search_accepts_numeric_lens ... ok [INFO] [stdout] test quick::tests::format_quick_pretty_prefers_markdown_and_strips_footnotes ... ok [INFO] [stdout] test search::tests::execute_search_without_filters_attempts_transport ... ok [INFO] [stdout] test parser::tests::parses_primary_and_grouped_results ... ok [INFO] [stdout] test search::tests::execute_api_search_rejects_lens_requests ... ok [INFO] [stdout] test cli::tests::parses_assistant_custom_update_command ... ok [INFO] [stdout] test search::tests::parses_api_response_shape_into_search_response ... ok [INFO] [stdout] test search::tests::execute_search_rejects_non_numeric_lens ... ok [INFO] [stdout] test search::tests::rejects_invalid_from_date_format ... ok [INFO] [stdout] test parser::tests::returns_empty_vec_when_no_matches_exist ... ok [INFO] [stdout] test parser::tests::parses_lens_form_fields ... ok [INFO] [stdout] test search::tests::rejects_inverted_date_range ... ok [INFO] [stdout] test search::tests::formats_search_api_error_suffix_from_error_payload ... ok [INFO] [stdout] test search::tests::rejects_nonexistent_iso_dates ... ok [INFO] [stdout] test search::tests::search_request_builder_creates_base_request ... ok [INFO] [stdout] test search::tests::search_request_with_filters_requires_session_auth ... ok [INFO] [stdout] test search::tests::search_request_with_lens_adds_lens ... ok [INFO] [stdout] test search::tests::validate_lens_value_rejects_non_numeric_indices ... ok [INFO] [stdout] test search::tests::reject_time_filter_with_date_range ... ok [INFO] [stdout] test tests::build_search_request_prefixes_snap_shortcut ... ok [INFO] [stdout] test tests::build_search_request_treats_default_order_as_no_order_filter ... ok [INFO] [stdout] test tests::detects_exact_bare_auth_invocation ... ok [INFO] [stdout] test tests::falls_back_for_any_search_api_auth_error ... ok [INFO] [stdout] test tests::formats_csv_output ... ok [INFO] [stdout] test tests::formats_csv_output_with_escaping ... ok [INFO] [stdout] test tests::formats_markdown_output ... ok [INFO] [stdout] test tests::formats_pretty_output_for_empty_results ... ok [INFO] [stdout] test parser::tests::parses_custom_bang_list_rows ... ok [INFO] [stdout] test tests::formats_pretty_output_with_color ... ok [INFO] [stdout] test tests::formats_pretty_output_for_results ... ok [INFO] [stdout] test tests::omits_blank_snippets_in_pretty_output ... ok [INFO] [stdout] test tests::parses_context_memory_array_json ... ok [INFO] [stdout] test tests::prints_assistant_markdown_and_pretty_formats ... ok [INFO] [stdout] test tests::rejects_non_array_context_memory_json ... ok [INFO] [stdout] test tests::resolves_boolean_flag_pairs ... ok [INFO] [stdout] test tests::test_rate_limiter_basic_functionality ... ok [INFO] [stdout] test tests::test_rate_limiter_throttles_under_contention ... ok [INFO] [stdout] test tests::test_rate_limiter_refill ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 146 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 1.07s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "fd10284800e2c6b4ddcf64015ceb208ba2221d71e686ced5e92029aad82e339a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd10284800e2c6b4ddcf64015ceb208ba2221d71e686ced5e92029aad82e339a", kill_on_drop: false }` [INFO] [stdout] fd10284800e2c6b4ddcf64015ceb208ba2221d71e686ced5e92029aad82e339a