[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] 3a7fafb0aad4e70e12fe2b2099c54e4f681cce86
[INFO] testing Microck/kagi-cli/3a7fafb0aad4e70e12fe2b2099c54e4f681cce86 against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMicrock%2Fkagi-cli" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/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-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Microck/kagi-cli on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "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" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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] fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d
[INFO] running `Command { std: "docker" "start" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", 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" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", 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" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling phf_codegen v0.13.1
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling compression-core v0.4.32
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling string_cache_codegen v0.6.1
[INFO] [stderr]    Compiling tendril v0.5.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling selectors v0.38.0
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling web_atoms v0.2.3
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling servo_arc v0.4.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling rustc-hash v2.1.2
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling string_cache v0.9.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling ego-tree v0.11.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling compression-codecs v0.4.38
[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 tokio-macros v2.7.0
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling cssparser-macros v0.7.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling cssparser v0.37.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling cliclack v0.5.4
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling toon v0.1.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling markup5ever v0.39.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling html5ever v0.39.0
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling tinystr v0.8.2
[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 scraper v0.27.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_urlencoded v0.7.1
[INFO] [stderr]    Compiling jsonc-parser v0.32.4
[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.9.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling async-compression v0.4.42
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[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.14.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 46s
[INFO] running `Command { std: "docker" "inspect" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", 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" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tabwriter v1.4.1
[INFO] [stderr]    Compiling path-tree v0.8.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling stringmetrics v2.2.2
[INFO] [stderr]    Compiling selectors v0.38.0
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_regex v1.1.0
[INFO] [stderr]    Compiling jsonc-parser v0.32.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling scraper v0.27.0
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling async-object-pool v0.2.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling headers-core v0.3.0
[INFO] [stderr]    Compiling headers v0.4.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling async-compression v0.4.42
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling httpmock v0.8.3
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling kagi v0.14.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", 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" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kagi-43cc41ce4ceee6bb)
[INFO] [stdout] 
[INFO] [stdout] running 218 tests
[INFO] [stdout] test api::tests::backfills_translate_language_metadata ... ok
[INFO] [stdout] test api::tests::assistant_prompt_stream_events_include_markdown_delta ... ok
[INFO] [stdout] test api::tests::builds_ask_page_prompt ... ok
[INFO] [stdout] test api::tests::builds_json_assistant_prompt_payload_without_attachments ... ok
[INFO] [stdout] test api::tests::builds_translate_payload_with_optional_fields ... ok
[INFO] [stdout] test api::tests::does_not_retry_lens_mutation_lookup_for_auth_errors ... 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::builds_multipart_assistant_prompt_payload_with_attachments ... ok
[INFO] [stdout] test api::tests::falls_back_to_requested_source_when_detected_iso_is_empty ... ok
[INFO] [stdout] test api::tests::extracts_translate_session_from_set_cookie_headers ... ok
[INFO] [stdout] test api::tests::keeps_existing_translate_detected_language_when_present ... 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::hide_mode_omits_matching_news_stories ... 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::maps_translate_bootstrap_auth_statuses ... ok
[INFO] [stdout] test api::tests::maps_translate_subscription_error_bodies ... ok
[INFO] [stdout] test api::tests::formats_html_error_body_as_text_suffix ... ok
[INFO] [stdout] test api::tests::normalizes_aux_quality_values ... ok
[INFO] [stdout] test api::tests::localizes_translate_suggestions_payload_to_target_language ... ok
[INFO] [stdout] test api::tests::news_filter_keyword_matching_respects_word_boundaries ... ok
[INFO] [stdout] test api::tests::blur_mode_tags_matching_news_stories ... ok
[INFO] [stdout] test api::tests::localizes_translate_word_insights_payload_to_target_language ... ok
[INFO] [stdout] test api::tests::normalizes_assistant_query_and_thread_id ... ok
[INFO] [stdout] test api::tests::normalizes_ask_page_url ... ok
[INFO] [stdout] test api::tests::normalizes_custom_bang_trigger_and_redirect_rule ... 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::omits_empty_translate_option_state ... ok
[INFO] [stdout] test api::tests::normalizes_subscriber_summary_type_values ... ok
[INFO] [stdout] test api::tests::parses_assistant_thread_cursor_from_cursor_payload ... ok
[INFO] [stdout] test api::tests::parses_assistant_prompt_stream ... 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::accepts_lens_names_at_kagi_persisted_length_limit ... 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::lists_news_filter_presets_with_language_fallback ... ok
[INFO] [stdout] test api::tests::parses_fastgpt_envelope ... ok
[INFO] [stdout] test api::tests::parses_assistant_thread_list_stream_with_wrapped_html_and_object_cursor ... ok
[INFO] [stdout] test api::tests::parses_assistant_thread_open_stream_with_thread_html_fallback ... ok
[INFO] [stdout] test api::tests::parses_assistant_thread_list_stream ... ok
[INFO] [stdout] test api::tests::preserves_explicit_translate_source_language ... ok
[INFO] [stdout] test api::tests::rejects_empty_assistant_query_and_thread_id ... ok
[INFO] [stdout] test api::tests::rejects_empty_lens_names ... ok
[INFO] [stdout] test api::tests::rejects_empty_translate_detect_array ... ok
[INFO] [stdout] test api::tests::rejects_empty_translate_text ... 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_input_shape ... ok
[INFO] [stdout] test api::tests::rejects_invalid_ask_page_url ... ok
[INFO] [stdout] test api::tests::rejects_invalid_subscriber_summary_type ... ok
[INFO] [stdout] test api::tests::parses_translate_detect_from_object_or_array ... ok
[INFO] [stdout] test api::tests::rejects_empty_ask_page_question ... ok
[INFO] [stdout] test api::tests::rejects_empty_translate_target_language ... ok
[INFO] [stdout] test api::tests::rejects_lens_names_that_kagi_would_truncate ... ok
[INFO] [stdout] test api::tests::rejects_empty_translate_source_language ... ok
[INFO] [stdout] test api::tests::parses_assistant_prompt_stream_without_expires_at ... ok
[INFO] [stdout] test api::tests::reports_received_tags_when_thread_open_stream_has_no_thread_frame ... ok
[INFO] [stdout] test api::tests::rejects_missing_assistant_attachment ... ok
[INFO] [stdout] test api::tests::resolves_new_resource_refs_by_expected_keys ... ok
[INFO] [stdout] test api::tests::rejects_non_http_ask_page_url ... ok
[INFO] [stdout] test api::tests::resolves_news_category_by_display_name ... ok
[INFO] [stdout] test api::tests::retries_lens_mutation_lookup_for_transient_settings_decode_errors ... ok
[INFO] [stdout] test api::tests::resolves_translate_bootstrap_from_success_cookie ... ok
[INFO] [stdout] test api::tests::returns_none_when_set_cookie_name_is_missing ... ok
[INFO] [stdout] test api::tests::rejects_translate_target_auto_value ... ok
[INFO] [stdout] test api::tests::skips_disabled_translate_optional_sections_without_polling ... ok
[INFO] [stdout] test api::tests::retries_lens_mutation_lookup_when_created_lens_is_not_visible_yet ... ok
[INFO] [stdout] test auth::tests::base_search_has_no_fallback_when_session_is_preferred ... ok
[INFO] [stdout] test auth::tests::builds_config_session_credential_from_session_link ... ok
[INFO] [stdout] test auth::tests::builds_env_session_credential_from_session_link ... ok
[INFO] [stdout] test api::tests::truncates_long_error_body_suffixes ... ok
[INFO] [stdout] test api::tests::uses_detected_source_language_when_translate_from_is_auto ... ok
[INFO] [stdout] test api::tests::retries_translate_bootstrap_when_cookie_is_missing ... ok
[INFO] [stdout] test auth::tests::credential_debug_redacts_secret_values ... ok
[INFO] [stdout] test api::tests::rejects_translate_bootstrap_success_without_cookie ... ok
[INFO] [stdout] test auth::tests::extracts_token_from_session_link_url ... ok
[INFO] [stdout] test auth::tests::keeps_raw_session_token_input ... ok
[INFO] [stdout] test auth::tests::legacy_api_token_does_not_satisfy_base_search ... ok
[INFO] [stdout] test auth::tests::prefers_api_for_base_search_when_configured ... ok
[INFO] [stdout] test auth::tests::normalizes_session_link_from_environment_style_input ... ok
[INFO] [stdout] test auth::tests::prefers_session_for_base_search_by_default ... ok
[INFO] [stdout] test auth::tests::load_config_auth_snapshot_normalizes_session_link_and_preference ... ok
[INFO] [stdout] test auth::tests::rejects_empty_api_key_input ... ok
[INFO] [stdout] test auth::tests::rejects_empty_api_token_input ... ok
[INFO] [stdout] test auth::tests::rejects_session_link_without_token_param ... ok
[INFO] [stdout] test auth::tests::requires_session_for_lens_search ... ok
[INFO] [stdout] test auth::tests::requires_session_for_session_only_search_options ... ok
[INFO] [stdout] test auth::tests::rejects_invalid_preferred_auth_value ... ok
[INFO] [stdout] test auth_wizard::tests::api_key_validation_warning_mentions_search_api_behavior ... ok
[INFO] [stdout] test auth_wizard::tests::builds_api_key_instructions_with_official_keys_page ... ok
[INFO] [stdout] test auth_wizard::tests::builds_legacy_api_token_instructions_with_legacy_settings_page ... ok
[INFO] [stdout] test auth::tests::save_credentials_preserves_existing_values_when_only_one_is_updated ... ok
[INFO] [stdout] test auth_wizard::tests::builds_session_candidate_from_full_session_link ... ok
[INFO] [stdout] test auth::tests::save_credentials_updates_preference_when_requested ... ok
[INFO] [stdout] test auth_wizard::tests::builds_session_instructions_with_official_settings_page ... ok
[INFO] [stdout] test auth_wizard::tests::env_override_message_mentions_environment_precedence ... ok
[INFO] [stdout] test auth_wizard::tests::prompts_for_preference_when_other_method_exists_via_environment ... ok
[INFO] [stdout] test auth_wizard::tests::renders_ascii_intro_only_on_wide_terminals ... ok
[INFO] [stdout] test auth_wizard::tests::session_validation_warning_mentions_session_recovery ... ok
[INFO] [stdout] test cli::tests::accepts_filter_inputs_with_default_mode_and_scope ... ok
[INFO] [stdout] test cli::tests::news_search_passthrough_flags_are_accepted ... ok
[INFO] [stdout] test cli::tests::news_search_rejects_lens ... ok
[INFO] [stdout] test auth_wizard::tests::prompts_for_preference_when_both_methods_exist_and_choice_changes_it ... ok
[INFO] [stdout] test cli::tests::news_search_rejects_order_trackers ... ok
[INFO] [stdout] test cli::tests::news_search_rejects_time_year ... ok
[INFO] [stdout] test cli::tests::news_search_rejects_template_and_follow ... ok
[INFO] [stdout] test api::tests::parses_subscriber_summarize_stream ... ok
[INFO] [stdout] test api::tests::parses_summarize_envelope ... ok
[INFO] [stdout] test auth::tests::status_output_redacts_values ... ok
[INFO] [stdout] test cli::tests::parses_assistant_attach_flags ... ok
[INFO] [stdout] test cli::tests::parses_lens_enable_command ... ok
[INFO] [stdout] test cli::tests::rejects_filters_with_listing_modes ... ok
[INFO] [stdout] test cli::tests::rejects_non_default_filter_options_without_inputs ... ok
[INFO] [stdout] test cli::tests::rejects_summarize_args_without_url_or_text ... ok
[INFO] [stdout] test cli::tests::rejects_zero_limit_on_batch ... ok
[INFO] [stdout] test api::tests::rejects_unknown_news_filter_preset ... ok
[INFO] [stdout] test cli::tests::parses_search_limit_flag ... ok
[INFO] [stdout] test cli::tests::parses_assistant_custom_update_command ... ok
[INFO] [stdout] test cli::tests::rejects_conflicting_redirect_flags ... ok
[INFO] [stdout] test cli::tests::parses_product_workflow_commands ... ok
[INFO] [stdout] test http::tests::formats_http_error_body_suffix ... ok
[INFO] [stdout] test local::tests::normalizes_domains ... ok
[INFO] [stdout] test parser::tests::allows_custom_assistant_create_form_without_selected_model ... ok
[INFO] [stdout] test auth_wizard::tests::legacy_api_token_validation_warning_mentions_fastgpt_behavior ... ok
[INFO] [stdout] test parser::tests::news_search_parser_returns_empty_when_no_items ... ok
[INFO] [stdout] test parser::tests::parses_assistant_model_catalog_from_base_model_radios ... ok
[INFO] [stdout] test cli::tests::rejects_zero_limit_on_search ... ok
[INFO] [stdout] test error::tests::converts_serde_json_errors_to_parse_errors ... ok
[INFO] [stdout] test parser::tests::parses_assistant_profile_form_fields ... ok
[INFO] [stdout] test parser::tests::parses_assistant_thread_list_items ... ok
[INFO] [stdout] test parser::tests::parses_custom_bang_form_fields ... ok
[INFO] [stdout] test parser::tests::parses_assistant_profile_list_items ... ok
[INFO] [stdout] test parser::tests::parses_lens_list_items ... ok
[INFO] [stdout] test parser::tests::parses_lens_form_fields ... ok
[INFO] [stdout] test parser::tests::parses_news_search_clusters_and_ungrouped_items ... ok
[INFO] [stdout] test parser::tests::parses_redirect_form_fields ... ok
[INFO] [stdout] test parser::tests::parses_primary_and_grouped_results ... ok
[INFO] [stdout] test parser::tests::rejects_assistant_thread_list_items_missing_required_attributes ... ok
[INFO] [stdout] test quick::tests::format_quick_markdown_appends_followups ... ok
[INFO] [stdout] test quick::tests::format_quick_pretty_prefers_markdown_and_strips_footnotes ... ok
[INFO] [stdout] test quick::tests::format_quick_pretty_renders_sections ... 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::parses_quick_reference_markdown_items ... ok
[INFO] [stdout] test quick::tests::prettify_markdown_cleans_spacing_after_footnote_removal ... ok
[INFO] [stdout] test quick::tests::rejects_quick_limit_notice_stream ... ok
[INFO] [stdout] test quick::tests::rejects_quick_stream_without_final_message ... ok
[INFO] [stdout] test quick::tests::rejects_quick_unauthorized_stream ... ok
[INFO] [stdout] test quick::tests::strip_inline_footnote_refs_removes_numeric_markers ... ok
[INFO] [stdout] test search::tests::api_search_request_serializes_v1_filters ... ok
[INFO] [stdout] test search::tests::builds_query_params_for_search_filters ... ok
[INFO] [stdout] test search::tests::execute_api_search_rejects_lens_requests ... ok
[INFO] [stdout] test search::tests::execute_api_search_rejects_session_only_options ... ok
[INFO] [stdout] test search::tests::execute_api_search_requires_token ... ok
[INFO] [stdout] test search::tests::execute_news_search_requires_session_token ... ok
[INFO] [stdout] test search::tests::execute_search_accepts_numeric_lens ... ok
[INFO] [stdout] test search::tests::execute_search_rejects_non_numeric_lens ... ok
[INFO] [stdout] test search::tests::execute_search_without_filters_attempts_transport ... ok
[INFO] [stdout] test search::tests::formats_search_api_error_suffix_from_error_payload ... ok
[INFO] [stdout] test search::tests::news_query_params_include_freshness_order_and_region ... ok
[INFO] [stdout] test search::tests::parses_api_response_shape_into_search_response ... ok
[INFO] [stdout] test search::tests::reject_time_filter_with_date_range ... ok
[INFO] [stdout] test search::tests::rejects_invalid_from_date_format ... ok
[INFO] [stdout] test search::tests::rejects_inverted_date_range ... 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_lens_adds_lens ... ok
[INFO] [stdout] test search::tests::search_request_with_session_only_filters_requires_session_auth ... ok
[INFO] [stdout] test search::tests::search_request_with_v1_filters_does_not_require_session_auth ... ok
[INFO] [stdout] test search::tests::validate_lens_value_rejects_non_numeric_indices ... 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_assistant_markdown_with_references ... ok
[INFO] [stdout] test tests::formats_assistant_pretty_with_references_section ... ok
[INFO] [stdout] test tests::formats_batch_failures_with_queries_and_success_count ... 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 tests::formats_pretty_output_for_results ... ok
[INFO] [stdout] test tests::formats_pretty_output_with_color ... 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_refill ... ok
[INFO] [stdout] test parser::tests::parses_redirect_list_rows ... ok
[INFO] [stdout] test parser::tests::parses_custom_bang_list_rows ... ok
[INFO] [stdout] test parser::tests::returns_empty_vec_when_no_matches_exist ... ok
[INFO] [stdout] test api::tests::assistant_prompt_accepts_delayed_stream_response ... ok
[INFO] [stdout] test api::tests::assistant_prompt_uses_multipart_when_attachments_are_present ... ok
[INFO] [stdout] test api::tests::assistant_thread_delete_rejects_html_redirect_success ... ok
[INFO] [stdout] test api::tests::assistant_thread_get_migration_regression ... ok
[INFO] [stdout] test auth::tests::config_path_falls_back_to_home_config_dir ... ok
[INFO] [stdout] test api::tests::assistant_thread_list_follows_cursor_pagination ... ok
[INFO] [stdout] test auth::tests::config_path_prefers_explicit_override ... ok
[INFO] [stdout] test auth::tests::config_path_uses_xdg_config_home_when_no_override ... ok
[INFO] [stdout] test auth::tests::prefers_env_over_config_values ... ok
[INFO] [stdout] test http::tests::builds_default_urls ... ok
[INFO] [stdout] test local::tests::cache_round_trips_values ... ok
[INFO] [stdout] test http::tests::honors_base_url_overrides ... ok
[INFO] [stdout] test tests::test_rate_limiter_throttles_under_contention ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 205 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration-cli.rs (/opt/rustwide/target/debug/deps/integration_cli-517f9ad6eba7c2b4)
[INFO] [stdout] 
[INFO] [stdout] running 69 tests
[INFO] [stdout] test agent_command_prints_embedded_skill_guide_without_auth ... ok
[INFO] [stdout] test auth_set_saves_api_key_and_legacy_api_token_separately ... ok
[INFO] [stdout] test default_failure_stderr_has_single_user_facing_error ... ok
[INFO] [stdout] test completion_install_detects_fish_and_writes_completion_file ... ok
[INFO] [stdout] test assistant_contract_file_rejects_missing_required_key ... ok
[INFO] [stdout] test batch_command_returns_queries_and_results ... ok
[INFO] [stdout] test extract_command_requires_api_key_with_session_only_auth ... ok
[INFO] [stdout] test assistant_stream_can_print_ndjson_updates ... ok
[INFO] [stdout] test auth_check_validates_legacy_api_token_with_fastgpt ... ok
[INFO] [stdout] test assistant_stream_prints_text_deltas_by_default ... ok
[INFO] [stdout] test assistant_models_prints_json_catalog ... ok
[INFO] [stdout] test assistant_contract_decision_prints_validated_json ... ok
[INFO] [stdout] test assistant_once_creates_prompts_and_deletes_temporary_profile ... ok
[INFO] [stdout] test batch_command_reads_queries_from_stdin ... ok
[INFO] [stdout] test batch_command_reports_partial_failures_in_json_mode ... ok
[INFO] [stdout] test assistant_thread_list_paginates_with_cursor_id ... ok
[INFO] [stdout] test auth_check_uses_current_search_api_for_api_keys ... ok
[INFO] [stdout] test extract_command_json_surfaces_retained_links_from_mock_api ... ok
[INFO] [stdout] test help_points_agents_to_agent_guide ... ok
[INFO] [stdout] test assistant_prompt_stream_reads_query_from_stdin ... ok
[INFO] [stdout] test mcp_initialize_returns_server_info ... ok
[INFO] [stdout] test mcp_batch_search_rejects_zero_concurrency ... ok
[INFO] [stdout] test extract_filter_prints_ordered_jsonl_records ... ok
[INFO] [stdout] test extract_command_rejects_non_https_urls ... ok
[INFO] [stdout] test mcp_install_requires_target_when_not_interactive ... ok
[INFO] [stdout] test mcp_install_dry_run_does_not_require_client_cli ... ok
[INFO] [stdout] test mcp_install_preserves_existing_json_mcp_servers ... ok
[INFO] [stdout] test mcp_install_writes_antigravity_cli_config ... ok
[INFO] [stdout] test mcp_assistant_thread_export_json_overrides_default_output ... ok
[INFO] [stdout] test extract_command_prints_markdown_from_mock_api ... ok
[INFO] [stdout] test mcp_cli_passthrough_closes_stdin_when_payload_is_omitted ... ok
[INFO] [stdout] test mcp_extract_tool_call_returns_markdown ... ok
[INFO] [stdout] test mcp_cli_passthrough_runs_auth_free_commands_when_enabled ... ok
[INFO] [stdout] test mcp_install_writes_cursor_global_config ... ok
[INFO] [stdout] test json_error_format_prints_structured_stderr ... ok
[INFO] [stdout] test mcp_install_writes_codex_config_without_client_cli ... ok
[INFO] [stdout] test mcp_install_writes_droid_user_config ... ok
[INFO] [stdout] test mcp_extract_explicit_json_overrides_default_output ... ok
[INFO] [stdout] test mcp_unknown_tool_returns_json_rpc_error ... ok
[INFO] [stdout] test mcp_news_search_tool_call_returns_clusters ... ok
[INFO] [stdout] test auth_check_validates_credentials_without_live_network ... ok
[INFO] [stdout] test search_command_pretty_format_prints_ranked_results ... ok
[INFO] [stdout] test mcp_tools_list_declares_input_schemas ... ok
[INFO] [stdout] test mcp_tools_list_exposes_mutating_tools_when_enabled ... ok
[INFO] [stdout] test news_command_resolves_category_and_prints_json ... ok
[INFO] [stdout] test search_command_returns_json_from_mock_api ... ok
[INFO] [stdout] test mcp_malformed_json_returns_parse_error_and_keeps_server_alive ... ok
[INFO] [stdout] test search_news_rejects_time_year ... ok
[INFO] [stdout] test mcp_install_writes_roo_code_extension_config ... ok
[INFO] [stdout] test search_command_limit_truncates_results ... ok
[INFO] [stdout] test search_news_returns_clustered_json ... ok
[INFO] [stdout] test search_command_falls_back_to_session_when_api_is_rate_limited ... ok
[INFO] [stdout] test search_template_renders_result_fields ... ok
[INFO] [stdout] test mcp_install_writes_opencode_config_without_removing_existing_settings ... ok
[INFO] [stdout] test mcp_install_writes_vs_code_user_config_without_client_cli ... ok
[INFO] [stdout] test mcp_news_tool_call_returns_stories ... ok
[INFO] [stdout] test skills_get_prints_core_guide_without_auth ... ok
[INFO] [stdout] test search_command_surfaces_related_searches_from_mock_api ... ok
[INFO] [stdout] test search_news_rejects_lens_combination ... ok
[INFO] [stdout] test skills_get_full_prints_body_without_frontmatter ... ok
[INFO] [stdout] test search_lens_name_resolves_to_current_position ... ok
[INFO] [stdout] test summarize_url_command_prints_structured_json ... ok
[INFO] [stdout] test search_command_sends_v1_filters_with_api_key ... ok
[INFO] [stdout] test skills_list_and_path_are_auth_free ... ok
[INFO] [stdout] test site_pref_and_history_use_local_cache_dir ... ok
[INFO] [stdout] test search_command_returns_toon_from_mock_api ... ok
[INFO] [stdout] test mcp_search_uses_default_output_format ... ok
[INFO] [stdout] test search_news_local_cache_reuses_cached_response ... ok
[INFO] [stdout] test mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive' (4291) panicked at tests/integration-cli.rs:3122:5:
[INFO] [stdout] expected successful result for second tool call, got: {"error":{"code":-32000,"message":"network error: could not connect to https://news.kagi.com/api/batches/latest?lang=en. Check your network connection or KAGI_BASE_URL override. Details: error sending request for url (https://news.kagi.com/api/batches/latest?lang=en)"},"id":2,"jsonrpc":"2.0"}
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d7e91773341 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d7e91773341 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d7e91773341 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d7e91773341 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d7e9178b5da - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d7e9178b5da - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5d7e91777f5c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5d7e91777f5c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5d7e9174e9b6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d7e9174e9b6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d7e9176a3c9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d7e90ed9700 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5d7e90ed9700 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5d7e9176a6f2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5d7e9176a6f2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5d7e9174ea62 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5d7e917460e9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d7e9174f65d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5d7e9178be8c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d7e90e113f9 - integration_cli[666e2678b2d22c47]::mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration-cli.rs:3122:5
[INFO] [stdout]   20:     0x5d7e90dc3697 - integration_cli[666e2678b2d22c47]::mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration-cli.rs:3030:71
[INFO] [stdout]   21:     0x5d7e90e504e6 - <integration_cli[666e2678b2d22c47]::mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5d7e90ecca3b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5d7e90ecca3b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x5d7e90eda085 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x5d7e90eda085 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5d7e90eda085 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   27:     0x5d7e90eda085 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5d7e90eda085 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5d7e90eda085 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x5d7e90eda085 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x5d7e90ed4b34 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x5d7e90ed4b34 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5d7e90edd1d2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5d7e90edd1d2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5d7e90edd1d2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   36:     0x5d7e90edd1d2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5d7e90edd1d2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5d7e90edd1d2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5d7e90edd1d2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5d7e9177261f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   41:     0x5d7e9177261f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   42:     0x71aaa6447aa4 - <unknown>
[INFO] [stdout]   43:     0x71aaa64d4a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     mcp_tool_call_error_returns_json_rpc_error_and_keeps_server_alive
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 68 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.66s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test integration-cli`
[INFO] running `Command { std: "docker" "inspect" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d", kill_on_drop: false }`
[INFO] [stdout] fe62f027e8972cefd3e6de798ab2fb2ad9baaa26e4a58e4d890b1f251893169d
