[INFO] cloning repository https://github.com/heikki-laitala/inderes-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/heikki-laitala/inderes-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fheikki-laitala%2Finderes-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fheikki-laitala%2Finderes-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f70ecf8735e550f40fa278877048d4bbac22722c
[INFO] testing heikki-laitala/inderes-cli against 1.97.0-beta.6 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fheikki-laitala%2Finderes-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] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/heikki-laitala/inderes-cli
[INFO] finished tweaking git repo https://github.com/heikki-laitala/inderes-cli
[INFO] tweaked toml for git repo https://github.com/heikki-laitala/inderes-cli written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/heikki-laitala/inderes-cli 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/heikki-laitala/inderes-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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded webbrowser v1.2.1
[INFO] [stderr]   Downloaded time-core v0.1.9
[INFO] [stderr]   Downloaded time-macros v0.2.29
[INFO] [stderr]   Downloaded num-conv v0.2.2
[INFO] [stderr]   Downloaded digest v0.11.2
[INFO] [stderr]   Downloaded rsqlite-vfs v0.1.1
[INFO] [stderr]   Downloaded hybrid-array v0.4.11
[INFO] [stderr]   Downloaded cc v1.2.61
[INFO] [stderr]   Downloaded time v0.3.49
[INFO] [stderr]   Downloaded predicates-core v1.0.10
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded predicates v3.1.4
[INFO] [stderr]   Downloaded rustls v0.23.39
[INFO] [stderr]   Downloaded predicates-tree v1.0.13
[INFO] [stderr]   Downloaded assert_cmd v2.2.2
[INFO] [stderr]   Downloaded sqlite-wasm-rs v0.5.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00
[INFO] running `Command { std: "docker" "start" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", 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" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00" "/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" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", 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" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00" "/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.61
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling rustls v0.23.39
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling hybrid-array v0.4.11
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.1
[INFO] [stderr]    Compiling terminal_size v0.4.4
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling time-macros v0.2.29
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling webbrowser v1.2.1
[INFO] [stderr]    Compiling time v0.3.49
[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 rusqlite v0.40.1
[INFO] [stderr]    Compiling inderes-cli v2026.6.22 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 54s
[INFO] running `Command { std: "docker" "inspect" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", 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" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00" "/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 slab v0.4.12
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling terminal_size v0.4.4
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling inderes-cli v2026.6.22 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", 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" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00" "/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.41s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/inderes-c7af5324acbfbf05)
[INFO] [stdout] 
[INFO] [stdout] running 156 tests
[INFO] [stdout] test cache::tests::db_path_honors_env_override ... ok
[INFO] [stdout] test cache::tests::cached_topic_ids_lists_all ... ok
[INFO] [stdout] test cache::tests::activity_rejects_unknown_bucket ... ok
[INFO] [stdout] test cache::tests::activity_week_bucket_does_not_split_across_new_year ... ok
[INFO] [stdout] test cache::tests::activity_buckets_posts_by_period ... ok
[INFO] [stdout] test cache::tests::list_cached_reports_topics_with_post_counts ... ok
[INFO] [stdout] test cache::tests::get_posts_preserves_full_raw_object ... ok
[INFO] [stdout] test cache::tests::open_readonly_errors_when_cache_missing ... ok
[INFO] [stdout] test cache::tests::clear_topic_and_clear_all ... ok
[INFO] [stdout] test cache::tests::momentum_none_below_two_periods ... ok
[INFO] [stdout] test cache::tests::query_rejects_empty_and_multi_statement ... ok
[INFO] [stdout] test cache::tests::query_surfaces_non_finite_floats_as_strings ... ok
[INFO] [stdout] test cache::tests::momentum_anchors_to_the_current_period ... ok
[INFO] [stdout] test cache::tests::posts_are_scoped_per_topic ... ok
[INFO] [stdout] test cache::tests::query_returns_columns_and_rows ... ok
[INFO] [stdout] test cache::tests::topic_cursor_defaults_to_none_then_tracks_watermark ... ok
[INFO] [stdout] test cache::tests::upsert_skips_posts_without_id ... ok
[INFO] [stdout] test cache::tests::upsert_then_get_returns_posts_in_post_number_order ... ok
[INFO] [stdout] test cache::tests::upsert_is_idempotent_and_updates_on_conflict ... ok
[INFO] [stdout] test commands::tests::build_args_empty_yields_empty_object ... ok
[INFO] [stdout] test commands::tests::build_args_falls_back_to_string_when_value_not_json ... ok
[INFO] [stdout] test commands::tests::build_args_handles_values_with_equals_sign ... ok
[INFO] [stdout] test commands::tests::build_args_json_args_must_be_object ... ok
[INFO] [stdout] test commands::tests::build_args_json_args_overrides_kv_args ... ok
[INFO] [stdout] test cache::tests::upsert_populates_clean_text_column ... ok
[INFO] [stdout] test cache::tests::upsert_keeps_pre_cleaned_text_verbatim ... ok
[INFO] [stdout] test commands::tests::build_args_json_args_rejects_invalid_json ... ok
[INFO] [stdout] test commands::tests::build_args_parses_json_values_when_possible ... ok
[INFO] [stdout] test commands::tests::build_args_rejects_missing_equals ... ok
[INFO] [stdout] test commands::tests::content_get_args_routes_url_vs_content_id ... ok
[INFO] [stdout] test commands::tests::estimates_args_omits_empty_company_ids_but_always_sends_scalars ... ok
[INFO] [stdout] test commands::tests::fmt_ratio_and_ratio_json_handle_infinity ... ok
[INFO] [stdout] test commands::tests::fundamentals_args_includes_optional_fields_only_when_set ... ok
[INFO] [stdout] test commands::tests::momentum_label_buckets_the_ratio ... ok
[INFO] [stdout] test commands::tests::momentum_ratio_handles_baseline_burst_and_dormant ... ok
[INFO] [stdout] test commands::tests::print_result_json_mode_does_not_consult_is_error ... ok
[INFO] [stdout] tool said no
[INFO] [stdout] test commands::tests::content_list_args_includes_only_present_filters ... ok
[INFO] [stdout] test commands::tests::documents_list_args_carries_pagination ... ok
[INFO] [stdout] test commands::tests::print_result_surfaces_is_error ... ok
[INFO] [stdout] test commands::tests::render_activity_shows_bars_only ... ok
[INFO] [stdout] test commands::tests::render_audio_content_prints_placeholder ... ok
[INFO] [stdout] test commands::tests::render_empty_content_array_prints_placeholder ... ok
[INFO] [stdout] test commands::tests::render_query_table_handles_null_cell ... ok
[INFO] [stdout] test commands::tests::render_resource_with_blob_prints_binary_placeholder ... ok
[INFO] [stdout] test commands::tests::render_resource_with_text_inlines_content ... ok
[INFO] [stdout] test commands::tests::render_text_content_emits_body ... ok
[INFO] [stdout] test commands::tests::render_unknown_content_type_prints_passthrough_hint ... ok
[INFO] [stdout] test commands::tests::render_query_table_aligns_columns ... ok
[INFO] [stdout] test commands::tests::render_without_content_key_falls_back_to_pretty_json ... ok
[INFO] [stdout] test commands::tests::result_error_text_some_only_on_is_error ... ok
[INFO] [stdout] test commands::tests::structured_content_errors_without_structured_or_text ... ok
[INFO] [stdout] test commands::tests::structured_content_falls_back_to_parsing_text ... ok
[INFO] [stdout] test commands::tests::structured_content_prefers_structured_field ... ok
[INFO] [stdout] test commands::tests::render_image_content_prints_placeholder_with_mime_and_size ... ok
[INFO] [stdout] test commands::tests::render_multiple_text_items_prints_each ... ok
[INFO] [stdout] test commands::tests::walk_thread_empty_first_page_leaves_topic_uncached ... ok
[INFO] [stdout] test commands::tests::walk_thread_interrupted_serves_cached_posts ... ok
[INFO] [stdout] test commands::tests::walk_thread_caches_all_pages_until_no_next ... ok
[INFO] [stdout] test commands::tests::walk_thread_error_without_cache_propagates ... ok
[INFO] [stdout] test forum::tests::decode_entities_does_not_double_decode_amp ... ok
[INFO] [stdout] test forum::tests::page_request_args_omits_after_on_the_first_page ... ok
[INFO] [stdout] test forum::tests::page_request_args_resumes_from_cursor ... ok
[INFO] [stdout] test commands::tests::walk_thread_malformed_page_propagates_even_with_cache ... ok
[INFO] [stdout] test forum::tests::parse_posts_page_handles_a_terminal_page ... ok
[INFO] [stdout] test forum::tests::parse_posts_page_maps_posts_and_reads_pageinfo ... ok
[INFO] [stdout] test forum::tests::render_forum_search_empty_topics_is_a_genuine_no_result ... ok
[INFO] [stdout] test commands::tests::walk_thread_resumes_from_stored_cursor_and_marks_caught_up ... ok
[INFO] [stdout] test forum::tests::render_topic_handles_empty_stream ... ok
[INFO] [stdout] test forum::tests::render_forum_search_lists_topics_with_ids_from_url ... ok
[INFO] [stdout] test forum::tests::render_topic_does_not_html_strip_markdown_bodies ... ok
[INFO] [stdout] test forum::tests::render_topic_shows_full_post_bodies ... ok
[INFO] [stdout] test forum::tests::render_unrecognized_shape_dumps_raw_json_not_a_fake_empty ... ok
[INFO] [stdout] test forum::tests::strip_html_collapses_intra_line_whitespace_but_keeps_paragraphs ... ok
[INFO] [stdout] test forum::tests::strip_html_converts_br_to_newline ... ok
[INFO] [stdout] test forum::tests::strip_html_on_markdown_is_identity_modulo_whitespace ... ok
[INFO] [stdout] test forum::tests::strip_html_decodes_common_entities ... ok
[INFO] [stdout] test forum::tests::thread_url_addresses_topic_by_id_with_placeholder_slug ... ok
[INFO] [stdout] test forum::tests::topic_id_from_url_takes_the_trailing_numeric_segment ... ok
[INFO] [stdout] test mcp::tests::boundary_consumer_can_split_correctly ... ok
[INFO] [stdout] test mcp::tests::boundary_crlf ... ok
[INFO] [stdout] test mcp::tests::boundary_lf_wins_when_earlier ... ok
[INFO] [stdout] test mcp::tests::boundary_lf_only ... ok
[INFO] [stdout] test mcp::tests::boundary_none_when_incomplete ... ok
[INFO] [stdout] test forum::tests::mcp_post_to_cache_maps_server_fields_to_cache_columns ... ok
[INFO] [stdout] test mcp::tests::chunked_stream_skips_notifications_and_returns_response ... ok
[INFO] [stdout] test mcp::tests::close_is_noop_without_session_id ... ok
[INFO] [stdout] test mcp::tests::close_sends_delete_with_session_id ... ok
[INFO] [stdout] test mcp::tests::close_tolerates_404_from_already_evicted_session ... ok
[INFO] [stdout] test mcp::tests::does_not_retry_on_400 ... ok
[INFO] [stdout] test mcp::tests::error_object_surfaces_as_error ... ok
[INFO] [stdout] test mcp::tests::id_mismatch_surfaces_as_error ... ok
[INFO] [stdout] test mcp::tests::initialize_captures_session_id_from_response_header ... ok
[INFO] [stdout] test mcp::tests::parse_accepts_no_space_after_colon ... ok
[INFO] [stdout] test mcp::tests::parse_empty_returns_none ... ok
[INFO] [stdout] test mcp::tests::parse_ignores_unknown_fields ... ok
[INFO] [stdout] test mcp::tests::parse_multiline_data_joins_with_newlines ... ok
[INFO] [stdout] test mcp::tests::parse_reports_invalid_json ... ok
[INFO] [stdout] test mcp::tests::parse_single_line_data ... ok
[INFO] [stdout] test cache::tests::readonly_connection_rejects_writes ... ok
[INFO] [stdout] test mcp::tests::parse_strips_single_leading_space_only ... ok
[INFO] [stdout] test mcp::tests::call_tool_returns_result_from_json_response ... ok
[INFO] [stdout] test mcp::tests::retryable_status_matrix ... ok
[INFO] [stdout] test mcp::tests::does_not_retry_on_500 ... ok
[INFO] [stdout] test mcp::tests::sse_content_type_parsed_correctly ... ok
[INFO] [stdout] test mcp::tests::exhausting_retries_returns_upstream_error ... ok
[INFO] [stdout] test mcp::tests::subsequent_requests_echo_session_id_header ... ok
[INFO] [stdout] test cache::tests::migration_adds_cursor_column_to_old_caches ... ok
[INFO] [stdout] test mcp::tests::retries_on_503_then_succeeds ... ok
[INFO] [stdout] test oauth::tests::build_auth_url_attaches_pkce_and_scopes ... ok
[INFO] [stdout] test oauth::tests::idp_default_points_at_inderes ... ok
[INFO] [stdout] test oauth::tests::idp_from_env_layers_overrides ... ok
[INFO] [stdout] test oauth::tests::exchange_code_posts_authorization_code_grant ... ok
[INFO] [stdout] test cache::tests::open_readonly_migrates_old_cache_so_text_is_queryable ... ok
[INFO] [stdout] test cache::tests::migration_adds_and_backfills_text_for_old_caches ... ok
[INFO] [stdout] test oauth::tests::parse_callback_happy_path_returns_code ... ok
[INFO] [stdout] test oauth::tests::parse_callback_rejects_missing_state ... ok
[INFO] [stdout] test oauth::tests::parse_callback_rejects_missing_code ... ok
[INFO] [stdout] test oauth::tests::parse_callback_rejects_state_mismatch_as_csrf ... ok
[INFO] [stdout] test oauth::tests::parse_callback_rejects_wrong_path ... ok
[INFO] [stdout] test oauth::tests::parse_callback_surfaces_error_param ... ok
[INFO] [stdout] test oauth::tests::parse_full_url_extracts_code ... ok
[INFO] [stdout] test oauth::tests::parse_full_url_validates_state ... ok
[INFO] [stdout] test oauth::tests::parse_full_url_rejects_garbage ... ok
[INFO] [stdout] test oauth::tests::parse_full_url_rejects_wrong_path ... ok
[INFO] [stdout] test oauth::tests::parse_full_url_surfaces_error_param ... ok
[INFO] [stdout] test oauth::tests::parse_full_url_handles_https_redirect_uri ... ok
[INFO] [stdout] test oauth::tests::random_urlsafe_length_varies_with_input ... ok
[INFO] [stdout] test oauth::tests::random_verifier_is_rfc_compliant_length ... ok
[INFO] [stdout] test oauth::tests::pkce_s256_matches_rfc_fixture ... ok
[INFO] [stdout] test skill::tests::all_skills_are_non_empty ... ok
[INFO] [stdout] test skill::tests::hermes_path_ends_with_hermes_skills ... ok
[INFO] [stdout] test skill::tests::hermes_skill_has_hermes_metadata ... ok
[INFO] [stdout] test skill::tests::openclaw_path_ends_with_openclaw_skills ... ok
[INFO] [stdout] test skill::tests::openclaw_skill_has_openclaw_metadata ... ok
[INFO] [stdout] test skill::tests::ptrclaw_path_ends_with_ptrclaw_skills ... ok
[INFO] [stdout] test skill::tests::ptrclaw_skill_names_the_shell_tool ... ok
[INFO] [stdout] test oauth::tests::refresh_surfaces_keycloak_error ... ok
[INFO] [stdout] test storage::tests::is_expiring_detects_skew ... ok
[INFO] [stdout] test skill::tests::cli_name_matches_clap_value ... ok
[INFO] [stdout] test storage::tests::load_missing_returns_none ... ok
[INFO] [stdout] test oauth::tests::refresh_handles_missing_expires_in ... ok
[INFO] [stdout] test oauth::tests::refresh_parses_happy_response ... ok
[INFO] [stdout] test upgrade::tests::equal_is_not_newer ... ok
[INFO] [stdout] test storage::tests::clear_removes_file ... ok
[INFO] [stdout] test upgrade::tests::newer_across_minor_and_major ... ok
[INFO] [stdout] test upgrade::tests::newer_handles_double_digit_correctly ... ok
[INFO] [stdout] test storage::tests::save_then_load_roundtrips ... ok
[INFO] [stdout] test storage::tests::saved_file_is_0600 ... ok
[INFO] [stdout] test upgrade::tests::newer_when_patch_increments ... ok
[INFO] [stdout] test upgrade::tests::downgrade_is_not_newer ... ok
[INFO] [stdout] test upgrade::tests::fetches_tag_name_from_releases_latest ... ok
[INFO] [stdout] test oauth::tests::userinfo_bubbles_401 ... ok
[INFO] [stdout] test oauth::tests::userinfo_returns_claims_on_200 ... ok
[INFO] [stdout] test upgrade::tests::strips_leading_v_in_either_input ... ok
[INFO] [stdout] test upgrade::tests::unparseable_is_never_newer ... ok
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-bb2c097fa03539b5)
[INFO] [stdout] test upgrade::tests::surfaces_404_with_status ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 156 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test forum_help_lists_subcommands ... ok
[INFO] [stdout] test call_list_without_login_prints_helpful_error ... ok
[INFO] [stdout] test install_skill_rejects_unknown_host ... ok
[INFO] [stdout] test logout_with_no_stored_tokens_succeeds ... ok
[INFO] [stdout] test install_skill_refuses_to_overwrite_without_force ... ok
[INFO] [stdout] test help_lists_all_subcommands ... ok
[INFO] [stdout] test install_skill_force_overwrites ... ok
[INFO] [stdout] test mocked::call_generic_passes_kv_args_through ... ok
[INFO] [stdout] test mocked::forum_search_renders_topic_ids_from_mcp ... ok
[INFO] [stdout] test mocked::call_list_runs_end_to_end_against_mcp ... ok
[INFO] [stdout] test mocked::estimates_runs_end_to_end_against_mcp ... ok
[INFO] [stdout] test mocked::documents_read_runs_end_to_end ... ok
[INFO] [stdout] test mocked::fundamentals_sends_structured_args ... ok
[INFO] [stdout] test mocked::content_list_and_get_run_end_to_end ... ok
[INFO] [stdout] test mocked::json_flag_emits_raw_tool_result ... ok
[INFO] [stdout] test mocked::forum_topic_with_no_posts_reports_not_found ... ok
[INFO] [stdout] test mocked::search_runs_end_to_end_against_mcp ... ok
[INFO] [stdout] test install_skill_writes_each_host ... ok
[INFO] [stdout] test search_without_login_prints_helpful_error ... ok
[INFO] [stdout] test uninstall_with_remove_skills_succeeds_when_none_installed ... ok
[INFO] [stdout] test uninstall_actually_removes_skill_files_when_present ... ok
[INFO] [stdout] test mocked::whoami_with_valid_token_reports_signed_in ... ok
[INFO] [stdout] test uninstall_yes_clears_tokens_and_prints_rm_hint ... ok
[INFO] [stdout] test upgrade_against_nonexistent_repo_surfaces_error ... ok
[INFO] [stdout] test upgrade_help_lists_check_only_and_force ... ok
[INFO] [stdout] test version_prints_crate_version ... ok
[INFO] [stdout] test whoami_with_no_tokens_reports_not_signed_in ... ok
[INFO] [stdout] test mocked::forum_cache_commands_are_graceful_without_a_cache ... ok
[INFO] [stdout] test completions_generates_shell_script ... ok
[INFO] [stdout] test mocked::forum_topic_caches_then_cache_commands_read_it ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00", kill_on_drop: false }`
[INFO] [stdout] fe7c0de5aa7ef383381147935d8980cf82857213a14b8327068e8033c1b5ee00
