[INFO] fetching crate suvadu 0.5.0...
[INFO] testing suvadu-0.5.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate suvadu 0.5.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate suvadu 0.5.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate suvadu 0.5.0
[INFO] tweaked toml for crates.io crate suvadu 0.5.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate suvadu 0.5.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate suvadu 0.5.0 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.100.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-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba
[INFO] running `Command { std: "docker" "start" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", 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" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", 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" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling pxfm v0.1.29
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling lru v0.18.4
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling hashlink v0.12.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling roff v1.1.1
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.1
[INFO] [stderr]    Compiling uuid v1.23.3
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling nucleo-matcher v0.3.1
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling minisign-verify v0.2.5
[INFO] [stderr]    Compiling time v0.3.49
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.13+spec-1.1.0
[INFO] [stderr]    Compiling suvadu v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_mangen v0.3.0
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling rusqlite v0.40.1
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", 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" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling suvadu v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 39.90s
[INFO] running `Command { std: "docker" "inspect" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", 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" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/suvadu/532e68b38ffb02da/out/suvadu-532e68b38ffb02da)
[INFO] [stdout] 
[INFO] [stdout] running 343 tests
[INFO] [stdout] test ai_sessions::codex::tests::malformed_complete_lines_and_invalid_timestamps_error ... ok
[INFO] [stdout] test ai_sessions::codex::tests::current_response_items_exclude_injected_context_and_non_final_output ... ok
[INFO] [stdout] test ai_sessions::codex::tests::model_and_turn_context_follow_native_changes ... ok
[INFO] [stdout] test ai_sessions::codex::tests::invalid_known_token_counters_error_in_totals_or_last_usage ... ok
[INFO] [stdout] test ai_sessions::codex::tests::current_response_items_capture_user_text_and_final_answer ... ok
[INFO] [stdout] test ai_sessions::codex::tests::only_final_or_legacy_agent_messages_are_captured ... ok
[INFO] [stdout] test ai_sessions::codex::tests::usage_preserves_missing_counters_and_replay_identity ... ok
[INFO] [stdout] test ai_sessions::codex::tests::standalone_prompt_uses_metadata_without_capturing_instructions ... ok
[INFO] [stdout] test ai_sessions::codex::tests::partial_json_waits_for_newline_and_resumes_at_byte_offset ... ok
[INFO] [stdout] test ai_sessions::codex::tests::metadata_is_required_and_native_identity_cannot_change ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_says_so_when_there_is_nothing_captured_to_hand_over ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::a_message_with_no_text_part_produces_no_prompt_or_response_event ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::maps_token_usage_onto_the_shared_ai_event_usage_shape ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::joined_text_tolerates_parts_missing_message_id ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::reimporting_the_same_messages_produces_no_new_events ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::appending_a_new_turn_only_emits_events_for_the_new_messages ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::tool_parts_and_unknown_extra_fields_are_ignored_without_error ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_shows_the_failed_attempt_the_later_success_and_cites_both ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::state_is_unchanged_on_parse_error ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_marks_judgement_sections_for_the_agent_instead_of_inventing_them ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::every_required_section_is_in_the_template_and_in_a_filled_scaffold ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_never_presents_a_command_as_an_observed_file_change ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::an_assistant_message_still_streaming_is_deferred_until_it_completes ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::two_turn_session_accumulates_usage_into_a_running_total ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_carries_capture_gaps_and_refuses_to_call_a_clean_run_proof ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::extracts_prompt_and_response_text_from_matching_parts ... ok
[INFO] [stdout] test db::tests::test_get_db_path_returns_valid_path ... ok
[INFO] [stdout] test ai_sessions::codex::tests::large_image_bearing_prompt_captures_only_its_text ... ok
[INFO] [stdout] test ai_sessions::codex::tests::large_compaction_records_do_not_abort_the_import ... ok
[INFO] [stdout] test ai_sessions::codex::tests::oversized_records_error_even_when_incomplete ... ok
[INFO] [stdout] test models::tests::normalize_scope_path_leaves_bare_root_alone ... ok
[INFO] [stdout] test models::tests::normalize_scope_path_strips_trailing_slash ... ok
[INFO] [stdout] test models::tests::test_alias_suggestion_creation ... ok
[INFO] [stdout] test models::tests::test_entry_creation ... ok
[INFO] [stdout] test models::tests::test_entry_executor_kind ... ok
[INFO] [stdout] test models::tests::test_entry_is_agent ... ok
[INFO] [stdout] test models::tests::test_entry_with_context ... ok
[INFO] [stdout] test models::tests::test_executor_kind_from_str_opt ... ok
[INFO] [stdout] test models::tests::test_executor_kind_is_human ... ok
[INFO] [stdout] test models::tests::test_session_creation ... ok
[INFO] [stdout] test redact::tests::test_all_patterns_compile ... ok
[INFO] [stdout] test redact::tests::test_anthropic_api_key ... ok
[INFO] [stdout] test redact::tests::test_aws_access_key ... ok
[INFO] [stdout] test redact::tests::test_azure_client_secret ... ok
[INFO] [stdout] test redact::tests::test_bare_openai_key_redacted ... ok
[INFO] [stdout] test redact::tests::test_base64_token_in_json_redacted ... ok
[INFO] [stdout] test redact::tests::test_basic_auth_curl ... ok
[INFO] [stdout] test redact::tests::test_bearer_token ... ok
[INFO] [stdout] test redact::tests::test_connection_string ... ok
[INFO] [stdout] test redact::tests::test_connection_string_at_sign_in_password_no_leak ... ok
[INFO] [stdout] test redact::tests::test_connection_string_mongodb ... ok
[INFO] [stdout] test redact::tests::test_connection_string_password_only_uri ... ok
[INFO] [stdout] test redact::tests::test_contains_secrets ... ok
[INFO] [stdout] test redact::tests::test_env_var_anthropic_api_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_api_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_auth_token ... ok
[INFO] [stdout] test redact::tests::test_env_var_aws_secret_access_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_bare_secret ... ok
[INFO] [stdout] test redact::tests::test_env_var_bare_token ... ok
[INFO] [stdout] test redact::tests::test_env_var_basic_auth ... ok
[INFO] [stdout] test redact::tests::test_env_var_db_password ... ok
[INFO] [stdout] test redact::tests::test_env_var_export ... ok
[INFO] [stdout] test redact::tests::test_env_var_export_credential ... ok
[INFO] [stdout] test redact::tests::test_env_var_github_token ... ok
[INFO] [stdout] test redact::tests::test_env_var_inline ... ok
[INFO] [stdout] test redact::tests::test_env_var_private_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_secret_key ... ok
[INFO] [stdout] test redact::tests::test_extra_patterns_empty_is_noop ... ok
[INFO] [stdout] test redact::tests::test_extra_patterns_redact ... ok
[INFO] [stdout] test redact::tests::test_github_token ... ok
[INFO] [stdout] test redact::tests::test_multiple_secrets_in_one_command ... ok
[INFO] [stdout] test redact::tests::test_mysql_password ... ok
[INFO] [stdout] test redact::tests::test_mysql_password_still_redacted ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_authentication_mode ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_author_name ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_cd ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_claude_code_no_flicker ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_credential_helper ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_docker_port ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_docker_user_uid_gid ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_git_author_email ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_grep ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_key_path ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_ls ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_node_env ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_password_file ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_private_key_path ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_react_app_auth_domain ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_redis_cli_port ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_redis_uri_without_auth ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_safe_command ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_secret_scanning ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_ssh_port ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_token_bucket_size ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_tokenizers_parallelism ... ok
[INFO] [stdout] test redact::tests::test_npm_token ... ok
[INFO] [stdout] test redact::tests::test_openai_key ... ok
[INFO] [stdout] test redact::tests::test_openai_key_not_match_anthropic ... ok
[INFO] [stdout] test redact::tests::test_password_flag ... ok
[INFO] [stdout] test redact::tests::test_pem_private_key ... ok
[INFO] [stdout] test redact::tests::test_pypi_token ... ok
[INFO] [stdout] test redact::tests::test_redaction_corpus ... ok
[INFO] [stdout] test redact::tests::test_slack_token ... ok
[INFO] [stdout] test redact::tests::test_stripe_key ... ok
[INFO] [stdout] test redact::tests::test_wrap_command_no_panic ... ok
[INFO] [stdout] test db::tests::test_column_exists_rejects_unlisted_table ... ok
[INFO] [stdout] test db::tests::test_init_db ... ok
[INFO] [stdout] test db::tests::test_schema_version_tracking ... ok
[INFO] [stdout] test db::tests::test_foreign_keys_enforced ... ok
[INFO] [stdout] test db::tests::test_column_exists_rejects_sql_injection_attempt ... ok
[INFO] [stdout] test db::tests::test_init_db_idempotent ... ok
[INFO] [stdout] test db::tests::test_schema_version_table_exists ... ok
[INFO] [stdout] test db::tests::test_all_tables_created ... ok
[INFO] [stdout] test db::tests::test_db_file_permissions ... ok
[INFO] [stdout] test db::tests::test_column_exists_rejects_unlisted_column ... ok
[INFO] [stdout] test db::tests::test_skills_name_scope_unique ... ok
[INFO] [stdout] test db::tests::test_fts_index_stays_in_sync_with_entries ... ok
[INFO] [stdout] test db::tests::test_all_entry_columns_exist ... ok
[INFO] [stdout] test repository::ai_sessions::tests::a_summary_saved_over_a_session_holding_malformed_rows_still_validates ... ok
[INFO] [stdout] test repository::ai_sessions::tests::ai_schema_migrates_and_empty_sessions_are_queryable ... ok
[INFO] [stdout] test repository::ai_sessions::tests::a_summary_saved_under_a_policy_is_redacted_and_can_be_excluded ... ok
[INFO] [stdout] test repository::ai_sessions::tests::agent_session_deletion_is_previewable_before_anything_is_removed ... ok
[INFO] [stdout] test repository::ai_sessions::tests::ai_summaries_for_session_orders_newest_first_and_flags_only_current_as_current ... ok
[INFO] [stdout] test repository::ai_sessions::tests::command_edits_invalidate_revision_and_excluded_commands_hide_the_session ... ok
[INFO] [stdout] test repository::ai_sessions::tests::excluded_project_directory_is_named_as_a_known_capture_gap ... ok
[INFO] [stdout] test repository::ai_sessions::tests::count_ai_sessions_by_agent_counts_only_that_agents_sessions ... ok
[INFO] [stdout] test repository::ai_sessions::tests::imports_are_idempotent_and_cumulative_usage_is_not_summed ... ok
[INFO] [stdout] test repository::ai_sessions::tests::fully_captured_session_reports_no_known_gaps_but_still_admits_unverifiable_scope ... ok
[INFO] [stdout] test repository::ai_sessions::tests::import_opencode_session_only_imports_new_messages_on_incremental_growth ... ok
[INFO] [stdout] test repository::ai_sessions::tests::import_opencode_session_rejects_adapter_version_mismatch ... ok
[INFO] [stdout] test repository::ai_sessions::tests::import_opencode_session_stores_events_and_dedupes_on_reimport ... ok
[INFO] [stdout] test db::tests::test_v8_summary_table_migrates_to_checkpoint_columns ... ok
[INFO] [stdout] test repository::ai_sessions::tests::literal_exclusions_match_existing_shell_history_semantics ... ok
[INFO] [stdout] test repository::ai_sessions::tests::paused_capture_advances_without_revealing_content_or_later_totals ... ok
[INFO] [stdout] test repository::ai_sessions::tests::malformed_transcript_and_wrong_identity_leave_no_partial_import ... ok
[INFO] [stdout] test repository::ai_sessions::tests::disabled_project_does_not_suppress_other_projects_in_same_chunk ... ok
[INFO] [stdout] test repository::ai_sessions::tests::session_row_capture_status_survives_a_clean_command_run ... ok
[INFO] [stdout] test repository::ai_sessions::tests::session_header_separates_known_capture_gaps_from_command_outcomes ... ok
[INFO] [stdout] test repository::filter_builder_tests::all_none_filters_produce_no_clauses ... ok
[INFO] [stdout] test repository::filter_builder_tests::chained_filters ... ok
[INFO] [stdout] test repository::filter_builder_tests::chained_session_filters ... ok
[INFO] [stdout] test repository::filter_builder_tests::empty_builder_produces_where_1_eq_1 ... ok
[INFO] [stdout] test repository::filter_builder_tests::expand_tilde_prefixes_with_home ... ok
[INFO] [stdout] test repository::filter_builder_tests::push_param_adds_to_list ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_cwd ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_cwd_mode_exact_vs_prefix ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_cwd_subtree_matches_dir_and_children ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_date_range_after_only ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_date_range_before_only ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_date_range_both ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_excluded_dirs_empty_list_is_a_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_excluded_dirs_negates_subtree_match_per_dir ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_excluded_dirs_skips_blank_entries ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_executor ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_exit_code ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_failed_only ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_failed_only_false_is_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_contains_mode ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_field_cwd ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_field_executor ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_field_session ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_prefix_mode ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_created_after ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_created_after_none_is_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_tag ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_tag_none_is_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_tag_adds_two_params ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_tag_none_is_noop ... ok
[INFO] [stdout] test repository::ai_sessions::tests::saved_summaries_distinguish_new_activity_from_changed_evidence ... ok
[INFO] [stdout] test repository::ai_sessions::tests::session_row_preview_is_single_lined_and_bounded ... ok
[INFO] [stdout] test repository::ai_sessions::tests::oversized_record_fails_instead_of_returning_a_non_advancing_page ... ok
[INFO] [stdout] test repository::ai_sessions::tests::summary_checkpoints_resume_after_append_and_invalidate_on_prefix_change ... ok
[INFO] [stdout] test repository::ai_sessions::tests::summary_fingerprints_cover_readable_events_not_raw_rows ... ok
[INFO] [stdout] test repository::ai_sessions::tests::text_is_redacted_truncated_and_project_exclusions_are_honored ... ok
[INFO] [stdout] test repository::skills::tests::is_valid_skill_name_accepts_typical_slugs ... ok
[INFO] [stdout] test repository::skills::tests::is_valid_skill_name_rejects_empty_and_path_like_names ... ok
[INFO] [stdout] test repository::ai_sessions::tests::unified_session_rows_carry_project_prompt_preview_and_capture_status ... ok
[INFO] [stdout] test db::tests::test_migrate_pre_existing_db_without_version ... ok
[INFO] [stdout] test repository::api::tests::repo_implements_trait ... ok
[INFO] [stdout] test repository::ai_sessions::tests::unified_sessions_merge_native_ai_and_classify_legacy_agents ... ok
[INFO] [stdout] test repository::api::tests::trait_crud_roundtrip ... ok
[INFO] [stdout] test repository::capture::tests::a_hook_written_row_is_live_and_attributed_to_its_session ... ok
[INFO] [stdout] test repository::capture::tests::agent_rows_are_not_shell_capture_evidence ... ok
[INFO] [stdout] test repository::ai_sessions::tests::paused_torn_and_unread_records_are_not_backfilled_on_resume ... ok
[INFO] [stdout] test repository::skills::tests::create_and_get_skill_roundtrip ... ok
[INFO] [stdout] test repository::skills::tests::create_duplicate_name_scope_fails ... ok
[INFO] [stdout] test repository::skills::tests::create_skill_rejects_path_like_name ... ok
[INFO] [stdout] test repository::skills::tests::delete_skill_removes_row ... ok
[INFO] [stdout] test repository::skills::tests::find_skill_prefers_scope_hint_then_global_then_any ... ok
[INFO] [stdout] test repository::skills::tests::find_skill_ignores_non_active ... ok
[INFO] [stdout] test repository::skills::tests::list_skills_filters_by_scope_and_status ... ok
[INFO] [stdout] test repository::skills::tests::same_name_different_scope_is_allowed ... ok
[INFO] [stdout] test repository::skills::tests::search_skills_excludes_pending ... ok
[INFO] [stdout] test repository::skills::tests::search_skills_matches_name_description_and_triggers ... ok
[INFO] [stdout] test repository::skills::tests::set_skill_status_transitions ... ok
[INFO] [stdout] test repository::skills::tests::update_nonexistent_skill_returns_none ... ok
[INFO] [stdout] test repository::skills::tests::update_skill_bumps_version_and_preserves_unset_fields ... ok
[INFO] [stdout] test repository::skills::tests::upsert_skill_creates_when_absent ... ok
[INFO] [stdout] test repository::skills::tests::upsert_skill_is_a_noop_when_content_is_identical ... ok
[INFO] [stdout] test repository::tests::a_commands_position_is_where_paging_really_finds_it ... ok
[INFO] [stdout] test repository::skills::tests::upsert_skill_updates_when_content_differs ... ok
[INFO] [stdout] test repository::tests::a_session_scope_of_none_behaves_exactly_like_the_bare_filter ... ok
[INFO] [stdout] test repository::tests::count_entries_by_executor_matches_the_exact_executor_name ... ok
[INFO] [stdout] test repository::tests::a_groups_position_is_where_grouped_paging_really_finds_it ... ok
[INFO] [stdout] test repository::tests::deleting_entries_removes_their_notes_and_leaves_the_session_row_behind ... ok
[INFO] [stdout] test repository::tests::preview_entries_by_pattern_returns_the_matching_commands ... ok
[INFO] [stdout] test repository::tests::session_scope_also_narrows_unique_results ... ok
[INFO] [stdout] test repository::tests::test_count_entries ... ok
[INFO] [stdout] test repository::tests::test_begin_and_commit_transaction ... ok
[INFO] [stdout] test repository::tests::test_count_entries_by_pattern ... ok
[INFO] [stdout] test repository::tests::session_scope_composes_with_the_query_and_the_other_filters ... ok
[INFO] [stdout] test repository::tests::session_scope_returns_only_that_sessions_entries ... ok
[INFO] [stdout] test repository::tests::test_backup_to_creates_consistent_copy ... ok
[INFO] [stdout] test repository::tests::test_cwd_prefix_matches_subtree ... ok
[INFO] [stdout] test repository::tests::test_bookmark_duplicate_upsert ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_regex_with_before ... ok
[INFO] [stdout] test repository::tests::test_cwd_filter_with_other_filters ... ok
[INFO] [stdout] test repository::tests::test_bookmark_crud ... ok
[INFO] [stdout] test repository::tests::test_daily_activity_empty_database ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_no_match ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_by_pattern ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_with_before_timestamp ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_by_regex ... ok
[INFO] [stdout] test repository::tests::test_delete_entry_by_id ... ok
[INFO] [stdout] test repository::tests::test_entries_filtering_by_tag ... ok
[INFO] [stdout] test repository::tests::test_entries_filtering_by_bookmarked_only ... ok
[INFO] [stdout] test repository::tests::test_entry_exists ... ok
[INFO] [stdout] test repository::tests::test_entry_with_context ... ok
[INFO] [stdout] test repository::tests::test_executor_null_values ... ok
[INFO] [stdout] test repository::tests::test_executor_tracking ... ok
[INFO] [stdout] test repository::tests::test_export_entries_with_date_filter ... ok
[INFO] [stdout] test repository::tests::test_executor_filter_in_count ... ok
[INFO] [stdout] test repository::tests::test_executor_types ... ok
[INFO] [stdout] test repository::tests::test_export_entries_all ... ok
[INFO] [stdout] test repository::tests::test_gc_orphaned_notes ... ok
[INFO] [stdout] test repository::tests::test_gc_orphaned_sessions ... ok
[INFO] [stdout] test repository::tests::test_get_bookmarked_commands ... ok
[INFO] [stdout] test repository::tests::test_filter_by_cwd ... ok
[INFO] [stdout] test repository::capture::tests::every_import_shape_is_recognised_as_stored_history ... ok
[INFO] [stdout] test repository::tests::test_get_daily_activity ... ok
[INFO] [stdout] test repository::tests::test_get_entries_by_session ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_basic ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_human_only ... ok
[INFO] [stdout] test repository::storage::tests::backup_files_are_counted_from_the_backup_directory ... ok
[INFO] [stdout] test repository::storage::tests::usage_is_reported_per_category_with_rows_and_bytes ... ok
[INFO] [stdout] test repository::tests::test_get_daily_activity_with_tag ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_by_session ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_cwd_filter ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_dir_diversity_ranking ... ok
[INFO] [stdout] test repository::tests::test_get_noted_entry_ids ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_with_days ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_exit_code_filter ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_date_filter ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_executor_filter ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_with_day_filter ... ok
[INFO] [stdout] test repository::storage::tests::the_report_names_every_category_and_states_what_a_backup_keeps ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands ... ok
[INFO] [stdout] test repository::storage::tests::deleting_history_frees_pages_inside_the_file_without_shrinking_it ... ok
[INFO] [stdout] test repository::tests::test_get_stats_empty_db ... ok
[INFO] [stdout] test repository::tests::test_hourly_heatmap_empty_database ... ok
[INFO] [stdout] test repository::tests::test_get_stats_all_time ... ok
[INFO] [stdout] test repository::tests::test_get_stats_with_day_filter ... ok
[INFO] [stdout] test repository::tests::test_insert_and_get_session ... ok
[INFO] [stdout] test repository::tests::test_get_tag_by_session ... ok
[INFO] [stdout] test repository::tests::test_note_crud ... ok
[INFO] [stdout] test repository::tests::test_get_tag_by_nonexistent_session ... ok
[INFO] [stdout] test repository::tests::test_get_stats_with_tag_filter ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_shows_failed_commands ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_cwd_boost_breaks_ties ... ok
[INFO] [stdout] test repository::tests::test_get_stats_executor_breakdown ... ok
[INFO] [stdout] test repository::tests::test_insert_and_get_entry ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_hides_agent_commands_by_default ... ok
[INFO] [stdout] test repository::tests::test_note_upsert_overwrites ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_prefix_match ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_recency_beats_cwd_boost ... ok
[INFO] [stdout] test repository::tests::test_stats_empty_db ... ok
[INFO] [stdout] test repository::tests::test_stats_single_entry ... ok
[INFO] [stdout] test theme::tests::test_dark_theme_colors ... ok
[INFO] [stdout] test theme::tests::test_light_theme_colors ... ok
[INFO] [stdout] test theme::tests::test_terminal_theme_uses_ansi ... ok
[INFO] [stdout] test theme::tests::test_theme_index ... ok
[INFO] [stdout] test theme::tests::test_theme_name_cycle ... ok
[INFO] [stdout] test theme::tests::test_theme_name_default ... ok
[INFO] [stdout] test theme::tests::test_theme_name_display ... ok
[INFO] [stdout] test theme::tests::test_theme_name_serde_roundtrip ... ok
[INFO] [stdout] test repository::tests::test_stats_empty_database ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_no_file ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_no_hooks_key ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_preserves_other_hooks ... ok
[INFO] [stdout] test util::cleanup::tests::cleaning_a_linked_rc_file_edits_its_target_and_keeps_the_link ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_removes_all_suvadu_hook_types ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_removes_suvadu_hook ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_file_missing ... ok
[INFO] [stdout] test repository::tests::test_stats_with_days_filter ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_removes_suvadu_line ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_only_matches_exact_shell ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_no_suvadu_line ... ok
[INFO] [stdout] test util::format::tests::test_format_count ... ok
[INFO] [stdout] test repository::tests::test_stats_with_period_filter ... ok
[INFO] [stdout] test util::format::tests::test_dirs_home ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_emoji ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_exact ... ok
[INFO] [stdout] test util::format::tests::test_format_duration_ms ... ok
[INFO] [stdout] test util::format::tests::test_shorten_path ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_start_short ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_start_truncated ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_tiny_max ... ok
[INFO] [stdout] test repository::tests::test_stats_with_entries ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_truncated ... ok
[INFO] [stdout] test repository::tests::test_tag_lifecycle ... ok
[INFO] [stdout] test util::exclusion::tests::test_is_excluded ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_short ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_start_unicode ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_unicode ... ok
[INFO] [stdout] test repository::tests::test_top_sessions_empty_database ... ok
[INFO] [stdout] test util::reconcile_key::tests::keyed_text_hash_is_deterministic_and_persists_the_key_across_calls ... ok
[INFO] [stdout] test util::reconcile_key::tests::keyed_text_hash_is_not_a_bare_unkeyed_hash ... ok
[INFO] [stdout] test util::terminal::tests::a_failed_setup_step_undoes_the_steps_before_it ... ok
[INFO] [stdout] test util::terminal::tests::a_first_step_failure_has_nothing_to_undo_and_success_undoes_nothing ... ok
[INFO] [stdout] test util::terminal::tests::every_surface_restores_raw_mode_paste_and_the_cursor ... ok
[INFO] [stdout] test util::terminal::tests::full_screen_is_the_default_surface ... ok
[INFO] [stdout] test util::terminal::tests::inline_height_never_exceeds_a_tiny_terminal ... ok
[INFO] [stdout] test util::terminal::tests::inline_height_leaves_room_for_the_surrounding_shell_context ... ok
[INFO] [stdout] test util::terminal::tests::raw_mode_is_disabled_after_the_screen_is_restored ... ok
[INFO] [stdout] test util::terminal::tests::full_screen_teardown_undoes_exactly_what_setup_did ... ok
[INFO] [stdout] test util::terminal::tests::inline_height_is_capped_on_very_tall_terminals ... ok
[INFO] [stdout] test util::tests::test_resolve_auto_tag ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_relative_invalid ... ok
[INFO] [stdout] test util::terminal::tests::inline_never_touches_the_alternate_screen ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_keywords ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_date_iso ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_relative_days ... ok
[INFO] [stdout] test repository::tests::test_transaction_guard_recommit ... ok
[INFO] [stdout] test repository::tests::test_transaction_guard_rollback_on_drop ... ok
[INFO] [stdout] test util::reconcile_key::tests::concurrent_first_use_never_misses_a_key_or_disagrees_on_it ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_query ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_reexecution ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_recency_priority ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_pagination_and_query ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_filtering_by_tag ... ok
[INFO] [stdout] test repository::tests::test_vacuum ... ok
[INFO] [stdout] test repository::tests::test_tag_limits_and_constraints ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 343 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.52s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/suvadu/1e023f762435967c/out/suv-1e023f762435967c)
[INFO] [stdout] 
[INFO] [stdout] running 2032 tests
[INFO] [stdout] test agent::tests::agent_filter_excludes_human_and_unknown ... ok
[INFO] [stdout] test agent::tests::format_timestamp_time_normal_ms ... ok
[INFO] [stdout] test agent::tests::stats_text_agent_summary_computes_success_rate ... ok
[INFO] [stdout] test agent::tests::test_count_at_or_above_thresholds ... ok
[INFO] [stdout] test agent::tests::text_report_empty_entries ... ok
[INFO] [stdout] test agent::tests::days_ms_saturating_mul_does_not_overflow ... ok
[INFO] [stdout] test agent::tests::format_timestamp_time_invalid_value ... ok
[INFO] [stdout] test agent::tests::format_timestamp_time_microsecond_normalization ... ok
[INFO] [stdout] test agent::tests::days_ms_normal_value ... ok
[INFO] [stdout] test agent::tests::agent_breakdown_counts_multiple_agents ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::page_slice_empty ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::build_table_title_empty ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::rebuild_visible_agent_filter ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::build_table_title_with_items ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::page_slice_returns_correct_count ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::rebuild_visible_empty_selects_none ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::rebuild_visible_no_filter ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::rebuild_visible_resets_page_and_selection ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::selected_entry_empty ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::selected_entry_returns_entry ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::selected_risk_safe_command ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::ctrl_a_cycles_agent_filter_via_handle_input ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::ctrl_f_cycles_period_and_reloads ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::ctrl_r_toggles_risk_filter_via_handle_input ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::esc_quits ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::total_pages_within_one_page ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::bare_digit_types_into_search_instead_of_changing_period ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::bounds_first_page ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::bounds_last_partial_page ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::bounds_page_past_end_is_empty ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::next_page_increments_and_selects_first ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::prev_page_decrements_and_selects_first ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::next_page_no_op_at_last_page ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::prev_page_no_op_on_first_page ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::reset_clears_selection_when_empty ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::reset_selects_first_row_when_nonempty ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::select_first_no_op_when_empty ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::select_last_picks_final_index ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::total_pages_exact_multiple ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::total_pages_rounds_up ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_backspace_returns_from_detail ... ok
[INFO] [stdout] test agent_ui::paged_table::tests::total_pages_empty_is_one ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::backspace_removes_last_search_char_and_refilters ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_copy_in_detail_does_not_panic ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_detail_tab_toggles_pane ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::bare_a_and_r_type_into_search_instead_of_toggling_filters ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_enter_detail_and_back ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_list_navigation ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_list_total_pages_empty ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_new_with_entries ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_selected_group_returns_correct ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_session_shortcut_on_empty_is_continue ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_new_empty_entries ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_session_shortcut_returns_open_session ... ok
[INFO] [stdout] test agent_ui::prompts::tests::bare_a_types_into_search_instead_of_cycling_executor ... ok
[INFO] [stdout] test agent_ui::prompts::tests::bare_letters_always_go_to_search_never_to_shortcuts ... ok
[INFO] [stdout] test agent_ui::prompts::tests::bare_q_types_into_search_instead_of_quitting ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_correct_aggregates ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_empty ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_list_total_pages_within_one_page ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_keeps_repeated_text_separate_by_turn ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_multiple_sessions ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_no_prompts_skipped ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_mixed_with_and_without_prompts ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::total_pages_empty ... ok
[INFO] [stdout] test agent_ui::prompts::tests::app_quit_from_list ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_same_session_different_prompts ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_none_exit_code_is_neutral ... ok
[INFO] [stdout] test agent_ui::prompts::tests::backspace_removes_last_char_and_refilters ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_single_group ... ok
[INFO] [stdout] test agent_ui::prompts::tests::build_prompt_groups_sorted_by_recency ... ok
[INFO] [stdout] test agent_ui::prompts::tests::caller_detail_returns_to_its_session_instead_of_prompt_list ... ok
[INFO] [stdout] test agent_ui::prompts::tests::ctrl_p_cycles_period_without_repo_shows_status_message ... ok
[INFO] [stdout] test agent_ui::prompts::tests::ctrl_p_cycles_through_all_periods_and_wraps ... ok
[INFO] [stdout] test agent_ui::prompts::tests::cycle_executor_without_repo_wraps_through_names_and_back_to_all ... ok
[INFO] [stdout] test agent_ui::prompts::tests::digit_keys_type_into_search_instead_of_changing_period ... ok
[INFO] [stdout] test agent_ui::prompts::tests::esc_quits_even_with_search_text_present ... ok
[INFO] [stdout] test agent_ui::prompts::tests::prompt_detail_summary_uses_the_shared_three_row_layout ... ok
[INFO] [stdout] test agent_ui::prompts::tests::row_navigation_crosses_prompt_detail_page_boundaries ... ok
[INFO] [stdout] test agent_ui::prompts::tests::search_filters_groups_by_prompt_text_case_insensitively ... ok
[INFO] [stdout] test agent_ui::prompts::tests::row_navigation_crosses_prompt_list_page_boundaries ... ok
[INFO] [stdout] test agent_ui::prompts::tests::typing_filters_live_with_no_toggle_key_needed ... ok
[INFO] [stdout] test agent_ui::prompts::tests::initial_executor_name_resolves_to_its_index_in_executor_names ... ok
[INFO] [stdout] test agent_ui::stats::tests::agent_stat_high_risk_cmds_match_count ... ok
[INFO] [stdout] test agent_ui::prompts::tests::search_with_no_matches_clears_selection ... ok
[INFO] [stdout] test agent_ui::prompts::tests::search_empty_shows_all_groups ... ok
[INFO] [stdout] test agent_ui::stats::tests::agent_stat_top_dirs_populated ... ok
[INFO] [stdout] test agent_ui::stats::tests::empty_agents_app ... ok
[INFO] [stdout] test agent_ui::stats::tests::focus_starts_on_cards ... ok
[INFO] [stdout] test agent_ui::stats::tests::risk_selected_starts_at_zero ... ok
[INFO] [stdout] test agent_ui::stats::tests::selected_high_risk_count_no_agents ... ok
[INFO] [stdout] test agent_ui::stats::tests::selected_high_risk_count_second_agent ... ok
[INFO] [stdout] test agent_ui::stats::tests::selected_high_risk_count_with_agents ... ok
[INFO] [stdout] test agent_ui::stats::tests::selected_starts_at_zero ... ok
[INFO] [stdout] test agent_ui::tests::compute_agent_counts_empty ... ok
[INFO] [stdout] test agent_ui::tests::compute_agent_counts_single_agent ... ok
[INFO] [stdout] test agent_ui::tests::compute_agent_counts_multiple_agents ... ok
[INFO] [stdout] test agent_ui::tests::format_full_datetime_microsecond_input ... ok
[INFO] [stdout] test agent_ui::tests::compute_agent_counts_unknown_executor ... ok
[INFO] [stdout] test agent_ui::tests::format_datetime_valid_ms ... ok
[INFO] [stdout] test agent_ui::tests::format_datetime_microsecond_input ... ok
[INFO] [stdout] test agent_ui::tests::format_full_datetime_valid_ms ... ok
[INFO] [stdout] test agent_ui::tests::period_after_ms_all_time_is_none ... ok
[INFO] [stdout] test agent_ui::tests::period_after_ms_days30_is_some ... ok
[INFO] [stdout] test agent_ui::tests::period_after_ms_days7_is_some ... ok
[INFO] [stdout] test agent_ui::tests::period_after_ms_today_is_some ... ok
[INFO] [stdout] test agent_ui::tests::period_labels ... ok
[INFO] [stdout] test ai_sessions::codex::tests::current_response_items_capture_user_text_and_final_answer ... ok
[INFO] [stdout] test ai_sessions::codex::tests::current_response_items_exclude_injected_context_and_non_final_output ... ok
[INFO] [stdout] test ai_sessions::codex::tests::invalid_known_token_counters_error_in_totals_or_last_usage ... ok
[INFO] [stdout] test ai_sessions::codex::tests::malformed_complete_lines_and_invalid_timestamps_error ... ok
[INFO] [stdout] test ai_sessions::codex::tests::model_and_turn_context_follow_native_changes ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::tab_toggles_detail_pane ... ok
[INFO] [stdout] test ai_sessions::codex::tests::metadata_is_required_and_native_identity_cannot_change ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::row_navigation_crosses_dashboard_page_boundaries ... ok
[INFO] [stdout] test ai_sessions::codex::tests::partial_json_waits_for_newline_and_resumes_at_byte_offset ... ok
[INFO] [stdout] test ai_sessions::codex::tests::standalone_prompt_uses_metadata_without_capturing_instructions ... ok
[INFO] [stdout] test ai_sessions::codex::tests::only_final_or_legacy_agent_messages_are_captured ... ok
[INFO] [stdout] test ai_sessions::codex::tests::usage_preserves_missing_counters_and_replay_identity ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_carries_capture_gaps_and_refuses_to_call_a_clean_run_proof ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::every_required_section_is_in_the_template_and_in_a_filled_scaffold ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_marks_judgement_sections_for_the_agent_instead_of_inventing_them ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_never_presents_a_command_as_an_observed_file_change ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_shows_the_failed_attempt_the_later_success_and_cites_both ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::an_assistant_message_still_streaming_is_deferred_until_it_completes ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::a_message_with_no_text_part_produces_no_prompt_or_response_event ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::appending_a_new_turn_only_emits_events_for_the_new_messages ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::joined_text_tolerates_parts_missing_message_id ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::maps_token_usage_onto_the_shared_ai_event_usage_shape ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::reimporting_the_same_messages_produces_no_new_events ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::state_is_unchanged_on_parse_error ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::extracts_prompt_and_response_text_from_matching_parts ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::tool_parts_and_unknown_extra_fields_are_ignored_without_error ... ok
[INFO] [stdout] test ai_sessions::opencode::tests::two_turn_session_accumulates_usage_into_a_running_total ... ok
[INFO] [stdout] test cli::tests::hook_opencode_prompt_parses_session_id_and_directory ... ok
[INFO] [stdout] test cli::tests::agent_session_commands_parse_pagination_and_paths ... ok
[INFO] [stdout] test agent_ui::prompts::tests::reload_applies_period_and_executor_via_repo ... ok
[INFO] [stdout] test ai_sessions::handoff::tests::scaffold_says_so_when_there_is_nothing_captured_to_hand_over ... ok
[INFO] [stdout] test cli::tests::test_cli_accepts_alias_singular_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_agent_report ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_aliases_add_unchanged ... ok
[INFO] [stdout] test cli::tests::test_cli_accepts_bookmark_singular_alias ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::typing_filters_command_list_live ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_bare_aliases_as_none ... ok
[INFO] [stdout] test cli::tests::hook_opencode_session_parses_session_id_and_directory ... ok
[INFO] [stdout] test cli::tests::test_cli_accepts_session_singular_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_bare_bookmarks_as_none ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_bare_sessions ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_enable ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_explicit_sessions_limit ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_bookmarks_add_unchanged ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_search_with_args ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_bare_skills_as_none ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_stats_defaults ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_stats_with_tag ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_skills_list_unchanged ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_sessions_with_id ... ok
[INFO] [stdout] test cli::tests::test_cli_rejects_removed_bookmark_pick_subcommand ... ok
[INFO] [stdout] test cli::tests::test_cli_rejects_removed_pick_and_review_subcommands ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_wrap_with_trailing_args ... ok
[INFO] [stdout] test commands::agent_session::tests::capture_policy_preserves_project_privacy_settings_and_pause ... ok
[INFO] [stdout] test cli::tests::test_cli_rejects_unknown_command ... ok
[INFO] [stdout] test ai_sessions::codex::tests::large_compaction_records_do_not_abort_the_import ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_add_invalid_name ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_add_and_list ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_name_validation ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_apply_stdout_format ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_add_and_list_roundtrip ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_apply_empty ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::visible_high_risk_count_tracked ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::selected_risk_dangerous_command ... ok
[INFO] [stdout] test commands::alias_picker::tests::empty_query_shows_all_aliases ... ok
[INFO] [stdout] test commands::alias_picker::tests::filter_matches_command_text ... ok
[INFO] [stdout] test agent::tests::text_report_contains_header_and_agents ... ok
[INFO] [stdout] test commands::alias_picker::tests::filter_with_no_matches_clears_selection ... ok
[INFO] [stdout] test commands::alias_picker::tests::move_down_clamps_at_last_filtered_item ... ok
[INFO] [stdout] test agent_ui::dashboard::tests::rebuild_visible_risk_filter ... ok
[INFO] [stdout] test commands::alias_picker::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test commands::alias_picker::tests::new_app_selects_first_when_nonempty ... ok
[INFO] [stdout] test commands::alias_picker::tests::start_delete_on_empty_list_is_noop ... ok
[INFO] [stdout] test commands::alias_picker::tests::start_delete_opens_confirm_dialog_with_selected_name ... ok
[INFO] [stdout] test commands::alias_picker::tests::start_edit_on_empty_list_is_noop ... ok
[INFO] [stdout] test commands::alias_picker::tests::start_edit_prefills_form_from_selected_alias ... ok
[INFO] [stdout] test commands::alias_picker::tests::new_app_selects_none_when_empty ... ok
[INFO] [stdout] test commands::alias_picker::tests::filter_matches_name_case_insensitively ... ok
[INFO] [stdout] test agent::tests::json_report_roundtrips_through_serde ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_list_with_entries ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_list_empty ... ok
[INFO] [stdout] test ai_sessions::codex::tests::large_image_bearing_prompt_captures_only_its_text ... ok
[INFO] [stdout] test commands::capture::tests::a_genuine_capture_turns_an_import_only_setup_verified ... ok
[INFO] [stdout] test agent::tests::agent_report_json_risk_levels_populated ... ok
[INFO] [stdout] test commands::capture::tests::a_record_from_another_session_counts_when_this_shell_is_hooked ... ok
[INFO] [stdout] test commands::capture::tests::a_recent_record_is_proof_of_capture ... ok
[INFO] [stdout] test commands::capture::tests::a_shell_with_no_hook_of_its_own_has_no_install_advice_it_can_follow ... ok
[INFO] [stdout] test commands::capture::tests::a_record_from_another_shell_does_not_verify_an_unhooked_shell ... ok
[INFO] [stdout] test commands::capture::tests::an_import_only_setup_is_told_how_to_become_verified ... ok
[INFO] [stdout] test commands::capture::tests::ages_are_formatted_in_human_units ... ok
[INFO] [stdout] test agent::tests::markdown_report_contains_expected_sections ... ok
[INFO] [stdout] test agent::tests::agent_report_json_has_expected_fields ... ok
[INFO] [stdout] test commands::capture::tests::disabled_config_is_repaired_by_suv_enable ... ok
[INFO] [stdout] test commands::capture::tests::disabled_and_paused_reports_both_repairs ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_upsert ... ok
[INFO] [stdout] test commands::capture::tests::evidence_headlines_describe_the_proof_they_have ... ok
[INFO] [stdout] test commands::capture::tests::imported_history_alone_is_never_capture_evidence ... ok
[INFO] [stdout] test commands::capture::tests::enabled_recording_needs_no_repair ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_remove ... ok
[INFO] [stdout] test commands::capture::tests::pausing_is_repaired_by_unsetting_the_env_var_not_by_suv_enable ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_remove_nonexistent ... ok
[INFO] [stdout] test commands::capture::tests::imported_history_with_the_hook_installed_is_still_only_configuration ... ok
[INFO] [stdout] test commands::capture::tests::record_ages_are_measured_from_the_stored_timestamp ... ok
[INFO] [stdout] test commands::capture::tests::recording_state_labels_never_claim_capture ... ok
[INFO] [stdout] test commands::capture::tests::rc_hook_is_detected_by_the_suv_init_line ... ok
[INFO] [stdout] test commands::capture::tests::recording_state_separates_disabled_config_from_a_paused_shell ... ok
[INFO] [stdout] test commands::capture::tests::rc_files_are_known_for_supported_shells_only ... ok
[INFO] [stdout] test commands::capture::tests::verification_sequence_runs_searches_then_confirms ... ok
[INFO] [stdout] test commands::doctor::tests::a_broken_hook_script_reports_the_reason_and_how_to_repair_it ... ok
[INFO] [stdout] test commands::doctor::tests::a_missing_rc_file_and_a_missing_hook_line_are_different_problems ... ok
[INFO] [stdout] test commands::capture::tests::clean_setup_is_not_verified ... ok
[INFO] [stdout] test commands::doctor::tests::a_record_from_another_shell_does_not_pass_for_an_unhooked_shell ... ok
[INFO] [stdout] test commands::capture::tests::session_env_var_alone_is_not_proof ... ok
[INFO] [stdout] test commands::doctor::tests::agents_without_native_sessions_or_mcp_say_so_instead_of_reporting_zero ... ok
[INFO] [stdout] test commands::doctor::tests::agent_aspects_distinguish_process_integration_commands_sessions_and_mcp ... ok
[INFO] [stdout] test commands::doctor::tests::an_unused_integration_is_not_reported_as_broken ... ok
[INFO] [stdout] test commands::doctor::tests::an_installed_integration_without_captures_is_unverified_not_healthy ... ok
[INFO] [stdout] test commands::doctor::tests::a_running_agent_without_the_integration_is_a_warning_with_an_init_repair ... ok
[INFO] [stdout] test commands::doctor::tests::capture_evidence_is_a_separate_blocker_check_from_recording ... ok
[INFO] [stdout] test commands::doctor::tests::an_unsupported_shell_has_its_own_explanation ... ok
[INFO] [stdout] test commands::doctor::tests::disabled_and_paused_lists_both_repairs ... ok
[INFO] [stdout] test commands::doctor::tests::disabled_recording_is_repaired_by_suv_enable ... ok
[INFO] [stdout] test commands::doctor::tests::processes_match_by_exact_basename ... ok
[INFO] [stdout] test commands::doctor::tests::recording_is_a_blocker_and_agents_are_optional ... ok
[INFO] [stdout] test commands::doctor::tests::repairs_are_listed_per_failing_check_only ... ok
[INFO] [stdout] test commands::doctor::tests::shell_hook_based_integrations_are_not_asked_to_install_hook_scripts ... ok
[INFO] [stdout] test commands::entry::tests::prompt_cleanup_includes_codex_turn_files ... ok
[INFO] [stdout] test commands::alias::tests::test_alias_upsert_updates_command ... ok
[INFO] [stdout] test commands::doctor::tests::paused_recording_is_repaired_by_unsetting_the_env_var ... ok
[INFO] [stdout] test commands::capture::tests::an_old_record_is_reported_as_observed_earlier_not_as_live_capture ... ok
[INFO] [stdout] test commands::capture::tests::imported_rows_never_supply_the_age_of_the_proof ... ok
[INFO] [stdout] test commands::capture::tests::rc_hook_without_any_record_is_configuration_only ... ok
[INFO] [stdout] test commands::alias_picker::tests::confirm_delete_removes_alias_and_returns_to_browse ... ok
[INFO] [stdout] test commands::alias_picker::tests::submit_form_editing_renamed_alias_removes_old_row ... ok
[INFO] [stdout] test commands::alias_picker::tests::submit_form_editing_same_name_updates_command_in_place ... ok
[INFO] [stdout] test commands::alias_picker::tests::submit_form_adds_alias_and_returns_to_browse ... ok
[INFO] [stdout] test ai_sessions::codex::tests::oversized_records_error_even_when_incomplete ... ok
[INFO] [stdout] test commands::alias_picker::tests::submit_form_rejects_empty_command ... ok
[INFO] [stdout] test commands::alias_picker::tests::submit_form_rejects_invalid_name ... ok
[INFO] [stdout] test commands::alias_picker::tests::submit_form_trims_whitespace ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_creates_session_automatically ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_normalizes_second_timestamps ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_disabled_config_drops ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_leaves_agent_prompt_alone_when_this_directory_disables_redaction ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_multiple_entries_same_session ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_exclusion_drops ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_auto_tags_by_cwd ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_invalid_session_id_chars ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_max_session_id_ok ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_normal_command_passes ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_empty_session_id ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_oversized_cwd ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_oversized_command ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_normalizes_nanosecond_timestamps ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_oversized_session_id ... ok
[INFO] [stdout] test commands::entry::tests::test_drop_early_space_prefixed_command ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_add_nanosecond_timestamps ... ok
[INFO] [stdout] test commands::entry::tests::test_exclusion_cache_reuses_compiled ... ok
[INFO] [stdout] test commands::entry::tests::test_exclusion_cache_empty_patterns ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_preserves_executor_info ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_preserves_exit_code ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_no_auto_tag_for_unmatched_cwd ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_multiple_exclusion_patterns ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_happy_path ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_preserves_context ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_redacts_secrets_by_default ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_redacts_a_cached_agent_prompt_using_this_commands_own_config ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_reuses_existing_session ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_zero_started_at_uses_ended_at ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_remove ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_skips_redaction_when_disabled ... ok
[INFO] [stdout] test commands::entry::tests::test_add_inner_zero_ended_at_uses_started_at ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_add_and_list ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_add_pipeline ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_with_repo_list ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_remove_nonexistent ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_with_repo_add ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_with_repo_remove_nonexistent_errors ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_delete_dry_run ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_boundary_seconds_ms ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_delete_empty_pattern_error ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_microseconds ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_milliseconds ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_nanoseconds ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_negative ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_seconds ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_zero ... ok
[INFO] [stdout] test commands::guard::tests::a_verdict_about_indirection_says_what_it_cannot_know ... ok
[INFO] [stdout] test commands::guard::tests::a_verdict_separates_severity_the_matched_text_and_the_doubt ... ok
[INFO] [stdout] test commands::guard::tests::critical_risk_command_blocked_at_critical_threshold ... ok
[INFO] [stdout] test commands::guard::tests::critical_threshold_lets_high_risk_through ... ok
[INFO] [stdout] test commands::guard::tests::guard_never_describes_itself_as_containment ... ok
[INFO] [stdout] test commands::guard::tests::high_risk_command_blocked_at_default_threshold ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_delete_refuses_non_tty_without_yes ... ok
[INFO] [stdout] test commands::guard::tests::no_match_is_never_blocked_regardless_of_threshold ... ok
[INFO] [stdout] test commands::guard::tests::low_threshold_blocks_medium_risk ... ok
[INFO] [stdout] test commands::guard::tests::safe_command_is_not_blocked ... ok
[INFO] [stdout] test commands::picker::tests::empty_query_shows_all_bookmarks ... ok
[INFO] [stdout] test commands::picker::tests::filter_matches_command_text_case_insensitively ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_delete_regex_pattern ... ok
[INFO] [stdout] test commands::picker::tests::filter_matches_label_text ... ok
[INFO] [stdout] test commands::picker::tests::filter_with_no_matches_clears_selection ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_delete_no_match ... ok
[INFO] [stdout] test commands::picker::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test commands::picker::tests::new_app_selects_first_when_nonempty ... ok
[INFO] [stdout] test commands::picker::tests::move_down_clamps_at_last_filtered_item ... ok
[INFO] [stdout] test commands::picker::tests::new_app_selects_none_when_empty ... ok
[INFO] [stdout] test commands::picker::tests::selected_command_none_when_list_empty ... ok
[INFO] [stdout] test commands::picker::tests::start_delete_on_empty_list_is_noop ... ok
[INFO] [stdout] test commands::picker::tests::start_delete_opens_confirm_dialog_with_selected_command ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_gc_cleans_orphan_sessions ... ok
[INFO] [stdout] test commands::picker::tests::start_edit_on_empty_list_is_noop ... ok
[INFO] [stdout] test commands::picker::tests::start_edit_prefills_form_from_selected_bookmark ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_gc_vacuum ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_note_upsert_and_read ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_gc_cleans_orphan_notes ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_note_read_nonexistent ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_note_delete_nonexistent ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_note_delete ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_boundary_ms_us ... ok
[INFO] [stdout] test commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check ... FAILED
[INFO] [stdout] test commands::picker::tests::confirm_delete_removes_bookmark_and_returns_to_browse ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_combined_flags ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_cwd_flag ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_date_flags ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_gc_dry_run_no_orphans ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_explicit_session ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_here_flag ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_tag_flag ... ok
[INFO] [stdout] test commands::replay::tests::test_resolve_replay_scope_no_flags_no_env ... ok
[INFO] [stdout] test commands::search::tests::test_empty_query_becomes_none ... ok
[INFO] [stdout] test commands::picker::tests::submit_form_editing_renamed_command_removes_old_row ... ok
[INFO] [stdout] test commands::picker::tests::submit_form_adds_bookmark_and_returns_to_browse ... ok
[INFO] [stdout] test commands::picker::tests::submit_form_rejects_empty_command ... ok
[INFO] [stdout] test commands::picker::tests::submit_form_editing_same_command_updates_label_in_place ... ok
[INFO] [stdout] test commands::search::tests::test_shell_fallback_exit_code_is_documented ... ok
[INFO] [stdout] test commands::entry::tests::test_normalize_timestamp_current_epoch ... ok
[INFO] [stdout] test commands::picker::tests::selected_command_returns_filtered_entry ... ok
[INFO] [stdout] test commands::picker::tests::submit_form_trims_whitespace_and_empty_label_becomes_none ... ok
[INFO] [stdout] test commands::entry::tests::test_handle_bookmarks_with_repo_remove ... ok
[INFO] [stdout] test commands::replay::tests::test_replay_empty_session ... ok
[INFO] [stdout] test commands::replay::tests::test_replay_entries_cwd_filter ... ok
[INFO] [stdout] test commands::search::tests::test_handle_get_empty_db ... ok
[INFO] [stdout] test commands::search::tests::test_handle_get_prefix_match ... ok
[INFO] [stdout] test commands::replay::tests::test_replay_entries_by_session ... ok
[INFO] [stdout] test commands::settings::tests::a_script_install_is_recognised_by_its_suvadu_link ... ok
[INFO] [stdout] test commands::settings::tests::a_binary_without_the_install_scripts_link_is_not_a_script_install ... ok
[INFO] [stdout] test commands::settings::tests::package_manager_paths_are_never_treated_as_script_installs ... ok
[INFO] [stdout] test commands::settings::tests::status_does_not_invent_a_missing_exit_code ... ok
[INFO] [stdout] test commands::settings::tests::status_points_at_the_verification_sequence ... ok
[INFO] [stdout] test commands::settings::tests::status_reports_a_recent_record_as_the_evidence_of_capture ... ok
[INFO] [stdout] test commands::settings::tests::status_never_claims_history_is_being_recorded_from_config_alone ... ok
[INFO] [stdout] test commands::settings::tests::removing_a_script_install_deletes_only_suv_and_its_link ... ok
[INFO] [stdout] test commands::replay::tests::test_replay_entries_exit_code_filter ... ok
[INFO] [stdout] test commands::settings::tests::status_tells_a_paused_shell_to_unset_the_env_var ... ok
[INFO] [stdout] test commands::settings::tests::test_recording_state_logic ... ok
[INFO] [stdout] test commands::settings::tests::system_and_package_locations_are_never_script_installs ... ok
[INFO] [stdout] test commands::settings::tests::test_confirmation_input_parsing ... ok
[INFO] [stdout] test commands::settings::tests::test_uninstall_detection_logic ... ok
[INFO] [stdout] test commands::settings::tests::uninstall_data_paths_come_from_project_dirs_not_hardcoded_strings ... ok
[INFO] [stdout] test commands::settings::tests::uninstall_data_paths_dedupe_when_config_and_data_share_a_directory ... ok
[INFO] [stdout] test commands::settings::tests::status_warns_that_a_session_variable_is_not_proof ... ok
[INFO] [stdout] test commands::skills::tests::cleanup_summary_does_not_claim_all_is_well_when_files_were_left_alone ... ok
[INFO] [stdout] test commands::replay::tests::test_replay_full_flow ... ok
[INFO] [stdout] test commands::search::tests::test_handle_get_with_query_filter ... ok
[INFO] [stdout] test commands::search::tests::test_handle_get_returns_most_recent ... ok
[INFO] [stdout] test commands::session::tests::test_session_list_empty ... ok
[INFO] [stdout] test commands::replay::tests::test_replay_entries_time_filter ... ok
[INFO] [stdout] test commands::session::tests::test_session_list_with_tag_filter ... ok
[INFO] [stdout] test commands::skills::tests::origin_label_names_the_proposing_agent ... ok
[INFO] [stdout] test commands::skills::tests::removal_notice_lists_leftover_files_and_points_at_cleanup ... ok
[INFO] [stdout] test commands::skills::tests::resolve_scope_variants ... ok
[INFO] [stdout] test commands::session::tests::test_session_list_with_entries ... ok
[INFO] [stdout] test commands::session::tests::test_session_prefix_no_match ... ok
[INFO] [stdout] test commands::session::tests::test_session_prefix_exact_match ... ok
[INFO] [stdout] test commands::skills::tests::add_and_show_roundtrip ... ok
[INFO] [stdout] test commands::skills::tests::edit_updates_body_and_bumps_version ... ok
[INFO] [stdout] test commands::skills::tests::add_duplicate_name_scope_errors_with_hint ... ok
[INFO] [stdout] test commands::session::tests::test_session_prefix_multiple_matches ... ok
[INFO] [stdout] test commands::skills::tests::list_default_hides_non_active ... ok
[INFO] [stdout] test commands::skills::tests::state_label_spells_out_what_each_status_means_for_syncing ... ok
[INFO] [stdout] test commands::skills::tests::sync_summary_does_not_claim_everything_is_up_to_date_when_a_conflict_blocked_it ... ok
[INFO] [stdout] test commands::skills::tests::sync_summary_reports_a_clean_no_op ... ok
[INFO] [stdout] test commands::skills::tests::list_keeps_the_proposing_agent_name_readable ... ok
[INFO] [stdout] test commands::skills::tests::disable_then_enable_roundtrips_without_deleting_the_skill ... ok
[INFO] [stdout] test commands::skills::tests::add_empty_body_errors ... ok
[INFO] [stdout] test commands::skills::tests::enabling_a_pending_proposal_is_an_explicit_human_approval_not_a_sync_side_effect ... ok
[INFO] [stdout] test commands::session::tests::interactive_picker_respects_an_explicit_limit ... ok
[INFO] [stdout] test commands::skills::tests::rm_missing_skill_errors ... ok
[INFO] [stdout] test commands::session::tests::interactive_picker_loads_more_than_the_list_default ... ok
[INFO] [stdout] test commands::skills::tests::rm_removes_skill ... ok
[INFO] [stdout] test commands::skills::tests::review_approve_activates_pending_skill ... ok
[INFO] [stdout] test commands::skills::tests::review_reject_archives_pending_skill ... ok
[INFO] [stdout] test commands::skills::tests::show_can_inspect_a_pending_proposal_not_just_active_skills ... ok
[INFO] [stdout] test commands::skills::tests::same_name_different_scope_allowed ... ok
[INFO] [stdout] test commands::skills::tests::skill_details_show_scope_origin_state_and_destinations ... ok
[INFO] [stdout] test commands::skills::tests::list_row_shows_state_and_origin_next_to_the_scope ... ok
[INFO] [stdout] test commands::skills::tests::skill_details_explain_why_a_pending_skill_syncs_nowhere ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_associate_no_session_id ... ok
[INFO] [stdout] test commands::stats::tests::test_resolve_tag_not_found ... ok
[INFO] [stdout] test commands::stats::tests::test_resolve_tag_none ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_json_empty_db ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_percentage_no_division_by_zero ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_json_output ... ok
[INFO] [stdout] test commands::stats::tests::test_resolve_tag_found ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_text_empty_db ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_filtered_by_tag ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_text_with_tag_filter ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_empty_db ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_with_failures ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_associate_auto_creates_tag ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_text_with_data ... ok
[INFO] [stdout] test commands::wrap::tests::test_exit_code_signal_kill ... ok
[INFO] [stdout] test commands::wrap::tests::test_exit_code_signal_segv ... ok
[INFO] [stdout] test commands::wrap::tests::test_exit_code_nonzero_exit ... ok
[INFO] [stdout] test commands::wrap::tests::test_exit_code_normal_exit ... ok
[INFO] [stdout] test config::tests::a_project_overlay_cannot_change_update_checks ... ok
[INFO] [stdout] test commands::stats::tests::test_stats_with_entries ... ok
[INFO] [stdout] test config::tests::a_chosen_startup_screen_is_saved_beside_unknown_home_keys ... ok
[INFO] [stdout] test config::tests::an_invalid_home_value_is_an_error_naming_the_choices ... ok
[INFO] [stdout] test config::tests::find_project_overlay_finds_file_in_start_dir ... ok
[INFO] [stdout] test config::tests::find_project_overlay_prefers_nearest_ancestor ... ok
[INFO] [stdout] test config::tests::a_project_overlay_cannot_change_home_preferences ... ok
[INFO] [stdout] test config::tests::home_preferences_default_to_home_and_ascii_when_unset ... ok
[INFO] [stdout] test config::tests::merge_toml_key_absent_from_overlay_is_untouched ... ok
[INFO] [stdout] test config::tests::find_project_overlay_walks_up_from_a_child_directory ... ok
[INFO] [stdout] test config::tests::merge_toml_array_is_replaced_wholesale_not_concatenated ... ok
[INFO] [stdout] test config::tests::home_preferences_read_both_startup_screens_and_icon_sets ... ok
[INFO] [stdout] test config::tests::recall_groups_identical_commands_unless_a_config_says_otherwise ... ok
[INFO] [stdout] test config::tests::reading_a_missing_global_config_creates_nothing ... ok
[INFO] [stdout] test config::tests::merge_toml_scalar_overrides_base ... ok
[INFO] [stdout] test config::tests::merge_toml_nested_table_merges_key_by_key ... ok
[INFO] [stdout] test config::tests::find_project_overlay_none_when_absent ... ok
[INFO] [stdout] test config::tests::test_config_path_creation ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_create_duplicate ... ok
[INFO] [stdout] test config::tests::test_config_serialization ... ok
[INFO] [stdout] test config::tests::test_custom_agent_default_executor_type ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_empty_agents_section ... ok
[INFO] [stdout] test config::tests::reading_an_invalid_global_config_reports_it_and_leaves_it_alone ... ok
[INFO] [stdout] test config::tests::test_is_paused_logic ... ok
[INFO] [stdout] test config::tests::test_load_nonexistent_config ... ok
[INFO] [stdout] test config::tests::test_custom_agents_deserialization ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_associate_existing_tag ... ok
[INFO] [stdout] test config::tests::test_mcp_config_defaults ... ok
[INFO] [stdout] test config::tests::test_mcp_allow_skill_proposals_deserialization ... ok
[INFO] [stdout] test config::tests::test_mcp_config_missing_section_uses_defaults ... ok
[INFO] [stdout] test config::tests::test_mcp_config_validation_limit ... ok
[INFO] [stdout] test config::tests::test_unknown_fields_ignored ... ok
[INFO] [stdout] test config::tests::test_mcp_config_validation_days ... ok
[INFO] [stdout] test config::tests::test_mcp_config_deserialization ... ok
[INFO] [stdout] test config::tests::test_mcp_allow_session_summaries_deserialization ... ok
[INFO] [stdout] test config::tests::update_checks_are_on_unless_turned_off ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_create_empty_name ... ok
[INFO] [stdout] test config::tests::save_keeps_unrelated_and_unknown_config_keys ... ok
[INFO] [stdout] test config::tests::test_save_and_load_config ... ok
[INFO] [stdout] test config::tests::save_still_applies_removals ... ok
[INFO] [stdout] test config::tests::saving_other_settings_leaves_the_startup_screen_unset ... ok
[INFO] [stdout] test db::tests::test_get_db_path_returns_valid_path ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_create_with_description ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_update_description ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_create_with_name ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_list_empty ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_update_name ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_list_with_tags ... ok
[INFO] [stdout] test commands::tag::tests::test_tag_update_not_found ... ok
[INFO] [stdout] test home::catalog::tests::action_labels_say_what_enter_does ... ok
[INFO] [stdout] test home::catalog::tests::an_exact_command_or_title_ranks_first ... ok
[INFO] [stdout] test home::catalog::tests::backup_is_discoverable_but_not_executable ... ok
[INFO] [stdout] test home::catalog::tests::categories_are_stable_and_start_where_the_plan_says ... ok
[INFO] [stdout] test db::tests::test_db_file_permissions ... ok
[INFO] [stdout] test db::tests::test_init_db ... ok
[INFO] [stdout] test db::tests::test_column_exists_rejects_unlisted_column ... ok
[INFO] [stdout] test home::catalog::tests::changes_are_guides_never_launches ... ok
[INFO] [stdout] test home::catalog::tests::command_aliases_find_their_canonical_feature_once ... ok
[INFO] [stdout] test home::catalog::tests::equally_good_matches_keep_catalog_order ... ok
[INFO] [stdout] test home::catalog::tests::every_feature_has_a_short_summary ... ok
[INFO] [stdout] test db::tests::test_fts_index_stays_in_sync_with_entries ... ok
[INFO] [stdout] test db::tests::test_column_exists_rejects_sql_injection_attempt ... ok
[INFO] [stdout] test db::tests::test_all_tables_created ... ok
[INFO] [stdout] test db::tests::test_all_entry_columns_exist ... ok
[INFO] [stdout] test home::catalog::tests::every_listed_command_path_exists_and_is_public ... ok
[INFO] [stdout] test home::catalog::tests::every_word_of_the_query_must_match ... ok
[INFO] [stdout] test home::catalog::tests::failed_search_uses_its_real_flag ... ok
[INFO] [stdout] test home::catalog::tests::curated_queries_find_their_feature_in_the_first_three ... ok
[INFO] [stdout] test home::catalog::tests::every_public_command_belongs_to_a_feature ... ok
[INFO] [stdout] test home::catalog::tests::feature_ids_are_unique_and_every_feature_has_a_home ... ok
[INFO] [stdout] test home::catalog::tests::launches_are_the_approved_screens_and_reports ... ok
[INFO] [stdout] test home::catalog::tests::hidden_and_protocol_commands_are_never_offered ... ok
[INFO] [stdout] test home::catalog::tests::no_feature_text_claims_what_home_cannot_know ... ok
[INFO] [stdout] test home::catalog::tests::placeholders_are_told_apart_from_redirections ... ok
[INFO] [stdout] test home::catalog::tests::screens_that_can_change_data_say_so ... ok
[INFO] [stdout] test home::catalog::tests::the_update_guide_explains_the_notice_and_how_to_turn_it_off ... ok
[INFO] [stdout] test home::catalog::tests::the_backup_guide_restores_safely ... ok
[INFO] [stdout] test db::tests::test_column_exists_rejects_unlisted_table ... ok
[INFO] [stdout] test home::model::tests::a_failed_report_can_be_retried ... ok
[INFO] [stdout] test home::catalog::tests::wrap_guard_and_replay_say_which_one_runs_commands ... ok
[INFO] [stdout] test home::model::tests::a_pasted_line_break_edits_the_query_and_never_opens_anything ... ok
[INFO] [stdout] test home::model::tests::a_too_small_terminal_only_quits ... ok
[INFO] [stdout] test home::catalog::tests::every_launch_is_a_real_command_line ... ok
[INFO] [stdout] test home::model::tests::ctrl_c_interrupts_and_ctrl_r_opens_search_from_anywhere ... ok
[INFO] [stdout] test home::model::tests::copying_reports_success_only_when_it_worked ... ok
[INFO] [stdout] test home::model::tests::ctrl_r_from_a_result_replaces_it ... ok
[INFO] [stdout] test home::model::tests::esc_closes_a_page_then_clears_the_query_then_goes_up_then_exits ... ok
[INFO] [stdout] test home::catalog::tests::unmatched_or_odd_queries_return_nothing_without_panicking ... ok
[INFO] [stdout] test db::tests::test_schema_version_table_exists ... ok
[INFO] [stdout] test home::model::tests::a_selected_command_is_offered_to_copy_exactly ... ok
[INFO] [stdout] test home::model::tests::layouts_follow_the_terminal_size ... ok
[INFO] [stdout] test home::model::tests::f1_opens_keys_and_f2_opens_the_reference_at_the_selected_command ... ok
[INFO] [stdout] test home::model::tests::enter_opens_a_category_then_launches_its_feature ... ok
[INFO] [stdout] test home::model::tests::home_starts_on_find_a_command_with_the_reference_last ... ok
[INFO] [stdout] test db::tests::test_foreign_keys_enforced ... ok
[INFO] [stdout] test home::model::tests::nothing_selected_returns_straight_to_home ... ok
[INFO] [stdout] test home::model::tests::letters_that_other_screens_use_as_keys_are_search_text_here ... ok
[INFO] [stdout] test home::model::tests::released_or_repeated_enter_never_launches ... ok
[INFO] [stdout] test home::model::tests::resizing_keeps_the_selection ... ok
[INFO] [stdout] test db::tests::test_schema_version_tracking ... ok
[INFO] [stdout] test home::model::tests::tab_moves_focus_when_wide_and_opens_details_when_narrower ... ok
[INFO] [stdout] test home::model::tests::the_query_stops_at_256_graphemes_and_says_so ... ok
[INFO] [stdout] test home::model::tests::the_query_cursor_moves_and_deletes_whole_graphemes ... ok
[INFO] [stdout] test home::reference::tests::hidden_commands_are_not_topics ... ok
[INFO] [stdout] test home::model::tests::guides_open_their_instructions_instead_of_running ... ok
[INFO] [stdout] test home::model::tests::with_no_results_enter_does_nothing ... ok
[INFO] [stdout] test db::tests::test_init_db_idempotent ... ok
[INFO] [stdout] test db::tests::test_skills_name_scope_unique ... ok
[INFO] [stdout] test home::reference::tests::a_feature_opens_the_reference_at_its_command ... ok
[INFO] [stdout] test home::reference::tests::topics_start_with_the_overview_then_follow_the_command_tree ... ok
[INFO] [stdout] test home::reference::tests::the_overview_is_exactly_what_suv_help_prints ... ok
[INFO] [stdout] test home::runner::tests::a_screen_that_closes_normally_needs_nothing_shown ... ok
[INFO] [stdout] test home::reference::tests::a_command_topic_is_its_own_long_help ... ok
[INFO] [stdout] test home::runner::tests::a_search_with_no_history_says_so_instead_of_selecting_nothing ... ok
[INFO] [stdout] test home::runner::tests::a_report_shows_both_streams_and_its_status ... ok
[INFO] [stdout] test db::tests::test_v8_summary_table_migrates_to_checkpoint_columns ... ok
[INFO] [stdout] test home::reference::tests::unknown_or_hidden_commands_are_a_readable_error ... ok
[INFO] [stdout] test db::tests::test_migrate_pre_existing_db_without_version ... ok
[INFO] [stdout] test home::runner::tests::a_selection_keeps_every_space_and_loses_only_the_final_newline ... ok
[INFO] [stdout] test home::model::tests::typing_searches_every_category_and_clearing_returns_to_where_you_were ... ok
[INFO] [stdout] test home::model::tests::the_selection_follows_the_feature_not_its_position ... ok
[INFO] [stdout] test home::catalog::tests::searching_five_hundred_features_is_fast ... ok
[INFO] [stdout] test home::startup::tests::bare_suv_at_a_terminal_follows_the_preference ... ok
[INFO] [stdout] test home::startup::tests::a_dumb_terminal_is_treated_like_no_terminal ... ok
[INFO] [stdout] test home::startup::tests::explicit_home_overrides_a_classic_help_preference ... ok
[INFO] [stdout] test home::runner::tests::cancelling_a_picker_selects_nothing ... ok
[INFO] [stdout] test home::startup::tests::pipes_never_open_home ... ok
[INFO] [stdout] test home::tests::a_toml_error_becomes_one_line_with_its_location ... ok
[INFO] [stdout] test home::tests::only_screens_and_failures_pause_on_the_way_back ... ok
[INFO] [stdout] test home::tests::a_failed_copy_never_claims_success ... ok
[INFO] [stdout] test home::tests::a_copy_sends_the_exact_text_and_then_says_so ... ok
[INFO] [stdout] test home::tests::a_terminal_that_cannot_be_set_up_falls_back_to_the_overview ... ok
[INFO] [stdout] test home::runner::tests::features_opened_from_home_never_announce_updates ... ok
[INFO] [stdout] test home::runner::tests::arguments_arrive_exactly_and_are_never_run_by_a_shell ... ok
[INFO] [stdout] test home::runner::tests::other_exits_and_signals_are_reported_plainly ... ok
[INFO] [stdout] test home::runner::tests::features_know_home_launched_them ... ok
[INFO] [stdout] test home::runner::tests::exit_10_explains_that_recording_is_off ... ok
[INFO] [stdout] test home::ui::tests::a_known_update_leads_the_status_line ... ok
[INFO] [stdout] test home::ui::tests::a_category_preview_says_what_each_feature_is_for ... ok
[INFO] [stdout] test home::ui::tests::help_lines_wrap_under_their_description ... ok
[INFO] [stdout] test home::runner::tests::output_past_the_limit_is_drained_kept_to_the_limit_and_marked ... ok
[INFO] [stdout] test home::runner::tests::an_oversized_or_unfinished_selection_is_never_offered ... ok
[INFO] [stdout] test home::ui::tests::a_medium_screen_explains_under_the_list ... ok
[INFO] [stdout] test home::ui::tests::a_selected_command_shows_its_exact_whitespace_and_that_it_did_not_run ... ok
[INFO] [stdout] test home::ui::tests::a_wide_screen_explains_the_selected_feature_in_order ... ok
[INFO] [stdout] test home::runner::tests::both_streams_drain_past_a_pipe_buffer_without_deadlock ... ok
[INFO] [stdout] test home::ui::tests::a_very_large_terminal_gets_a_bounded_home ... ok
[INFO] [stdout] test home::ui::tests::both_icon_sets_keep_the_labels ... ok
[INFO] [stdout] test home::catalog::tests::every_command_shown_is_one_the_cli_accepts ... ok
[INFO] [stdout] test home::ui::tests::narrow_footers_and_status_lines_keep_whole_parts ... ok
[INFO] [stdout] test home::ui::tests::list_tags_are_whole_or_absent ... ok
[INFO] [stdout] test home::ui::tests::every_supported_size_shows_the_selection_and_the_way_out ... ok
[INFO] [stdout] test home::ui::tests::the_search_caret_shows_only_while_typing_goes_there ... ok
[INFO] [stdout] test home::ui::tests::no_color_draws_only_default_colours_and_still_marks_the_selection ... ok
[INFO] [stdout] test home::ui::tests::report_output_cannot_send_escape_sequences_to_the_terminal ... ok
[INFO] [stdout] test home::ui::tests::the_example_to_copy_is_shown_next_to_the_buttons ... ok
[INFO] [stdout] test home::ui::tests::no_results_offer_a_way_forward ... ok
[INFO] [stdout] test home::ui::tests::tiny_home_does_not_panic ... ok
[INFO] [stdout] test home::ui::tests::the_footer_names_what_ctrl_r_opens ... ok
[INFO] [stdout] test home::ui::tests::too_small_asks_for_room_and_says_how_to_leave ... ok
[INFO] [stdout] test hooks::tests::test_bash_suv_wrapper_structure ... ok
[INFO] [stdout] test hooks::tests::test_custom_agent_unsafe_name_skipped ... ok
[INFO] [stdout] test hooks::tests::test_custom_agents_checked_before_builtins ... ok
[INFO] [stdout] test hooks::tests::test_custom_agents_in_bash_hook ... ok
[INFO] [stdout] test hooks::tests::test_no_custom_agents_default_config ... ok
[INFO] [stdout] test hooks::tests::test_no_doubled_braces_in_output ... ok
[INFO] [stdout] test hooks::tests::test_shell_quote_path_with_dollar ... ok
[INFO] [stdout] test hooks::tests::test_custom_agents_in_zsh_hook ... ok
[INFO] [stdout] test hooks::tests::test_bash_hook_generation ... ok
[INFO] [stdout] test hooks::tests::test_bash_hook_contains_executor_detection ... ok
[INFO] [stdout] test hooks::tests::test_shell_quote_path_with_single_quote ... ok
[INFO] [stdout] test hooks::tests::test_shell_quote_path_with_spaces ... ok
[INFO] [stdout] test hooks::tests::test_shell_quote_simple_path ... ok
[INFO] [stdout] test hooks::tests::test_zsh_hook_arrow_nav_enabled ... ok
[INFO] [stdout] test hooks::tests::test_zsh_hook_generation ... ok
[INFO] [stdout] test hooks::tests::test_zsh_suv_wrapper_structure ... ok
[INFO] [stdout] test hooks::tests::test_zsh_hook_arrow_nav_disabled ... ok
[INFO] [stdout] test hooks::tests::test_zsh_hook_binary_path ... ok
[INFO] [stdout] test hooks::tests::test_zsh_hook_contains_session_id ... ok
[INFO] [stdout] test home::ui::tests::the_status_line_claims_only_what_is_known ... ok
[INFO] [stdout] test home::ui::tests::the_keys_page_explains_the_status_line ... ok
[INFO] [stdout] test home::ui::tests::the_search_hint_and_status_line_are_readable ... ok
[INFO] [stdout] test import_export::atuin::tests::a_missing_file_names_the_usual_atuin_location ... ok
[INFO] [stdout] test import_export::atuin::tests::a_database_without_the_migration_table_is_rejected ... ok
[INFO] [stdout] test home::runner::tests::a_slow_report_is_stopped_reaped_and_offered_again ... ok
[INFO] [stdout] test home::ui::tests::difficult_text_never_breaks_a_border ... ok
[INFO] [stdout] test import_export::atuin::tests::a_database_that_is_not_atuin_is_rejected ... ok
[INFO] [stdout] test home::ui::tests::the_reference_scrolls_and_survives_a_resize ... ok
[INFO] [stdout] test import_export::atuin::tests::a_pre_18_database_is_rejected_because_deletions_are_indistinguishable ... ok
[INFO] [stdout] test home::ui::tests::pages_share_the_frame_and_the_reference_uses_the_whole_terminal ... ok
[INFO] [stdout] test import_export::atuin::tests::a_failed_migration_is_rejected ... ok
[INFO] [stdout] test import_export::atuin::tests::a_wal_mode_source_with_uncheckpointed_writes_is_read_consistently ... ok
[INFO] [stdout] test home::ui::tests::guides_offer_instructions_and_never_a_run_action ... ok
[INFO] [stdout] test home::ui::tests::no_size_panics_with_any_view_open ... ok
[INFO] [stdout] test import_export::atuin::tests::a_dry_run_preview_never_carries_a_secret_out_of_metadata ... ok
[INFO] [stdout] test import_export::atuin::tests::an_atuin_18_0_database_imports_without_the_author_columns ... ok
[INFO] [stdout] test import_export::atuin::tests::executor_type_is_only_what_atuin_stated ... ok
[INFO] [stdout] test import_export::atuin::tests::hostname_is_split_into_host_and_user ... ok
[INFO] [stdout] test home::model::tests::browsing_any_feature_never_launches_or_copies ... ok
[INFO] [stdout] test import_export::atuin::tests::a_row_without_a_session_lands_in_one_named_unknown ... ok
[INFO] [stdout] test import_export::atuin::tests::a_destination_row_with_the_same_text_and_time_is_not_a_duplicate ... ok
[INFO] [stdout] test import_export::atuin::tests::an_unrecognised_migration_is_rejected_with_a_next_step ... ok
[INFO] [stdout] test import_export::atuin::tests::a_second_identical_import_adds_nothing ... ok
[INFO] [stdout] test import_export::atuin::tests::a_dry_run_of_colliding_rows_reaches_the_same_verdict_as_the_apply ... ok
[INFO] [stdout] test import_export::atuin::tests::a_source_directorys_project_overlay_governs_that_rows_policy ... ok
[INFO] [stdout] test import_export::atuin::tests::a_secret_that_lives_only_in_atuin_metadata_is_redacted_and_counted ... ok
[INFO] [stdout] test import_export::atuin::tests::dry_run_counts_everything_and_writes_nothing ... ok
[INFO] [stdout] test import_export::atuin::tests::dry_run_samples_are_redacted ... ok
[INFO] [stdout] test import_export::atuin::tests::dry_run_reports_rows_already_present ... ok
[INFO] [stdout] test import_export::atuin::tests::every_free_text_metadata_field_goes_through_redaction ... ok
[INFO] [stdout] test home::ui::tests::the_focused_button_is_always_on_screen_whole ... ok
[INFO] [stdout] test import_export::atuin::tests::import_leaves_existing_suvadu_entries_intact ... ok
[INFO] [stdout] test import_export::atuin::tests::import_converts_units_and_never_fabricates_unknown_metadata ... ok
[INFO] [stdout] test import_export::atuin::tests::executions_that_collide_after_truncation_all_keep_their_own_row ... ok
[INFO] [stdout] test import_export::tests::bash_comment_command_after_a_header_is_not_a_timestamp ... ok
[INFO] [stdout] test import_export::tests::bash_comment_commands_are_kept_as_commands ... ok
[INFO] [stdout] test import_export::atuin::tests::import_honours_exclusions_and_redaction_and_ignores_blank_commands ... ok
[INFO] [stdout] test import_export::atuin::tests::import_preserves_atuin_sessions ... ok
[INFO] [stdout] test import_export::tests::bash_dry_run_reports_duplicates_already_present ... ok
[INFO] [stdout] test import_export::tests::bash_header_without_command_is_malformed ... ok
[INFO] [stdout] test import_export::tests::bash_empty_file_yields_no_records ... ok
[INFO] [stdout] test import_export::atuin::tests::malformed_rows_are_counted_and_skipped ... ok
[INFO] [stdout] test import_export::atuin::tests::schema_of_an_atuin_18_0_database_is_supported_without_author_columns ... ok
[INFO] [stdout] test import_export::atuin::tests::import_never_guesses_the_executor_from_an_agent_sounding_author ... ok
[INFO] [stdout] test import_export::atuin::tests::import_preserves_unicode_and_multiline_commands_verbatim ... ok
[INFO] [stdout] test import_export::tests::bash_dry_run_samples_are_redacted ... ok
[INFO] [stdout] test import_export::atuin::tests::metadata_matching_an_exclusion_pattern_is_dropped_not_stored ... ok
[INFO] [stdout] test import_export::tests::bash_import_dry_run_writes_nothing_but_counts ... ok
[INFO] [stdout] test import_export::tests::bash_import_counts_malformed_records_without_aborting ... ok
[INFO] [stdout] test import_export::tests::bash_import_honours_configured_exclusions ... ok
[INFO] [stdout] test import_export::atuin::tests::provenance_can_be_counted_back_out_of_the_destination ... ok
[INFO] [stdout] test import_export::tests::bash_multiline_record_is_joined_between_epoch_headers ... ok
[INFO] [stdout] test import_export::tests::bash_import_ignores_blank_and_space_prefixed_commands ... ok
[INFO] [stdout] test import_export::tests::bash_non_utf8_bytes_are_replaced_and_counted ... ok
[INFO] [stdout] test import_export::tests::bash_out_of_range_epoch_header_is_malformed_not_a_timestamp ... ok
[INFO] [stdout] test import_export::tests::bash_plain_history_cannot_reconstruct_multiline_boundaries ... ok
[INFO] [stdout] test import_export::tests::bash_import_marks_missing_timestamps_as_synthetic ... ok
[INFO] [stdout] test import_export::tests::bash_plain_history_has_no_timestamps ... ok
[INFO] [stdout] test import_export::tests::bash_timestamped_history_keeps_epoch_headers ... ok
[INFO] [stdout] test import_export::tests::bash_trailing_header_at_eof_is_malformed ... ok
[INFO] [stdout] test import_export::tests::test_check_jsonl_shape_accepts_empty_file ... ok
[INFO] [stdout] test import_export::tests::test_check_jsonl_shape_accepts_jsonl_file ... ok
[INFO] [stdout] test import_export::tests::test_check_jsonl_shape_rejects_csv_file ... ok
[INFO] [stdout] test import_export::tests::test_check_jsonl_shape_skips_blank_leading_lines ... ok
[INFO] [stdout] test import_export::tests::test_csv_row_formatting ... ok
[INFO] [stdout] test import_export::tests::bash_import_of_empty_file_writes_nothing ... ok
[INFO] [stdout] test import_export::tests::test_csv_row_with_embedded_newline_is_rfc4180_compliant ... ok
[INFO] [stdout] test import_export::tests::test_csv_safe_escapes_double_quotes ... ok
[INFO] [stdout] test import_export::tests::test_csv_safe_formula_injection_prefixes ... ok
[INFO] [stdout] test import_export::tests::test_csv_safe_plain_string ... ok
[INFO] [stdout] test import_export::tests::test_csv_safe_formula_injection_with_quotes ... ok
[INFO] [stdout] test import_export::tests::test_csv_safe_strips_leading_cr_via_apostrophe ... ok
[INFO] [stdout] test import_export::tests::bash_import_preserves_repeated_commands_in_plain_files ... ok
[INFO] [stdout] test import_export::tests::bash_import_preserves_repeated_executions ... ok
[INFO] [stdout] test import_export::tests::bash_import_survives_non_utf8_bytes ... ok
[INFO] [stdout] test import_export::tests::bash_import_preserves_timestamps_and_marks_unknown_metadata ... ok
[INFO] [stdout] test import_export::atuin::tests::schema_of_a_modern_atuin_database_is_supported ... ok
[INFO] [stdout] test import_export::tests::bash_import_redacts_secrets_and_counts_them ... ok
[INFO] [stdout] test import_export::tests::test_import_entries_batch_inserts_entries ... ok
[INFO] [stdout] test import_export::tests::bash_second_identical_import_adds_nothing ... ok
[INFO] [stdout] test import_export::tests::bash_second_identical_plain_import_adds_nothing ... ok
[INFO] [stdout] test import_export::atuin::tests::rows_are_read_oldest_first_with_atuin_unknowns_resolved ... ok
[INFO] [stdout] test import_export::tests::test_import_entries_batch_deduplicates ... ok
[INFO] [stdout] test import_export::tests::test_import_entries_batch_skips_empty_and_space_prefixed ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_clears_tag_id_when_no_tag_name ... ok
[INFO] [stdout] test import_export::tests::test_json_export_emits_valid_array_when_empty ... ok
[INFO] [stdout] test import_export::tests::test_json_export_format_is_valid_json_for_entries ... ok
[INFO] [stdout] test import_export::tests::test_jsonl_roundtrip ... ok
[INFO] [stdout] test import_export::tests::test_parse_extended_history_empty_command ... ok
[INFO] [stdout] test import_export::tests::test_parse_extended_history_invalid ... ok
[INFO] [stdout] test import_export::tests::test_parse_extended_history_line ... ok
[INFO] [stdout] test import_export::tests::test_parse_extended_history_multiline_marker ... ok
[INFO] [stdout] test import_export::tests::test_parse_extended_history_with_duration ... ok
[INFO] [stdout] test import_export::tests::test_parse_extended_history_with_semicolons_in_command ... ok
[INFO] [stdout] test import_export::tests::test_parse_zsh_history_extended_format ... ok
[INFO] [stdout] test import_export::tests::test_parse_zsh_history_multiline_command ... ok
[INFO] [stdout] test import_export::tests::test_parse_zsh_history_multiline_plain_format ... ok
[INFO] [stdout] test import_export::tests::test_parse_zsh_history_plain_format ... ok
[INFO] [stdout] test import_export::tests::test_parse_zsh_history_skips_blank_lines ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_dedups_session_creation_across_entries ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_creates_placeholder_session_for_unknown_session_id ... ok
[INFO] [stdout] test integrations::codex::tests::configure_mcp_is_idempotent_and_preserves_comments ... ok
[INFO] [stdout] test integrations::codex::tests::init_message_groups_configuration_activation_and_next_steps ... ok
[INFO] [stdout] test integrations::codex::tests::init_message_omits_optional_configuration_lines_when_absent ... ok
[INFO] [stdout] test integrations::codex::tests::stop_imports_once_and_returns_empty_protocol_object_on_failure ... ok
[INFO] [stdout] test integrations::codex::tests::session_end_import_is_bounded_even_when_more_records_remain ... ok
[INFO] [stdout] test integrations::codex::tests::stop_without_transcript_or_with_invalid_identity_does_not_import ... ok
[INFO] [stdout] test import_export::atuin::tests::import_preserves_repeated_executions_including_within_one_millisecond ... ok
[INFO] [stdout] test integrations::registry::tests::every_registry_entry_declares_the_facts_diagnostics_need ... ok
[INFO] [stdout] test integrations::codex::tests::terminal_hooks_are_installed_idempotently_and_removed_without_other_handlers ... ok
[INFO] [stdout] test integrations::codex::tests::uninstall_preserves_other_hooks_and_backs_up_original ... ok
[INFO] [stdout] test integrations::registry::tests::find_by_hook_filename_matches_prefix ... ok
[INFO] [stdout] test integrations::registry::tests::find_by_hook_filename_no_match_returns_none ... ok
[INFO] [stdout] test integrations::registry::tests::find_by_hook_filename_picks_longest_unambiguous_prefix ... ok
[INFO] [stdout] test integrations::registry::tests::init_hint_formats_as_suv_init_command ... ok
[INFO] [stdout] test integrations::registry::tests::every_registry_entry_has_a_nonempty_id_and_display_name ... ok
[INFO] [stdout] test integrations::tests::opencode_plugin_caches_prompts_through_suv_instead_of_writing_the_file_itself ... ok
[INFO] [stdout] test integrations::tests::opencode_plugin_exports_the_bare_factory_shape_the_published_sdk_requires ... ok
[INFO] [stdout] test integrations::tests::opencode_plugin_keeps_bash_forwarding_and_adds_idle_triggered_import ... ok
[INFO] [stdout] test integrations::tests::opencode_plugin_passes_the_session_directory_to_the_prompt_cache ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_creates_missing_tag_during_import ... ok
[INFO] [stdout] test integrations::tests::test_dedup_preserves_non_suvadu_hooks ... ok
[INFO] [stdout] test integrations::tests::test_generate_claude_settings_snippet ... ok
[INFO] [stdout] test integrations::tests::test_claude_settings_snippet_structure ... ok
[INFO] [stdout] test integrations::tests::test_get_prompts_dir ... ok
[INFO] [stdout] test integrations::tests::test_hook_claude_code_handles_missing_exit_code ... ok
[INFO] [stdout] test integrations::tests::test_hook_claude_code_parses_bash_event ... ok
[INFO] [stdout] test integrations::tests::test_invalid_session_ids ... ok
[INFO] [stdout] test integrations::tests::test_hook_claude_code_skips_non_bash ... ok
[INFO] [stdout] test integrations::tests::test_parse_exit_code_from_error_no_match ... ok
[INFO] [stdout] test integrations::tests::test_merge_claude_settings_idempotent ... ok
[INFO] [stdout] test integrations::tests::test_post_tool_use_defaults_to_exit_0 ... ok
[INFO] [stdout] test integrations::tests::test_parse_exit_code_from_error_standard ... ok
[INFO] [stdout] test integrations::tests::test_valid_session_ids ... ok
[INFO] [stdout] test import_export::atuin::tests::soft_deleted_rows_are_counted_and_never_read ... ok
[INFO] [stdout] test integrations::tests::test_merge_deduplicates_existing_duplicates ... ok
[INFO] [stdout] test integrations::tests::test_merge_claude_settings_preserves_existing ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_is_idempotent_by_default ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_remaps_tag_id_via_existing_tag_by_name ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::pagination_rejects_invalid_arguments_instead_of_silently_skipping_records ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::resolver_declares_a_truncated_candidate_list ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_tag_remap_is_cached_across_entries ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::resolver_reports_no_match_rather_than_falling_back ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::resolver_refuses_to_pick_a_session_with_no_directory_to_match ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::resolver_takes_the_only_session_in_the_directory_but_says_why ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_reuses_existing_session_without_duplicate ... ok
[INFO] [stdout] test import_export::atuin::tests::re_importing_colliding_rows_adds_nothing ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::summary_validates_required_evidence_and_unicode_limits ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_handles_tag_cap_gracefully ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::summary_discovery_requires_opt_in_and_respects_disabled_list ... ok
[INFO] [stdout] test import_export::tests::zsh_imported_rows_carry_import_provenance ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_export_roundtrip_into_fresh_db ... ok
[INFO] [stdout] test import_export::tests::test_import_jsonl_full_roundtrip_preserves_tag_associations ... ok
[INFO] [stdout] test import_export::atuin::tests::the_source_database_is_byte_identical_after_an_import ... ok
[INFO] [stdout] test mcp::catalog::tests::a_mirrored_resource_follows_its_tool_and_can_be_reconciled ... ok
[INFO] [stdout] test mcp::catalog::tests::both_write_opt_ins_gate_a_tool ... ok
[INFO] [stdout] test mcp::catalog::tests::effective_state_distinguishes_opt_in_from_explicit_disable ... ok
[INFO] [stdout] test mcp::catalog::tests::every_entry_has_a_summary ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::current_session_resolver_filters_ambiguous_cwd_candidates_by_opencode_agent ... ok
[INFO] [stdout] test mcp::catalog::tests::resource_suffixes_are_unique ... ok
[INFO] [stdout] test mcp::catalog::tests::set_tool_available_reconciles_both_gates ... ok
[INFO] [stdout] test mcp::catalog::tests::tool_names_are_unique ... ok
[INFO] [stdout] test mcp::catalog::tests::unknown_tool_is_never_available ... ok
[INFO] [stdout] test mcp::catalog::tests::writes_are_off_by_default ... ok
[INFO] [stdout] test mcp::catalog::tests::resources_are_available_until_disabled ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::current_session_resolver_uses_an_explicit_native_id ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::current_session_resolver_uses_an_explicit_native_id_for_opencode ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::foreign_agent_can_save_summary_but_stale_revision_is_rejected ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::older_sessions_remain_reachable_through_list_pagination ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::summary_write_is_default_off_and_disabled_list_always_wins ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::session_reads_paginate_and_respect_excluded_directories ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::session_reads_resume_events_and_commands_independently ... ok
[INFO] [stdout] test mcp::contract::every_resource_that_mirrors_a_tool_names_a_real_tool ... ok
[INFO] [stdout] test mcp::ai_sessions::two_agent_handoff::incomplete_capture_is_visible_to_agent_b_even_when_every_command_passed ... ok
[INFO] [stdout] test mcp::ai_sessions::two_agent_handoff::two_sessions_in_one_directory_are_never_resolved_for_agent_b ... ok
[INFO] [stdout] test mcp::ai_sessions::two_agent_handoff::agent_b_retrieves_the_session_and_can_name_failure_verified_state_and_open_work ... ok
[INFO] [stdout] test mcp::ai_sessions::two_agent_handoff::without_the_write_opt_in_no_checkpoint_is_stored_and_the_refusal_is_actionable ... ok
[INFO] [stdout] test mcp::ai_sessions::two_agent_handoff::appended_evidence_extends_the_checkpoint_and_changed_evidence_invalidates_it ... ok
[INFO] [stdout] test mcp::contract::a_capture_gap_in_an_excluded_directory_is_reported_without_naming_it ... ok
[INFO] [stdout] test mcp::contract::an_unsupported_adapter_version_is_declared_on_the_session ... ok
[INFO] [stdout] test mcp::contract::session_discovery_and_history_search_point_at_each_other ... ok
[INFO] [stdout] test mcp::contract::a_malformed_stored_record_is_reported_not_silently_dropped ... ok
[INFO] [stdout] test mcp::contract::disabling_a_tool_also_disables_the_resource_that_mirrors_it ... ok
[INFO] [stdout] test mcp::contract::command_rows_carry_stable_ids_and_detail_is_opt_in ... ok
[INFO] [stdout] test mcp::conventions::tests::anything_inferred_admits_that_output_was_never_captured ... ok
[INFO] [stdout] test mcp::conventions::tests::clipping_marks_what_it_removed ... ok
[INFO] [stdout] test mcp::conventions::tests::clipping_neutralises_control_characters_and_line_breaks ... ok
[INFO] [stdout] test mcp::conventions::tests::the_trailer_is_always_present_and_parseable ... ok
[INFO] [stdout] test mcp::conventions::tests::timestamps_carry_an_offset_and_relative_hints_never_stand_alone ... ok
[INFO] [stdout] test mcp::conventions::tests::unknowns_never_render_as_zero_or_a_question_mark ... ok
[INFO] [stdout] test mcp::prompts::tests::current_summary_prompt_resolves_and_resumes_a_checkpoint ... ok
[INFO] [stdout] test mcp::prompts::tests::get_assess_command_risk_interpolates_command ... ok
[INFO] [stdout] test mcp::prompts::tests::get_check_recent_failures_defaults_days_to_seven ... ok
[INFO] [stdout] test mcp::prompts::tests::get_check_recent_failures_interpolates_days ... ok
[INFO] [stdout] test mcp::prompts::tests::get_project_briefing_mentions_both_underlying_tools ... ok
[INFO] [stdout] test mcp::contract::project_context_is_concise_by_default_and_names_how_to_go_deeper ... ok
[INFO] [stdout] test mcp::prompts::tests::get_unknown_prompt_returns_error_not_panic ... ok
[INFO] [stdout] test mcp::prompts::tests::list_prompts_marks_command_as_required_for_assess_command_risk ... ok
[INFO] [stdout] test mcp::prompts::tests::prepare_handoff_prompt_carries_the_shared_template_and_the_write_policy ... ok
[INFO] [stdout] test mcp::prompts::tests::list_prompts_returns_exactly_the_expected_names ... ok
[INFO] [stdout] test mcp::prompts::tests::summary_prompt_guides_grounded_cross_agent_summarization ... ok
[INFO] [stdout] test mcp::prompts::tests::prepare_handoff_prompt_rejects_an_unsafe_session_id ... ok
[INFO] [stdout] test mcp::prompts::tests::summary_prompt_processes_large_sessions_incrementally ... ok
[INFO] [stdout] test mcp::prompts::tests::summary_prompt_requires_safe_session_id ... ok
[INFO] [stdout] test mcp::protocol::tests::test_initialize_instructions_are_directive_not_just_descriptive ... ok
[INFO] [stdout] test mcp::protocol::tests::test_error_response ... ok
[INFO] [stdout] test mcp::protocol::tests::test_ping_response ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_error ... ok
[INFO] [stdout] test mcp::protocol::tests::test_initialize_response ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_result ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_result_no_truncation_under_limit ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_result_truncates_multibyte_without_panic ... ok
[INFO] [stdout] test mcp::contract::json_session_responses_declare_their_units_and_provenance ... ok
[INFO] [stdout] test mcp::contract::learn_from_failures_reports_observations_not_root_causes ... ok
[INFO] [stdout] test mcp::resources::tests::test_list_resources_advertises_the_whole_catalog ... ok
[INFO] [stdout] test mcp::contract::malformed_shell_records_render_safely ... ok
[INFO] [stdout] test mcp::contract::every_resource_answers_in_the_same_shape_as_the_tools ... ok
[INFO] [stdout] test mcp::resources::tests::test_list_templates_has_session ... ok
[INFO] [stdout] test mcp::contract::every_list_tool_paginates_with_offset_and_terminates ... ok
[INFO] [stdout] test mcp::resources::tests::test_list_resources_with_disabled ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_result_truncates_long_output ... ok
[INFO] [stdout] test mcp::contract::every_text_tool_response_carries_the_standard_trailer ... ok
[INFO] [stdout] test mcp::contract::what_changed_separates_observed_commands_from_inferred_effects ... ok
[INFO] [stdout] test mcp::contract::excluded_directories_are_invisible_to_every_tool_and_resource ... ok
[INFO] [stdout] test mcp::resources::tests::every_catalog_resource_can_be_disabled ... ok
[INFO] [stdout] test mcp::contract::long_rows_are_truncated_visibly_and_counted ... ok
[INFO] [stdout] test mcp::contract::timestamps_are_rfc3339_with_an_explicit_offset ... ok
[INFO] [stdout] test mcp::resources::tests::every_catalog_resource_has_a_reader ... ok
[INFO] [stdout] test mcp::contract::unknown_values_are_always_the_word_unknown ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_agent_sessions_empty ... ok
[INFO] [stdout] test mcp::ai_sessions::tests::long_sessions_stay_reachable_page_by_page_and_windows_admit_they_are_partial ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_agent_sessions_with_data ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_agents_empty ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_disabled_resource_returns_error ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_project_context_empty ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_failures_empty ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_recent_history_empty ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_project_context_with_data ... ok
[INFO] [stdout] test mcp::server::tests::session_json_keeps_pagination_after_large_payload ... ok
[INFO] [stdout] test mcp::server::tests::test_malformed_json_returns_parse_error ... ok
[INFO] [stdout] test mcp::tools::tests::advertised_tools_match_catalog_default_availability ... ok
[INFO] [stdout] test mcp::tools::tests::advertised_tools_match_the_whole_catalog_with_opt_ins_on ... ok
[INFO] [stdout] test mcp::tools::tests::catalog_tools_all_have_definitions ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_resource_respects_exclude_dirs ... ok
[INFO] [stdout] test mcp::tools::tests::test_assess_risk_batch ... ok
[INFO] [stdout] test mcp::tools::tests::test_assess_risk_critical_command ... ok
[INFO] [stdout] test mcp::tools::tests::test_assess_risk_force_push ... ok
[INFO] [stdout] test mcp::tools::tests::test_assess_risk_high_command ... ok
[INFO] [stdout] test mcp::tools::tests::test_assess_risk_no_input ... ok
[INFO] [stdout] test mcp::tools::tests::test_assess_risk_safe_command ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_skills_index_empty ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_risk_empty ... ok
[INFO] [stdout] test mcp::tools::tests::test_classify_command ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_recent_with_data ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_session_empty_id ... ok
[INFO] [stdout] test mcp::server::tests::test_handle_tool_call_unknown ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_skills_index_with_data ... ok
[INFO] [stdout] test mcp::server::tests::init_repo_succeeds_on_a_current_schema_db ... ok
[INFO] [stdout] test mcp::server::tests::test_handle_tool_call_search ... ok
[INFO] [stdout] test mcp::server::tests::summary_server_rejects_disabled_write_before_opening_database ... ok
[INFO] [stdout] test mcp::server::tests::init_repo_reports_reason_instead_of_erroring_on_newer_schema ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_stats_empty ... ok
[INFO] [stdout] test mcp::resources::tests::test_read_unknown_resource ... ok
[INFO] [stdout] test mcp::tools::tests::test_call_disabled_tool_returns_error ... ok
[INFO] [stdout] test mcp::tools::tests::test_call_unknown_tool ... ok
[INFO] [stdout] test mcp::tools::tests::test_command_status_respects_exclude_dirs ... ok
[INFO] [stdout] test mcp::tools::tests::every_catalog_tool_can_be_disabled_and_then_cannot_be_invoked ... ok
[INFO] [stdout] test mcp::tools::tests::test_command_status_requires_command ... ok
[INFO] [stdout] test mcp::tools::tests::test_command_status_with_seeded_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_find_agent_session_filter_by_prompt ... ok
[INFO] [stdout] test mcp::tools::tests::test_get_prompts_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_find_agent_session_filter_by_directory ... ok
[INFO] [stdout] test mcp::tools::tests::test_exclude_dirs_matches_subtree_and_expands_tilde ... ok
[INFO] [stdout] test mcp::tools::tests::test_find_agent_session_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_get_skill_missing_name_errors ... ok
[INFO] [stdout] test mcp::tools::tests::test_find_agent_session_with_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_tools_hides_propose_skill_by_default ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_tools_shows_propose_skill_when_enabled ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_tools_with_disabled ... ok
[INFO] [stdout] test mcp::tools::tests::test_get_prompts_with_seeded_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_get_stats_excludes_dirs_from_aggregate_counts ... ok
[INFO] [stdout] test mcp::tools::tests::test_find_agent_session_filter_by_executor ... ok
[INFO] [stdout] test mcp::tools::tests::test_find_agent_session_shows_resume ... ok
[INFO] [stdout] test mcp::tools::tests::test_get_skill_not_found ... ok
[INFO] [stdout] test mcp::tools::tests::test_get_skill_returns_body ... ok
[INFO] [stdout] test mcp::tools::tests::test_learn_from_failures_detects_recurring ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_sessions_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_project_context_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_learn_from_failures_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_skills_only_shows_active ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_skills_filters_by_scope ... ok
[INFO] [stdout] test mcp::tools::tests::test_list_skills_empty ... ok
[INFO] [stdout] test mcp::tools::tests::test_learn_from_failures_no_problems ... ok
[INFO] [stdout] test mcp::tools::tests::test_propose_skill_saves_as_pending_review ... ok
[INFO] [stdout] test mcp::tools::tests::test_propose_skill_disabled_by_default_never_touches_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_recent_commands_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_project_context_filter_by_directory ... ok
[INFO] [stdout] test mcp::tools::tests::test_recent_commands_respects_exclude_dirs ... ok
[INFO] [stdout] test mcp::tools::tests::test_project_context_with_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_tool_definitions_have_required_fields ... ok
[INFO] [stdout] test mcp::tools::tests::test_replay_agent_session_not_found ... ok
[INFO] [stdout] test mcp::tools::tests::test_replay_agent_session_requires_session_id ... ok
[INFO] [stdout] test mcp::tools::tests::test_replay_agent_session_prefix_normalization ... ok
[INFO] [stdout] test mcp::tools::tests::test_search_commands_with_exit_code_filter ... ok
[INFO] [stdout] test mcp::tools::tests::test_replay_agent_session_shows_resume ... ok
[INFO] [stdout] test mcp::tools::tests::test_search_commands_empty_db ... ok
[INFO] [stdout] test models::tests::normalize_scope_path_leaves_bare_root_alone ... ok
[INFO] [stdout] test models::tests::normalize_scope_path_strips_trailing_slash ... ok
[INFO] [stdout] test models::tests::test_alias_suggestion_creation ... ok
[INFO] [stdout] test models::tests::test_entry_creation ... ok
[INFO] [stdout] test models::tests::test_entry_executor_kind ... ok
[INFO] [stdout] test models::tests::test_entry_is_agent ... ok
[INFO] [stdout] test models::tests::test_entry_with_context ... ok
[INFO] [stdout] test models::tests::test_executor_kind_from_str_opt ... ok
[INFO] [stdout] test models::tests::test_executor_kind_is_human ... ok
[INFO] [stdout] test models::tests::test_session_creation ... ok
[INFO] [stdout] test redact::tests::test_all_patterns_compile ... ok
[INFO] [stdout] test mcp::tools::tests::test_search_skills_matches_trigger ... ok
[INFO] [stdout] test redact::tests::test_anthropic_api_key ... ok
[INFO] [stdout] test redact::tests::test_aws_access_key ... ok
[INFO] [stdout] test mcp::contract::following_event_cursors_returns_every_readable_record_exactly_once ... ok
[INFO] [stdout] test mcp::tools::tests::test_suggest_next_empty_db ... ok
[INFO] [stdout] test mcp::tools::tests::test_suggest_next_with_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_replay_agent_session_with_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_search_commands_respects_exclude_dirs ... ok
[INFO] [stdout] test mcp::tools::tests::test_search_with_seeded_data ... ok
[INFO] [stdout] test mcp::tools::tests::test_session_history_respects_exclude_dirs ... ok
[INFO] [stdout] test redact::tests::test_bearer_token ... ok
[INFO] [stdout] test redact::tests::test_base64_token_in_json_redacted ... ok
[INFO] [stdout] test redact::tests::test_bare_openai_key_redacted ... ok
[INFO] [stdout] test redact::tests::test_connection_string_at_sign_in_password_no_leak ... ok
[INFO] [stdout] test redact::tests::test_connection_string ... ok
[INFO] [stdout] test redact::tests::test_azure_client_secret ... ok
[INFO] [stdout] test redact::tests::test_connection_string_password_only_uri ... ok
[INFO] [stdout] test redact::tests::test_contains_secrets ... ok
[INFO] [stdout] test redact::tests::test_connection_string_mongodb ... ok
[INFO] [stdout] test redact::tests::test_env_var_bare_secret ... ok
[INFO] [stdout] test redact::tests::test_env_var_bare_token ... ok
[INFO] [stdout] test redact::tests::test_basic_auth_curl ... ok
[INFO] [stdout] test redact::tests::test_env_var_api_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_basic_auth ... ok
[INFO] [stdout] test redact::tests::test_env_var_anthropic_api_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_aws_secret_access_key ... ok
[INFO] [stdout] test mcp::tools::tests::test_what_changed_classifies_commands ... ok
[INFO] [stdout] test redact::tests::test_env_var_github_token ... ok
[INFO] [stdout] test redact::tests::test_env_var_export_credential ... ok
[INFO] [stdout] test redact::tests::test_env_var_db_password ... ok
[INFO] [stdout] test redact::tests::test_env_var_export ... ok
[INFO] [stdout] test redact::tests::test_env_var_auth_token ... ok
[INFO] [stdout] test mcp::tools::tests::test_what_changed_empty_db ... ok
[INFO] [stdout] test redact::tests::test_env_var_private_key ... ok
[INFO] [stdout] test mcp::tools::tests::test_what_failed_with_failures ... ok
[INFO] [stdout] test redact::tests::test_env_var_secret_key ... ok
[INFO] [stdout] test redact::tests::test_env_var_inline ... ok
[INFO] [stdout] test redact::tests::test_extra_patterns_empty_is_noop ... ok
[INFO] [stdout] test redact::tests::test_extra_patterns_redact ... ok
[INFO] [stdout] test redact::tests::test_github_token ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_docker_port ... ok
[INFO] [stdout] test redact::tests::test_mysql_password ... ok
[INFO] [stdout] test redact::tests::test_mysql_password_still_redacted ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_docker_user_uid_gid ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_git_author_email ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_authentication_mode ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_author_name ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_credential_helper ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_cd ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_claude_code_no_flicker ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_node_env ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_key_path ... ok
[INFO] [stdout] test mcp::tools::tests::test_what_failed_empty_db ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_redis_uri_without_auth ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_safe_command ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_password_file ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_token_bucket_size ... ok
[INFO] [stdout] test redact::tests::test_npm_token ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_ssh_port ... ok
[INFO] [stdout] test mcp::tools::tests::write_tools_cannot_be_invoked_until_their_opt_in_is_on ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_private_key_path ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_react_app_auth_domain ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_redis_cli_port ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_secret_scanning ... ok
[INFO] [stdout] test redact::tests::test_openai_key_not_match_anthropic ... ok
[INFO] [stdout] test mcp::tools::tests::unknown_tool_is_still_an_unknown_tool_error ... ok
[INFO] [stdout] test redact::tests::test_openai_key ... ok
[INFO] [stdout] test redact::tests::test_pem_private_key ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_tokenizers_parallelism ... ok
[INFO] [stdout] test redact::tests::test_password_flag ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_grep ... ok
[INFO] [stdout] test redact::tests::test_no_false_positive_ls ... ok
[INFO] [stdout] test redact::tests::test_slack_token ... ok
[INFO] [stdout] test redact::tests::test_stripe_key ... ok
[INFO] [stdout] test redact::tests::test_wrap_command_no_panic ... ok
[INFO] [stdout] test redact::tests::test_pypi_token ... ok
[INFO] [stdout] test redact::tests::test_redaction_corpus ... ok
[INFO] [stdout] test redact::tests::test_multiple_secrets_in_one_command ... ok
[INFO] [stdout] test repository::ai_sessions::tests::fully_captured_session_reports_no_known_gaps_but_still_admits_unverifiable_scope ... ok
[INFO] [stdout] test repository::ai_sessions::tests::import_opencode_session_stores_events_and_dedupes_on_reimport ... ok
[INFO] [stdout] test repository::ai_sessions::tests::import_opencode_session_only_imports_new_messages_on_incremental_growth ... ok
[INFO] [stdout] test repository::ai_sessions::tests::count_ai_sessions_by_agent_counts_only_that_agents_sessions ... ok
[INFO] [stdout] test repository::ai_sessions::tests::excluded_project_directory_is_named_as_a_known_capture_gap ... ok
[INFO] [stdout] test repository::ai_sessions::tests::command_edits_invalidate_revision_and_excluded_commands_hide_the_session ... ok
[INFO] [stdout] test repository::ai_sessions::tests::import_opencode_session_rejects_adapter_version_mismatch ... ok
[INFO] [stdout] test repository::ai_sessions::tests::literal_exclusions_match_existing_shell_history_semantics ... ok
[INFO] [stdout] test repository::ai_sessions::tests::a_summary_saved_over_a_session_holding_malformed_rows_still_validates ... ok
[INFO] [stdout] test repository::ai_sessions::tests::ai_schema_migrates_and_empty_sessions_are_queryable ... ok
[INFO] [stdout] test repository::ai_sessions::tests::imports_are_idempotent_and_cumulative_usage_is_not_summed ... ok
[INFO] [stdout] test repository::ai_sessions::tests::ai_summaries_for_session_orders_newest_first_and_flags_only_current_as_current ... ok
[INFO] [stdout] test repository::ai_sessions::tests::a_summary_saved_under_a_policy_is_redacted_and_can_be_excluded ... ok
[INFO] [stdout] test repository::ai_sessions::tests::agent_session_deletion_is_previewable_before_anything_is_removed ... ok
[INFO] [stdout] test repository::ai_sessions::tests::disabled_project_does_not_suppress_other_projects_in_same_chunk ... ok
[INFO] [stdout] test repository::ai_sessions::tests::malformed_transcript_and_wrong_identity_leave_no_partial_import ... ok
[INFO] [stdout] test repository::ai_sessions::tests::paused_capture_advances_without_revealing_content_or_later_totals ... ok
[INFO] [stdout] test repository::ai_sessions::tests::session_row_capture_status_survives_a_clean_command_run ... ok
[INFO] [stdout] test repository::ai_sessions::tests::saved_summaries_distinguish_new_activity_from_changed_evidence ... ok
[INFO] [stdout] test repository::filter_builder_tests::all_none_filters_produce_no_clauses ... ok
[INFO] [stdout] test repository::filter_builder_tests::chained_filters ... ok
[INFO] [stdout] test repository::ai_sessions::tests::session_row_preview_is_single_lined_and_bounded ... ok
[INFO] [stdout] test repository::filter_builder_tests::chained_session_filters ... ok
[INFO] [stdout] test repository::filter_builder_tests::empty_builder_produces_where_1_eq_1 ... ok
[INFO] [stdout] test repository::filter_builder_tests::push_param_adds_to_list ... ok
[INFO] [stdout] test repository::filter_builder_tests::expand_tilde_prefixes_with_home ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_cwd ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_cwd_subtree_matches_dir_and_children ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_date_range_after_only ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_date_range_before_only ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_cwd_mode_exact_vs_prefix ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_excluded_dirs_empty_list_is_a_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_excluded_dirs_negates_subtree_match_per_dir ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_excluded_dirs_skips_blank_entries ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_executor ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_exit_code ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_failed_only ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_failed_only_false_is_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_contains_mode ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_field_cwd ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_field_executor ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_field_session ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_query_prefix_mode ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_created_after ... ok
[INFO] [stdout] test repository::ai_sessions::tests::session_header_separates_known_capture_gaps_from_command_outcomes ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_date_range_both ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_created_after_none_is_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_tag_adds_two_params ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_tag ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_session_tag_none_is_noop ... ok
[INFO] [stdout] test repository::filter_builder_tests::with_tag_none_is_noop ... ok
[INFO] [stdout] test repository::ai_sessions::tests::text_is_redacted_truncated_and_project_exclusions_are_honored ... ok
[INFO] [stdout] test repository::ai_sessions::tests::summary_fingerprints_cover_readable_events_not_raw_rows ... ok
[INFO] [stdout] test repository::ai_sessions::tests::unified_session_rows_carry_project_prompt_preview_and_capture_status ... ok
[INFO] [stdout] test repository::api::tests::repo_implements_trait ... ok
[INFO] [stdout] test repository::skills::tests::is_valid_skill_name_accepts_typical_slugs ... ok
[INFO] [stdout] test repository::skills::tests::is_valid_skill_name_rejects_empty_and_path_like_names ... ok
[INFO] [stdout] test repository::ai_sessions::tests::unified_sessions_merge_native_ai_and_classify_legacy_agents ... ok
[INFO] [stdout] test repository::ai_sessions::tests::summary_checkpoints_resume_after_append_and_invalidate_on_prefix_change ... ok
[INFO] [stdout] test repository::api::tests::trait_crud_roundtrip ... ok
[INFO] [stdout] test repository::capture::tests::agent_rows_are_not_shell_capture_evidence ... ok
[INFO] [stdout] test repository::capture::tests::a_hook_written_row_is_live_and_attributed_to_its_session ... ok
[INFO] [stdout] test repository::skills::tests::create_duplicate_name_scope_fails ... ok
[INFO] [stdout] test repository::skills::tests::create_and_get_skill_roundtrip ... ok
[INFO] [stdout] test repository::skills::tests::delete_skill_removes_row ... ok
[INFO] [stdout] test repository::skills::tests::create_skill_rejects_path_like_name ... ok
[INFO] [stdout] test repository::skills::tests::find_skill_prefers_scope_hint_then_global_then_any ... ok
[INFO] [stdout] test repository::skills::tests::find_skill_ignores_non_active ... ok
[INFO] [stdout] test repository::skills::tests::search_skills_excludes_pending ... ok
[INFO] [stdout] test repository::skills::tests::list_skills_filters_by_scope_and_status ... ok
[INFO] [stdout] test repository::skills::tests::same_name_different_scope_is_allowed ... ok
[INFO] [stdout] test repository::skills::tests::set_skill_status_transitions ... ok
[INFO] [stdout] test repository::skills::tests::search_skills_matches_name_description_and_triggers ... ok
[INFO] [stdout] test repository::skills::tests::update_skill_bumps_version_and_preserves_unset_fields ... ok
[INFO] [stdout] test repository::skills::tests::upsert_skill_creates_when_absent ... ok
[INFO] [stdout] test repository::skills::tests::update_nonexistent_skill_returns_none ... ok
[INFO] [stdout] test repository::skills::tests::upsert_skill_is_a_noop_when_content_is_identical ... ok
[INFO] [stdout] test repository::skills::tests::upsert_skill_updates_when_content_differs ... ok
[INFO] [stdout] test repository::tests::count_entries_by_executor_matches_the_exact_executor_name ... ok
[INFO] [stdout] test repository::tests::preview_entries_by_pattern_returns_the_matching_commands ... ok
[INFO] [stdout] test repository::tests::deleting_entries_removes_their_notes_and_leaves_the_session_row_behind ... ok
[INFO] [stdout] test repository::tests::a_session_scope_of_none_behaves_exactly_like_the_bare_filter ... ok
[INFO] [stdout] test repository::tests::a_groups_position_is_where_grouped_paging_really_finds_it ... ok
[INFO] [stdout] test repository::tests::session_scope_also_narrows_unique_results ... ok
[INFO] [stdout] test repository::tests::session_scope_composes_with_the_query_and_the_other_filters ... ok
[INFO] [stdout] test repository::tests::a_commands_position_is_where_paging_really_finds_it ... ok
[INFO] [stdout] test repository::tests::test_begin_and_commit_transaction ... ok
[INFO] [stdout] test repository::tests::test_count_entries ... ok
[INFO] [stdout] test repository::tests::test_bookmark_crud ... ok
[INFO] [stdout] test repository::tests::test_bookmark_duplicate_upsert ... ok
[INFO] [stdout] test repository::tests::test_count_entries_by_pattern ... ok
[INFO] [stdout] test repository::tests::test_cwd_filter_with_other_filters ... ok
[INFO] [stdout] test home::runner::tests::a_timed_out_report_leaves_no_process_behind ... FAILED
[INFO] [stdout] test repository::tests::test_backup_to_creates_consistent_copy ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_with_before_timestamp ... ok
[INFO] [stdout] test repository::capture::tests::every_import_shape_is_recognised_as_stored_history ... ok
[INFO] [stdout] test repository::tests::session_scope_returns_only_that_sessions_entries ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_by_pattern ... ok
[INFO] [stdout] test repository::tests::test_daily_activity_empty_database ... ok
[INFO] [stdout] test repository::tests::test_cwd_prefix_matches_subtree ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_regex_with_before ... ok
[INFO] [stdout] test repository::tests::test_delete_entry_by_id ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_by_regex ... ok
[INFO] [stdout] test repository::tests::test_delete_entries_no_match ... ok
[INFO] [stdout] test repository::tests::test_entry_with_context ... ok
[INFO] [stdout] test repository::ai_sessions::tests::oversized_record_fails_instead_of_returning_a_non_advancing_page ... ok
[INFO] [stdout] test repository::tests::test_entry_exists ... ok
[INFO] [stdout] test repository::tests::test_entries_filtering_by_bookmarked_only ... ok
[INFO] [stdout] test repository::tests::test_entries_filtering_by_tag ... ok
[INFO] [stdout] test repository::tests::test_executor_null_values ... ok
[INFO] [stdout] test repository::tests::test_executor_filter_in_count ... ok
[INFO] [stdout] test repository::tests::test_executor_tracking ... ok
[INFO] [stdout] test repository::storage::tests::the_report_names_every_category_and_states_what_a_backup_keeps ... ok
[INFO] [stdout] test repository::tests::test_executor_types ... ok
[INFO] [stdout] test repository::tests::test_export_entries_all ... ok
[INFO] [stdout] test repository::tests::test_filter_by_cwd ... ok
[INFO] [stdout] test repository::tests::test_export_entries_with_date_filter ... ok
[INFO] [stdout] test repository::tests::test_get_bookmarked_commands ... ok
[INFO] [stdout] test repository::tests::test_gc_orphaned_notes ... ok
[INFO] [stdout] test repository::storage::tests::deleting_history_frees_pages_inside_the_file_without_shrinking_it ... ok
[INFO] [stdout] test repository::tests::test_gc_orphaned_sessions ... ok
[INFO] [stdout] test repository::storage::tests::backup_files_are_counted_from_the_backup_directory ... ok
[INFO] [stdout] test repository::tests::test_get_daily_activity ... ok
[INFO] [stdout] test repository::storage::tests::usage_is_reported_per_category_with_rows_and_bytes ... ok
[INFO] [stdout] test repository::tests::test_get_daily_activity_with_tag ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands ... ok
[INFO] [stdout] test repository::tests::test_get_entries_by_session ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_human_only ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_with_day_filter ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_dir_diversity_ranking ... ok
[INFO] [stdout] test repository::tests::test_get_noted_entry_ids ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_basic ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_cwd_filter ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_by_session ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_date_filter ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_exit_code_filter ... ok
[INFO] [stdout] test repository::tests::test_get_stats_empty_db ... ok
[INFO] [stdout] test repository::tests::test_get_stats_all_time ... ok
[INFO] [stdout] test repository::tests::test_get_replay_entries_with_executor_filter ... ok
[INFO] [stdout] test repository::tests::test_get_frequent_commands_with_days ... ok
[INFO] [stdout] test repository::tests::test_get_tag_by_nonexistent_session ... ok
[INFO] [stdout] test repository::tests::test_get_stats_with_tag_filter ... ok
[INFO] [stdout] test repository::tests::test_get_stats_executor_breakdown ... ok
[INFO] [stdout] test repository::tests::test_get_stats_with_day_filter ... ok
[INFO] [stdout] test repository::tests::test_get_tag_by_session ... ok
[INFO] [stdout] test repository::tests::test_note_upsert_overwrites ... ok
[INFO] [stdout] test repository::tests::test_hourly_heatmap_empty_database ... ok
[INFO] [stdout] test repository::tests::test_insert_and_get_entry ... ok
[INFO] [stdout] test repository::tests::test_note_crud ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_prefix_match ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_cwd_boost_breaks_ties ... ok
[INFO] [stdout] test repository::tests::test_insert_and_get_session ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_recency_beats_cwd_boost ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_shows_failed_commands ... ok
[INFO] [stdout] test repository::tests::test_stats_empty_db ... ok
[INFO] [stdout] test repository::tests::test_stats_single_entry ... ok
[INFO] [stdout] test repository::tests::test_stats_with_days_filter ... ok
[INFO] [stdout] test repository::tests::test_recent_entries_hides_agent_commands_by_default ... ok
[INFO] [stdout] test risk::tests::an_assessment_carries_the_text_that_matched_the_rule ... ok
[INFO] [stdout] test risk::tests::benign_lookalikes_are_not_flagged ... ok
[INFO] [stdout] test risk::tests::evidence_is_bounded_so_a_huge_command_cannot_flood_the_report ... ok
[INFO] [stdout] test risk::tests::evidence_never_echoes_a_secret_back_to_the_user ... ok
[INFO] [stdout] test risk::tests::indirection_is_reported_as_unresolved_rather_than_as_a_known_action ... ok
[INFO] [stdout] test risk::tests::known_limits_of_text_matching_are_pinned ... ok
[INFO] [stdout] test repository::tests::test_stats_empty_database ... ok
[INFO] [stdout] test risk::tests::quoted_text_is_still_flagged_when_the_shell_will_execute_it ... ok
[INFO] [stdout] test risk::tests::test_alias_definition_is_safe ... ok
[INFO] [stdout] test risk::tests::test_all_patterns_compile ... ok
[INFO] [stdout] test risk::tests::test_chaining_command_substitution ... ok
[INFO] [stdout] test risk::tests::test_chaining_double_quote_inside_single_quotes ... ok
[INFO] [stdout] test risk::tests::test_chaining_double_quoted_and_ignored ... ok
[INFO] [stdout] test risk::tests::test_chaining_double_quoted_pipe_ignored ... ok
[INFO] [stdout] test risk::tests::test_chaining_double_quoted_semicolon_ignored ... ok
[INFO] [stdout] test risk::tests::test_chaining_echo_with_quoted_operators_is_safe ... ok
[INFO] [stdout] test risk::tests::test_chaining_echo_with_real_chain_still_detected ... ok
[INFO] [stdout] test risk::tests::test_chaining_escaped_quote_inside_double_quotes ... ok
[INFO] [stdout] test risk::tests::test_chaining_mixed_quoted_and_unquoted ... ok
[INFO] [stdout] test risk::tests::test_chaining_none ... ok
[INFO] [stdout] test risk::tests::stated_coverage_still_holds_after_lookalike_suppression ... ok
[INFO] [stdout] test risk::tests::test_chaining_single_quote_inside_double_quotes ... ok
[INFO] [stdout] test risk::tests::test_chaining_single_quoted_and_ignored ... ok
[INFO] [stdout] test risk::tests::test_chaining_single_quoted_pipe_ignored ... ok
[INFO] [stdout] test repository::tests::test_stats_with_entries ... ok
[INFO] [stdout] test risk::tests::test_chaining_unquoted_or ... ok
[INFO] [stdout] test risk::tests::test_chaining_single_quoted_semicolon_ignored ... ok
[INFO] [stdout] test risk::tests::test_chaining_unquoted_and ... ok
[INFO] [stdout] test risk::tests::test_chaining_unquoted_semicolon ... ok
[INFO] [stdout] test repository::tests::test_stats_with_period_filter ... ok
[INFO] [stdout] test risk::tests::test_chaining_unquoted_pipe ... ok
[INFO] [stdout] test risk::tests::test_comment_is_safe ... ok
[INFO] [stdout] test risk::tests::test_echo_rm_is_safe ... ok
[INFO] [stdout] test risk::tests::test_echo_with_chaining_is_risky ... ok
[INFO] [stdout] test repository::tests::test_tag_lifecycle ... ok
[INFO] [stdout] test risk::tests::test_critical_patterns ... ok
[INFO] [stdout] test risk::tests::test_extra_patterns_can_flag_and_can_be_outranked ... ok
[INFO] [stdout] test risk::tests::test_force_with_lease_is_not_critical ... ok
[INFO] [stdout] test risk::tests::test_highest_risk_wins ... ok
[INFO] [stdout] test repository::tests::test_top_sessions_empty_database ... ok
[INFO] [stdout] test repository::tests::test_transaction_guard_rollback_on_drop ... ok
[INFO] [stdout] test risk::tests::test_ignore_patterns_suppress_match ... ok
[INFO] [stdout] test risk::tests::test_high_irreversible_patterns ... ok
[INFO] [stdout] test risk::tests::test_high_patterns ... ok
[INFO] [stdout] test risk::tests::test_package_extraction_npm ... ok
[INFO] [stdout] test risk::tests::test_is_non_executing ... ok
[INFO] [stdout] test risk::tests::test_package_extraction_cargo ... ok
[INFO] [stdout] test risk::tests::test_package_extraction_pip ... ok
[INFO] [stdout] test risk::tests::test_package_extraction_none ... ok
[INFO] [stdout] test risk::tests::test_package_extraction_npm_with_flags ... ok
[INFO] [stdout] test risk::tests::test_low_patterns ... ok
[INFO] [stdout] test risk::tests::test_medium_patterns ... ok
[INFO] [stdout] test search::format::prod03_layout_tests::detail_placement_follows_terminal_size ... ok
[INFO] [stdout] test risk::tests::test_safe_patterns ... ok
[INFO] [stdout] test risk::tests::test_session_risk_aggregate ... ok
[INFO] [stdout] test risk::tests::test_set_ignore_patterns_skips_invalid_regex ... ok
[INFO] [stdout] test search::format::prod03_layout_tests::display_width_measures_cells ... ok
[INFO] [stdout] test search::format::prod03_layout_tests::hint_width_counts_badge_padding ... ok
[INFO] [stdout] test search::format::prod03_layout_tests::fit_hints_drops_whole_hints_never_clips ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::an_empty_query_says_the_scope_is_empty_not_that_a_search_failed ... ok
[INFO] [stdout] test search::format::prod03_layout_tests::fit_prefix_stops_at_the_first_item_that_does_not_fit ... ok
[INFO] [stdout] test search::format::prod03_layout_tests::status_segment_width_counts_label_and_value_padding ... ok
[INFO] [stdout] test repository::tests::test_transaction_guard_recommit ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::every_mode_describes_itself_in_the_empty_state ... ok
[INFO] [stdout] test risk::tests::test_obfuscation_patterns ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::including_agents_is_offered_as_a_key_never_done_for_you ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::it_lists_every_active_filter_so_nothing_narrows_invisibly ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::it_names_the_query_the_mode_and_the_scope ... ok
[INFO] [stdout] test search::highlight::tests::an_empty_query_marks_nothing ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::it_names_the_directory_a_narrowed_scope_resolved_to ... ok
[INFO] [stdout] test search::highlight::tests::every_whitespace_character_is_drawn_so_distinct_commands_differ ... ok
[INFO] [stdout] test search::highlight::tests::a_raw_line_is_offered_only_when_the_display_is_not_the_text ... ok
[INFO] [stdout] test search::format::prod09_no_results_tests::it_offers_a_reset_and_the_two_mode_keys ... ok
[INFO] [stdout] test search::highlight::tests::line_breaks_and_tabs_inside_a_command_are_marked ... ok
[INFO] [stdout] test search::highlight::tests::a_combining_mark_split_from_its_base_is_escaped_not_lost ... ok
[INFO] [stdout] test search::highlight::tests::matching_folds_case_including_non_ascii ... ok
[INFO] [stdout] test search::highlight::tests::relative_ages_are_short_and_monotonic ... ok
[INFO] [stdout] test search::highlight::tests::literal_prefix_and_fuzzy_mark_what_their_rule_matched ... ok
[INFO] [stdout] test search::highlight::tests::matched_characters_take_the_emphasis_style ... ok
[INFO] [stdout] test search::highlight::tests::emphasis_never_splits_a_grapheme ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_filtering_by_tag ... ok
[INFO] [stdout] test search::highlight::tests::terms_mark_every_occurrence_of_each_word ... ok
[INFO] [stdout] test search::highlight::tests::highlighting_follows_each_modes_own_case_rule ... ok
[INFO] [stdout] test search::matching::tests::an_empty_query_narrows_nothing_in_any_mode ... ok
[INFO] [stdout] test search::highlight::tests::the_raw_view_escapes_what_does_not_draw_and_marks_every_space ... ok
[INFO] [stdout] test search::matching::tests::empty_query_matches_everything ... ok
[INFO] [stdout] test search::matching::tests::case_folding_per_mode_is_as_documented ... ok
[INFO] [stdout] test search::matching::tests::default_mode_is_terms_so_upgrades_do_not_reinterpret_queries ... ok
[INFO] [stdout] test search::highlight::tests::wrapping_breaks_between_words_and_keeps_the_prefix ... ok
[INFO] [stdout] test search::highlight::tests::trailing_whitespace_is_visible_so_distinct_commands_never_look_alike ... ok
[INFO] [stdout] test search::matching::tests::literal_requires_the_whole_query_contiguously ... ok
[INFO] [stdout] test search::matching::tests::fuzzy_character_narrowing_never_excludes_a_real_subsequence_match ... ok
[INFO] [stdout] test search::matching::tests::fuzzy_narrows_by_distinct_characters_so_old_matches_are_not_lost ... ok
[INFO] [stdout] test search::matching::tests::mode_cycle_visits_every_mode_and_returns_to_the_default ... ok
[INFO] [stdout] test search::matching::tests::only_fuzzy_admits_a_pure_subsequence ... ok
[INFO] [stdout] test search::matching::tests::prefix_anchors_at_the_start ... ok
[INFO] [stdout] test search::matching::tests::literal_and_fuzzy_disagree_on_the_documented_example ... ok
[INFO] [stdout] test search::matching::tests::punctuation_is_never_stripped_or_tokenised ... ok
[INFO] [stdout] test search::matching::tests::terms_are_anded_and_order_insensitive ... ok
[INFO] [stdout] test search::matching::tests::fuzzy_tokens_are_deduplicated_and_ignore_whitespace ... ok
[INFO] [stdout] test search::matching::tests::literal_mode_asks_sql_for_the_whole_query_and_keeps_recency_order ... ok
[INFO] [stdout] test search::highlight::tests::the_raw_view_breaks_after_each_line_break_and_wraps_without_loss ... ok
[INFO] [stdout] test search::matching::tests::prefix_mode_anchors_the_whole_query ... ok
[INFO] [stdout] test search::matching::tests::quotes_are_ordinary_characters_not_syntax ... ok
[INFO] [stdout] test search::matching::tests::labels_are_stable_and_round_trip_through_clap ... ok
[INFO] [stdout] test search::matching::tests::the_default_mode_plans_exactly_the_pre_existing_token_narrowing ... ok
[INFO] [stdout] test search::render::tests::test_build_command_text_no_id ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_basic ... ok
[INFO] [stdout] test search::render::tests::test_build_command_text_no_id_unique_mode ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_bookmarked ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_failed_exit ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_bookmarked_and_noted ... ok
[INFO] [stdout] test search::matching::tests::terms_mode_asks_sql_for_one_clause_per_term ... ok
[INFO] [stdout] test search::matching::tests::terms_splits_on_whitespace_runs_only ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_executor_only_type ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_risk_disabled ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_risk_enabled_dangerous ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_risk_enabled_safe ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_not_bookmarked_not_noted ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_unknown_exit ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_with_tag ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_no_executor ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_noted ... ok
[INFO] [stdout] test search::render::tests::test_build_detail_lines_session_truncated ... ok
[INFO] [stdout] test search::render::tests::test_build_table_title_empty ... ok
[INFO] [stdout] test search::render::tests::test_build_table_title_exact_page_boundary ... ok
[INFO] [stdout] test search::render::tests::test_build_table_title_single_item ... ok
[INFO] [stdout] test search::render::tests::test_build_table_title_page_two ... ok
[INFO] [stdout] test search::render::tests::test_build_table_title_with_items ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_boundary_0_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_boundary_129_semi_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_boundary_130_full ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_boundary_80_semi_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_constraints_full ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_constraints_semi_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_for_view ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_full ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_semi_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_header_full ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_header_compact ... ok
[INFO] [stdout] test search::render::tests::test_command_prefix_bookmarked ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_header_semi_compact ... ok
[INFO] [stdout] test search::render::tests::test_command_prefix_noted ... ok
[INFO] [stdout] test search::render::tests::test_entry_row_styles_not_selected ... ok
[INFO] [stdout] test search::render::tests::test_command_prefix_bookmarked_unique_noted ... ok
[INFO] [stdout] test search::render::tests::test_command_prefix_plain ... ok
[INFO] [stdout] test search::render::tests::test_command_prefix_count_only_when_asked ... ok
[INFO] [stdout] test search::render::tests::test_entry_row_styles_not_selected_local ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_boundary_79_compact ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_boundary_u16_max_full ... ok
[INFO] [stdout] test search::render::tests::test_column_layout_constraints_compact ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_query ... ok
[INFO] [stdout] test search::render::tests::test_entry_row_styles_not_selected_not_local ... ok
[INFO] [stdout] test search::render::tests::test_entry_row_styles_selected ... ok
[INFO] [stdout] test search::render::tests::test_entry_row_styles_selected_not_local ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_human ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_agent ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_bot ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_130_sigint ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_137_sigkill ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_failure ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_failure_style_uses_error_color ... ok
[INFO] [stdout] test search::render::tests::test_entry_row_styles_selected_local ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_unknown_type_with_executor ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_ide ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_success ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_success_style_uses_success_color ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_none ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_none ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_programmatic ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_unknown_type_no_executor ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_127_command_not_found ... ok
[INFO] [stdout] test search::scope::tests::all_history_is_the_default_and_always_available ... ok
[INFO] [stdout] test search::scope::tests::a_subdirectory_resolves_to_the_repository_root ... ok
[INFO] [stdout] test search::scope::tests::an_available_scope_resolves_to_itself_without_a_note ... ok
[INFO] [stdout] test search::scope::tests::cycling_visits_every_scope_when_all_are_available ... ok
[INFO] [stdout] test search::scope::tests::cycling_skips_unavailable_scopes ... ok
[INFO] [stdout] test search::render::tests::test_format_exit_code_none_style_uses_muted_color ... ok
[INFO] [stdout] test search::scope::tests::labels_round_trip_through_clap ... ok
[INFO] [stdout] test search::scope::tests::a_nested_repository_wins_over_its_parent ... ok
[INFO] [stdout] test search::scope::tests::an_unreadable_dot_git_file_is_still_a_boundary ... ok
[INFO] [stdout] test search::scope::tests::outside_a_repository_there_is_no_workspace ... ok
[INFO] [stdout] test search::scope::tests::a_linked_worktree_is_its_own_workspace_not_the_main_repository ... ok
[INFO] [stdout] test search::scope::tests::outside_a_repository_workspace_scope_explains_and_falls_back ... ok
[INFO] [stdout] test search::scope::tests::session_scope_without_a_session_explains_and_falls_back_to_all ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_reexecution ... ok
[INFO] [stdout] test search::scope::tests::the_boundary_is_resolved_once_and_does_not_drift ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_recency_priority ... ok
[INFO] [stdout] test repository::tests::test_unique_entries_pagination_and_query ... ok
[INFO] [stdout] test repository::tests::test_vacuum ... ok
[INFO] [stdout] test search::render::tests::test_format_executor_ci ... ok
[INFO] [stdout] test search::tests::accepting_hands_back_the_exact_command_and_nothing_else ... ok
[INFO] [stdout] test repository::tests::test_tag_limits_and_constraints ... ok
[INFO] [stdout] test search::tests::a_very_wide_terminal_keeps_the_footer_to_core_actions ... ok
[INFO] [stdout] test search::tests::a_short_detail_pane_still_shows_where_and_how_the_run_went ... ok
[INFO] [stdout] test search::tests::a_fuzzy_total_never_counts_a_candidate_the_mode_would_reject ... ok
[INFO] [stdout] test search::tests::a_linked_worktree_scopes_to_the_worktree_not_the_main_repository ... ok
[INFO] [stdout] test search::tests::a_scope_keeps_its_meaning_even_if_the_repository_moves_underneath ... ok
[INFO] [stdout] test search::tests::a_nested_repository_scopes_to_itself_not_its_parent ... ok
[INFO] [stdout] test search::tests::a_superseded_query_never_reaches_the_screen ... ok
[INFO] [stdout] test search::tests::changing_the_scope_leaves_the_matching_mode_alone ... ok
[INFO] [stdout] test search::tests::ctrl_l_still_toggles_between_all_history_and_this_directory ... ok
[INFO] [stdout] test search::tests::ctrl_p_cycles_scope_and_narrows_the_directory_filter ... ok
[INFO] [stdout] test search::tests::ctrl_p_skips_scopes_that_are_unavailable_here ... ok
[INFO] [stdout] test search::tests::a_stopped_worker_is_reported_rather_than_waited_on ... ok
[INFO] [stdout] test search::tests::ctrl_r_resets_every_narrowing_to_all_history_in_one_action ... ok
[INFO] [stdout] test search::tests::an_initial_fuzzy_query_never_returns_out_of_order_characters ... ok
[INFO] [stdout] test search::tests::ctrl_v_with_nothing_selected_says_so ... ok
[INFO] [stdout] test search::tests::down_on_last_result_requests_the_next_page ... ok
[INFO] [stdout] test search::tests::ctrl_x_cycles_the_matching_mode_and_reloads ... ok
[INFO] [stdout] test search::tests::enter_on_an_empty_result_set_leaves_recall_with_nothing ... ok
[INFO] [stdout] test search::tests::every_detail_label_is_separated_from_its_value ... ok
[INFO] [stdout] test search::tests::an_interrupted_statement_reads_as_cancelled_not_failed ... ok
[INFO] [stdout] test search::tests::a_kept_selection_that_is_gone_is_reported_not_swapped ... ok
[INFO] [stdout] test search::tests::cancelling_returns_nothing_so_the_shell_keeps_its_buffer ... ok
[INFO] [stdout] test search::tests::each_scope_returns_exactly_the_slice_of_history_it_names ... ok
[INFO] [stdout] test search::tests::case_and_punctuation_behave_as_the_help_describes ... ok
[INFO] [stdout] test search::tests::ctrl_v_opens_a_scrollable_raw_view_of_any_command ... ok
[INFO] [stdout] test search::tests::every_mode_agrees_end_to_end_with_its_reference_predicate ... ok
[INFO] [stdout] test search::tests::fuzzy_folds_non_ascii_case_the_same_as_terms ... ok
[INFO] [stdout] test repository::ai_sessions::tests::paused_torn_and_unread_records_are_not_backfilled_on_resume ... ok
[INFO] [stdout] test search::tests::matching_mode_and_ranking_mode_are_independent ... ok
[INFO] [stdout] test search::tests::matching_mode_latency_on_a_large_history ... ignored, builds a 100k-entry database; run explicitly with --ignored
[INFO] [stdout] test search::render::tests::command_width_is_the_width_the_table_really_draws ... ok
[INFO] [stdout] test search::tests::fuzzy_eligibility_does_not_depend_on_the_ranking_tier ... ok
[INFO] [stdout] test search::tests::fuzzy_rejects_a_query_whose_words_are_present_but_out_of_order ... ok
[INFO] [stdout] test search::tests::only_typing_and_leaving_run_ahead_of_a_query_in_flight ... ok
[INFO] [stdout] test search::tests::literal_and_fuzzy_disagree_end_to_end_exactly_as_documented ... ok
[INFO] [stdout] test search::tests::prod03_active_filters_shown_in_status_row ... ok
[INFO] [stdout] test search::tests::prod03_all_three_themes_render_without_clipped_hints ... ok
[INFO] [stdout] test search::tests::prod03_detail_pane_moves_below_results_when_side_by_side_would_clip ... ok
[INFO] [stdout] test search::tests::prod03_detail_pane_stays_beside_results_on_wide_terminals ... ok
[INFO] [stdout] test search::tests::prod03_essential_hints_visible_at_100x30 ... ok
[INFO] [stdout] test search::tests::prod03_essential_hints_visible_at_80x24 ... ok
[INFO] [stdout] test search::tests::no_mode_or_scope_ever_reveals_hidden_agent_commands ... ok
[INFO] [stdout] test search::tests::pasted_multiline_text_becomes_one_searchable_query_line ... ok
[INFO] [stdout] test search::tests::prod03_footer_has_no_partial_hint_at_100x30 ... ok
[INFO] [stdout] test search::tests::prod03_footer_snapshot_at_100x30 ... ok
[INFO] [stdout] test search::tests::prod03_footer_snapshot_at_80x24 ... ok
[INFO] [stdout] test search::tests::prod03_help_overlay_fits_an_80x24_terminal ... ok
[INFO] [stdout] test search::tests::prod03_footer_has_no_partial_hint_at_80x24 ... ok
[INFO] [stdout] test search::tests::prod03_help_overlay_holds_advanced_hints_and_takes_focus ... ok
[INFO] [stdout] test search::tests::prod03_multiline_command_is_fully_inspectable ... ok
[INFO] [stdout] test search::tests::prefix_anchors_at_the_start_of_the_command_end_to_end ... ok
[INFO] [stdout] test search::tests::prod03_status_area_reports_agent_visibility_and_scope ... ok
[INFO] [stdout] test search::tests::prod03_status_area_visible_at_100x30 ... ok
[INFO] [stdout] test search::tests::prod03_status_area_visible_at_80x24 ... ok
[INFO] [stdout] test search::tests::prod03_status_message_never_pushes_out_essential_hints ... ok
[INFO] [stdout] test search::tests::prod03_resize_during_search_never_clips_hints ... ok
[INFO] [stdout] test search::tests::prod09_no_results_state_fits_an_80x24_terminal ... ok
[INFO] [stdout] test search::tests::prod03_unicode_command_does_not_clip_hints_or_status ... ok
[INFO] [stdout] test search::tests::prod03_narrow_terminal_keeps_help_discoverable ... ok
[INFO] [stdout] test search::tests::prod09_no_results_state_names_the_mode_and_the_scope_on_screen ... ok
[INFO] [stdout] test search::tests::reset_never_pulls_excluded_agent_commands_into_view ... ok
[INFO] [stdout] test search::tests::prod09_no_results_state_never_widens_the_scope_by_itself ... ok
[INFO] [stdout] test search::tests::prod03_vim_mode_footer_is_not_clipped ... ok
[INFO] [stdout] test search::tests::executor_field_search_matches_the_executor_name_not_only_its_type ... ok
[INFO] [stdout] test search::tests::recall_opens_in_the_commands_view_unless_the_user_chose_executions ... ok
[INFO] [stdout] test search::tests::starting_with_a_query_returns_exactly_what_typing_it_returns ... ok
[INFO] [stdout] test search::tests::resetting_the_scope_brings_the_whole_history_back_in_one_action ... ok
[INFO] [stdout] test search::tests::test_combined_sort_cwd_beats_human ... ok
[INFO] [stdout] test search::tests::test_combined_sort_cwd_first ... ok
[INFO] [stdout] test search::tests::test_combined_sort_empty ... ok
[INFO] [stdout] test search::tests::test_combined_sort_human_first ... ok
[INFO] [stdout] test search::tests::test_combined_sort_no_context_human_only ... ok
[INFO] [stdout] test search::tests::test_ctrl_b_nothing_selected ... ok
[INFO] [stdout] test search::tests::test_ctrl_b_toggles_bookmark ... ok
[INFO] [stdout] test search::tests::test_ctrl_d_no_entry_id ... ok
[INFO] [stdout] test search::tests::test_ctrl_g_opens_goto_dialog ... ok
[INFO] [stdout] test search::tests::test_ctrl_l_toggles_cwd_filter ... ok
[INFO] [stdout] test search::tests::test_ctrl_n_no_entry_id ... ok
[INFO] [stdout] test search::tests::test_ctrl_n_opens_note_dialog ... ok
[INFO] [stdout] test search::tests::test_ctrl_o_toggles_bookmarks_only ... ok
[INFO] [stdout] test search::tests::test_ctrl_s_toggles_context_boost ... ok
[INFO] [stdout] test search::tests::test_ctrl_t_opens_tag_dialog_empty_tags ... ok
[INFO] [stdout] test search::tests::test_ctrl_t_opens_tag_dialog_with_tags ... ok
[INFO] [stdout] test search::tests::test_ctrl_y_copies_selected_command ... ok
[INFO] [stdout] test search::tests::test_ctrl_y_nothing_selected ... ok
[INFO] [stdout] test search::tests::test_delete_dialog_enter_confirms ... ok
[INFO] [stdout] test search::tests::results_still_waiting_on_their_query_say_so ... ok
[INFO] [stdout] test search::tests::test_delete_dialog_other_key_ignored ... ok
[INFO] [stdout] test search::tests::test_dialog_routing_delete ... ok
[INFO] [stdout] test search::tests::test_delete_dialog_esc_cancels ... ok
[INFO] [stdout] test search::tests::test_dialog_routing_filter ... ok
[INFO] [stdout] test search::tests::test_dialog_routing_note ... ok
[INFO] [stdout] test search::tests::test_dialog_routing_goto ... ok
[INFO] [stdout] test search::tests::test_dialog_routing_tag ... ok
[INFO] [stdout] test search::tests::test_down_selects_first_when_none_selected ... ok
[INFO] [stdout] test search::tests::test_enter_with_no_selection_continues ... ok
[INFO] [stdout] test search::tests::test_filter_backspace_each_field ... ok
[INFO] [stdout] test search::tests::test_filter_enter_applies_executor ... ok
[INFO] [stdout] test search::tests::test_filter_backtab_cycles_focus_backward ... ok
[INFO] [stdout] test search::tests::test_filter_enter_applies_exit_code ... ok
[INFO] [stdout] test search::tests::test_filter_enter_clears_empty_fields ... ok
[INFO] [stdout] test search::tests::test_filter_enter_executor_all ... ok
[INFO] [stdout] test search::tests::test_filter_enter_invalid_exit_code ... ok
[INFO] [stdout] test search::tests::test_filter_enter_unknown_tag_name ... ok
[INFO] [stdout] test search::tests::test_filter_esc_closes ... ok
[INFO] [stdout] test search::tests::test_filter_other_key_ignored ... ok
[INFO] [stdout] test search::tests::test_filter_tab_cycles_focus_forward ... ok
[INFO] [stdout] test search::tests::test_filter_typing_each_field ... ok
[INFO] [stdout] test search::tests::test_filter_enter_resolves_tag_name ... ok
[INFO] [stdout] test search::tests::test_fuzzy_contiguous_match_outranks_scattered_in_cwd ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_cwd_boost ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_custom_length_threshold ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_empty_query ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_cwd_boost_zero ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_filters_irrelevant ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_high_boost ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_human_boost ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_human_boost_zero ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_length_penalty ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_no_match ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_ranking ... ok
[INFO] [stdout] test search::tests::test_fuzzy_score_single_char ... ok
[INFO] [stdout] test search::tests::test_get_selected_entry ... ok
[INFO] [stdout] test search::tests::test_get_selected_entry_out_of_bounds ... ok
[INFO] [stdout] test search::tests::test_goto_dialog_backspace ... ok
[INFO] [stdout] test search::tests::test_goto_dialog_clamps_to_max_page ... ok
[INFO] [stdout] test search::tests::test_goto_dialog_empty_enter_continues ... ok
[INFO] [stdout] test search::tests::test_goto_dialog_esc_closes ... ok
[INFO] [stdout] test search::tests::test_goto_dialog_clamps_to_min_page ... ok
[INFO] [stdout] test search::tests::test_goto_dialog_non_digit_ignored ... ok
[INFO] [stdout] test search::tests::test_handle_input_backspace_reloads ... ok
[INFO] [stdout] test search::tests::test_handle_input_char_reloads ... ok
[INFO] [stdout] test search::tests::test_handle_input_ctrl_f_opens_filter ... ok
[INFO] [stdout] test search::tests::test_handle_input_ctrl_u_toggles_unique ... ok
[INFO] [stdout] test search::tests::test_handle_input_delete_dialog_no ... ok
[INFO] [stdout] test search::tests::test_handle_input_delete_dialog_yes ... ok
[INFO] [stdout] test search::tests::test_handle_input_end_jumps_to_bottom ... ok
[INFO] [stdout] test search::tests::test_handle_input_enter_selects ... ok
[INFO] [stdout] test search::tests::test_handle_input_escape_exits ... ok
[INFO] [stdout] test search::tests::test_handle_input_filter_enter ... ok
[INFO] [stdout] test search::tests::test_handle_input_home_jumps_to_top ... ok
[INFO] [stdout] test search::tests::test_handle_input_left_right_pages ... ok
[INFO] [stdout] test search::tests::test_handle_input_goto_enter ... ok
[INFO] [stdout] test search::tests::test_handle_input_page_down_clamps_at_bottom ... ok
[INFO] [stdout] test search::tests::test_handle_input_page_down_scrolls_ten_rows ... ok
[INFO] [stdout] test search::tests::test_handle_input_page_up_clamps_at_top ... ok
[INFO] [stdout] test search::tests::test_handle_input_tab_toggles_detail ... ok
[INFO] [stdout] test search::tests::test_handle_input_page_up_scrolls_ten_rows ... ok
[INFO] [stdout] test search::tests::test_match_tier_levels ... ok
[INFO] [stdout] test search::tests::test_handle_input_up_down_navigation ... ok
[INFO] [stdout] test search::tests::test_multi_word_query_absent_word_returns_nothing ... ok
[INFO] [stdout] test search::tests::test_multi_word_query_requires_literal_words ... ok
[INFO] [stdout] test search::tests::test_note_dialog_enter_empty_deletes ... ok
[INFO] [stdout] test search::tests::test_note_dialog_backspace ... ok
[INFO] [stdout] test search::tests::test_note_dialog_enter_with_text_saves ... ok
[INFO] [stdout] test search::tests::test_note_dialog_esc_closes ... ok
[INFO] [stdout] test search::tests::test_note_dialog_other_key_ignored ... ok
[INFO] [stdout] test search::tests::test_note_dialog_typing ... ok
[INFO] [stdout] test search::tests::test_pagination_logic ... ok
[INFO] [stdout] test search::tests::test_paste_appends_to_existing_query ... ok
[INFO] [stdout] test search::tests::test_paste_collapses_whitespace_and_trims ... ok
[INFO] [stdout] test search::tests::test_paste_empty_string ... ok
[INFO] [stdout] test search::tests::test_paste_in_delete_dialog_ignored ... ok
[INFO] [stdout] test search::tests::test_paste_in_help_dialog_ignored ... ok
[INFO] [stdout] test search::tests::test_paste_in_vim_normal_mode_switches_to_insert ... ok
[INFO] [stdout] test search::tests::test_paste_into_filter_end_date ... ok
[INFO] [stdout] test search::tests::test_paste_into_empty_query ... ok
[INFO] [stdout] test search::tests::test_paste_into_filter_exit_code ... ok
[INFO] [stdout] test search::tests::test_paste_into_filter_start_date ... ok
[INFO] [stdout] test search::tests::test_paste_into_filter_tag ... ok
[INFO] [stdout] test search::tests::test_paste_into_goto_dialog_digits_only ... ok
[INFO] [stdout] test search::tests::test_paste_into_note_dialog ... ok
[INFO] [stdout] test search::tests::test_paste_only_control_chars ... ok
[INFO] [stdout] test search::tests::test_paste_into_filter_executor_selector_ignored ... ok
[INFO] [stdout] test search::tests::test_paste_preserves_spaces ... ok
[INFO] [stdout] test search::tests::test_paste_respects_remaining_capacity ... ok
[INFO] [stdout] test search::tests::test_paste_strips_control_characters ... ok
[INFO] [stdout] test search::tests::test_paste_unicode ... ok
[INFO] [stdout] test search::tests::test_right_at_last_page_continues ... ok
[INFO] [stdout] test search::tests::test_paste_respects_max_input_len ... ok
[INFO] [stdout] test search::tests::test_search_app_initialization ... ok
[INFO] [stdout] test search::tests::test_tag_dialog_down_when_none_selected ... ok
[INFO] [stdout] test search::tests::test_tag_dialog_enter_associates_session ... ok
[INFO] [stdout] test search::tests::test_tag_dialog_enter_no_selection_closes ... ok
[INFO] [stdout] test search::tests::test_tag_dialog_navigation ... ok
[INFO] [stdout] test search::tests::test_single_token_requires_literal_substring ... ok
[INFO] [stdout] test search::tests::test_tag_dialog_other_key_ignored ... ok
[INFO] [stdout] test search::tests::test_unknown_key_continues ... ok
[INFO] [stdout] test search::tests::test_unknown_ctrl_key_ignored ... ok
[INFO] [stdout] test search::tests::test_vim_ctrl_d_clamps_at_bottom ... ok
[INFO] [stdout] test search::tests::test_vim_ctrl_u_clamps_at_top ... ok
[INFO] [stdout] test search::tests::test_vim_ctrl_u_scrolls_up ... ok
[INFO] [stdout] test search::tests::test_vim_disabled_esc_still_exits ... ok
[INFO] [stdout] test search::tests::test_vim_ctrl_d_scrolls_down ... ok
[INFO] [stdout] test search::tests::test_vim_end_jumps_to_bottom ... ok
[INFO] [stdout] test search::tests::test_vim_enter_selects_in_normal_mode ... ok
[INFO] [stdout] test search::tests::test_vim_esc_quits_in_normal_mode ... ok
[INFO] [stdout] test search::tests::test_vim_g_jumps_to_top ... ok
[INFO] [stdout] test search::tests::test_vim_esc_switches_to_normal ... ok
[INFO] [stdout] test search::tests::test_vim_h_prev_page ... ok
[INFO] [stdout] test search::tests::test_vim_i_switches_to_insert ... ok
[INFO] [stdout] test search::tests::test_vim_j_clamps_at_bottom ... ok
[INFO] [stdout] test search::tests::test_vim_j_navigates_down ... ok
[INFO] [stdout] test search::tests::test_vim_k_clamps_at_top ... ok
[INFO] [stdout] test search::tests::test_vim_k_navigates_up ... ok
[INFO] [stdout] test search::tests::test_vim_l_next_page ... ok
[INFO] [stdout] test search::tests::test_vim_home_jumps_to_top ... ok
[INFO] [stdout] test search::tests::test_vim_mode_roundtrip ... ok
[INFO] [stdout] test search::tests::test_vim_page_down_scrolls_ten_rows ... ok
[INFO] [stdout] test search::tests::test_vim_page_up_scrolls_ten_rows ... ok
[INFO] [stdout] test search::tests::test_vim_q_quits_in_normal_mode ... ok
[INFO] [stdout] test search::tests::test_vim_shift_g_jumps_to_bottom ... ok
[INFO] [stdout] test search::tests::test_vim_slash_switches_to_insert ... ok
[INFO] [stdout] test search::tests::test_vim_tab_toggles_detail_in_normal_mode ... ok
[INFO] [stdout] test search::tests::test_vim_typing_does_not_work_in_normal_mode ... ok
[INFO] [stdout] test search::tests::test_vim_mode_defaults_to_insert ... ok
[INFO] [stdout] test search::tests::the_default_matching_mode_is_terms ... ok
[INFO] [stdout] test search::tests::test_vim_typing_works_in_insert_mode ... ok
[INFO] [stdout] test search::tests::the_detail_pane_spells_out_whitespace_the_list_can_only_mark ... ok
[INFO] [stdout] test search::tests::the_inspector_shows_a_detached_accent_and_acceptance_keeps_it ... ok
[INFO] [stdout] test search::tests::terms_matches_scattered_words_where_literal_demands_the_phrase ... ok
[INFO] [stdout] test search::tests::the_grouping_key_is_offered_beside_the_count_at_every_width ... ok
[INFO] [stdout] test search::tests::switching_between_commands_and_executions_keeps_the_selected_command ... ok
[INFO] [stdout] test search::tests::the_worker_answers_exactly_what_a_reload_on_the_ui_thread_does ... ok
[INFO] [stdout] test search::tests::typed_search_latency_on_a_large_history ... ignored, builds a 100k-entry database; run explicitly with --ignored
[INFO] [stdout] test search::tests::the_kept_selection_follows_its_command_onto_a_later_page ... ok
[INFO] [stdout] test search::tests::typing_after_a_view_switch_starts_from_the_top_again ... ok
[INFO] [stdout] test search::tests::up_on_first_result_requests_the_previous_page ... ok
[INFO] [stdout] test search::tests::view_switches_keep_the_selection_in_unranked_results_too ... ok
[INFO] [stdout] test search::tests::what_is_highlighted_is_what_the_database_matched ... ok
[INFO] [stdout] test session_ui::picker::tests::active_filter_count_works ... ok
[INFO] [stdout] test session_ui::picker::tests::capture_column_reports_gaps_separately_from_command_success ... ok
[INFO] [stdout] test session_ui::picker::tests::clear_filters_resets_all ... ok
[INFO] [stdout] test session_ui::picker::tests::compact_ai_metadata_uses_latest_model_and_reported_tokens ... ok
[INFO] [stdout] test session_ui::picker::tests::every_terminal_width_keeps_project_agent_time_and_preview_columns ... ok
[INFO] [stdout] test session_ui::picker::tests::filter_after_date_narrows_results ... ok
[INFO] [stdout] test session_ui::picker::tests::filter_before_date_narrows_results ... ok
[INFO] [stdout] test session_ui::picker::tests::filter_date_range_overlap ... ok
[INFO] [stdout] test session_ui::picker::tests::filter_tag_narrows_results ... ok
[INFO] [stdout] test session_ui::picker::tests::kind_filter_cycles_all_human_ai ... ok
[INFO] [stdout] test session_ui::picker::tests::new_empty_sessions_no_selection ... ok
[INFO] [stdout] test session_ui::picker::tests::new_with_sessions_selects_first ... ok
[INFO] [stdout] test session_ui::picker::tests::next_on_empty_does_nothing ... ok
[INFO] [stdout] test session_ui::picker::tests::next_single_element_stays ... ok
[INFO] [stdout] test session_ui::picker::tests::next_stops_at_last_session ... ok
[INFO] [stdout] test session_ui::picker::tests::prev_on_empty_does_nothing ... ok
[INFO] [stdout] test session_ui::picker::tests::prev_single_element_stays ... ok
[INFO] [stdout] test session_ui::picker::tests::prev_stops_at_first_session ... ok
[INFO] [stdout] test session_ui::picker::tests::right_and_left_arrows_move_between_fifty_session_pages ... ok
[INFO] [stdout] test session_ui::picker::tests::row_navigation_crosses_session_picker_page_boundaries ... ok
[INFO] [stdout] test session_ui::picker::tests::search_and_filter_combine ... ok
[INFO] [stdout] test session_ui::picker::tests::search_empty_shows_all ... ok
[INFO] [stdout] test session_ui::picker::tests::search_filters_by_session_id ... ok
[INFO] [stdout] test session_ui::picker::tests::search_filters_by_tag ... ok
[INFO] [stdout] test session_ui::picker::tests::search_matches_agent_model_host_and_working_directory ... ok
[INFO] [stdout] test session_ui::picker::tests::selected_session_id_empty ... ok
[INFO] [stdout] test session_ui::picker::tests::selected_session_id_returns_correct ... ok
[INFO] [stdout] test session_ui::picker::tests::selection_returns_the_full_deterministic_id ... ok
[INFO] [stdout] test session_ui::picker::tests::session_row_shows_project_and_prompt_preview_not_just_an_id ... ok
[INFO] [stdout] test session_ui::session_data_contract_tests::ai_only_session_keeps_conversation_without_commands ... ok
[INFO] [stdout] test session_ui::session_data_contract_tests::ai_session_data_orders_prompts_commands_and_responses ... ok
[INFO] [stdout] test session_ui::session_data_contract_tests::ai_session_data_uses_latest_cumulative_usage_snapshot ... ok
[INFO] [stdout] test session_ui::session_data_contract_tests::build_ai_session_data_carries_summaries_through_unchanged ... ok
[INFO] [stdout] test session_ui::session_data_contract_tests::handoff_session_is_built_from_captured_records_and_their_ids ... ok
[INFO] [stdout] test session_ui::timeline::tests::a_text_panel_closes_on_escape_and_scrolls ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_row_navigation_crosses_page_boundaries ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_info_compacts_optional_details_as_width_shrinks ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_info_groups_identity_usage_and_activity ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_info_keeps_total_tokens_on_narrow_terminals ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_info_preserves_the_full_session_id ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_info_uses_spacious_height_when_room_allows ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_prompt_count_falls_back_to_linked_command_context ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_session_token_metrics_keep_values_separate_from_labels ... ok
[INFO] [stdout] test session_ui::timeline::tests::ai_timeline_selects_conversation_items_for_detail_and_copy ... ok
[INFO] [stdout] test session_ui::timeline::tests::bracket_keys_navigate_summary_panel_history_and_stop_at_the_ends ... ok
[INFO] [stdout] test session_ui::timeline::tests::build_timeline_empty_entries ... ok
[INFO] [stdout] test session_ui::timeline::tests::build_timeline_gap_duration_correct ... ok
[INFO] [stdout] test session_ui::timeline::tests::build_timeline_inserts_gap_above_threshold ... ok
[INFO] [stdout] test session_ui::timeline::tests::build_timeline_no_gap_below_threshold ... ok
[INFO] [stdout] test session_ui::timeline::tests::build_timeline_saturating_sub_no_underflow ... ok
[INFO] [stdout] test session_ui::timeline::tests::build_timeline_single_entry ... ok
[INFO] [stdout] test session_ui::timeline::tests::clamp_scroll_stops_at_the_last_full_screen_of_content ... ok
[INFO] [stdout] test session_ui::timeline::tests::ctrl_y_in_summary_panel_reports_a_copy_status ... ok
[INFO] [stdout] test session_ui::timeline::tests::h_prepares_a_handoff_from_captured_records_only ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_end_goes_to_last_page ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_esc_returns_false ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_g_resets_to_page_one ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_j_moves_down ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_k_moves_up ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_q_returns_false ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_s_shows_ai_only_status_message_on_human_session ... ok
[INFO] [stdout] test session_ui::timeline::tests::handle_input_tab_toggles_detail ... ok
[INFO] [stdout] test session_ui::timeline::tests::human_row_navigation_crosses_page_boundaries ... ok
[INFO] [stdout] test session_ui::timeline::tests::human_session_summary_uses_the_shared_three_row_layout ... ok
[INFO] [stdout] test session_ui::timeline::tests::markdown_lite_bolds_double_asterisk_spans_and_strips_the_markers ... ok
[INFO] [stdout] test session_ui::timeline::tests::markdown_lite_strips_header_hashes_and_bolds_them ... ok
[INFO] [stdout] test session_ui::timeline::tests::markdown_lite_turns_bullet_dash_into_a_styled_marker ... ok
[INFO] [stdout] test session_ui::timeline::tests::move_down_advances_selection ... ok
[INFO] [stdout] test session_ui::timeline::tests::move_up_at_zero_stays ... ok
[INFO] [stdout] test session_ui::timeline::tests::page_slice_empty ... ok
[INFO] [stdout] test session_ui::timeline::tests::q_closes_summary_panel_without_closing_the_app ... ok
[INFO] [stdout] test session_ui::timeline::tests::s_with_no_summaries_opens_an_explanation_rather_than_a_toast ... ok
[INFO] [stdout] test session_ui::timeline::tests::s_with_summaries_opens_panel_on_newest ... ok
[INFO] [stdout] test session_ui::timeline::tests::s_without_summaries_but_writes_enabled_points_at_the_connected_agent ... ok
[INFO] [stdout] test session_ui::timeline::tests::s_without_summaries_explains_disabled_summary_writes_in_place ... ok
[INFO] [stdout] test session_ui::timeline::tests::selected_entry_empty ... ok
[INFO] [stdout] test session_ui::timeline::tests::selected_entry_with_entries ... ok
[INFO] [stdout] test session_ui::timeline::tests::session_title_states_capture_completeness_separately_from_success ... ok
[INFO] [stdout] test session_ui::timeline::tests::summary_panel_badges_the_three_evidence_states_apart ... ok
[INFO] [stdout] test session_ui::timeline::tests::summary_panel_says_what_to_do_with_an_invalidated_basis ... ok
[INFO] [stdout] test session_ui::timeline::tests::tab_toggles_raw_view_in_summary_panel ... ok
[INFO] [stdout] test session_ui::timeline::tests::the_handoff_lists_the_known_capture_gaps_themselves ... ok
[INFO] [stdout] test session_ui::timeline::tests::total_pages_empty ... ok
[INFO] [stdout] test session_ui::timeline::tests::total_pages_one_page ... ok
[INFO] [stdout] test settings_ui::tests::disabling_a_tool_does_not_reset_unrelated_settings ... ok
[INFO] [stdout] test settings_ui::tests::enabling_session_summaries_persists_and_advertises_the_write_tool ... ok
[INFO] [stdout] test settings_ui::tests::every_mcp_item_has_exactly_one_row ... ok
[INFO] [stdout] test settings_ui::tests::every_search_row_is_visible_at_80x24 ... ok
[INFO] [stdout] test settings_ui::tests::gated_tool_row_shows_effective_state_not_a_second_toggle ... ok
[INFO] [stdout] test settings_ui::tests::home_icons_row_switches_between_ascii_and_unicode ... ok
[INFO] [stdout] test settings_ui::tests::mcp_tab_exposes_session_summary_opt_in ... ok
[INFO] [stdout] test settings_ui::tests::mcp_tab_exposes_skill_proposal_opt_in ... ok
[INFO] [stdout] test settings_ui::tests::saving_a_non_mcp_change_does_not_mention_restarting ... ok
[INFO] [stdout] test settings_ui::tests::saving_recall_defaults_keeps_unrelated_and_unknown_keys ... ok
[INFO] [stdout] test settings_ui::tests::search_tab_cycles_the_default_match_mode_through_every_mode ... ok
[INFO] [stdout] test settings_ui::tests::search_tab_cycles_the_starting_scope_through_every_scope ... ok
[INFO] [stdout] test settings_ui::tests::search_tab_toggles_compact_recall ... ok
[INFO] [stdout] test settings_ui::tests::settings_resource_list_matches_server_advertised_resources ... ok
[INFO] [stdout] test settings_ui::tests::settings_tool_list_matches_server_advertised_tools ... ok
[INFO] [stdout] test settings_ui::tests::startup_screen_row_switches_between_home_and_the_overview ... ok
[INFO] [stdout] test settings_ui::tests::test_add_exclusion_pattern ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_add_flow ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_backspace ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_delete_flow ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_empty_fields_rejected ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_esc_cancels_add ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_executor_type_cycling ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_item_navigation ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_name_validation ... ok
[INFO] [stdout] test settings_ui::tests::test_agent_tab_toggles_focus ... ok
[INFO] [stdout] test settings_ui::tests::test_app_state_navigation ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_add_flow ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_backspace_path_field ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_backspace_tag_field ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_delete_flow ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_empty_fields_rejected ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_esc_cancels_add ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_item_navigation ... ok
[INFO] [stdout] test settings_ui::tests::test_auto_tag_tab_toggles_focus ... ok
[INFO] [stdout] test settings_ui::tests::test_backspace_in_editing_mode ... ok
[INFO] [stdout] test settings_ui::tests::test_confirm_quit_esc_cancels ... ok
[INFO] [stdout] test settings_ui::tests::test_confirm_quit_save_discard ... ok
[INFO] [stdout] test settings_ui::tests::test_confirm_quit_y_save_attempt ... ok
[INFO] [stdout] test settings_ui::tests::test_edit_page_limit_clamps ... ok
[INFO] [stdout] test settings_ui::tests::test_edit_page_limit_via_handle_input ... ok
[INFO] [stdout] test settings_ui::tests::test_escape_from_editing ... ok
[INFO] [stdout] test settings_ui::tests::test_exclusion_add_esc_cancels ... ok
[INFO] [stdout] test settings_ui::tests::test_exclusion_delete_empties_list ... ok
[INFO] [stdout] test settings_ui::tests::test_exclusion_delete_last_adjusts_selected ... ok
[INFO] [stdout] test settings_ui::tests::test_exclusion_delete_middle_item ... ok
[INFO] [stdout] test settings_ui::tests::test_exclusion_item_navigation ... ok
[INFO] [stdout] test settings_ui::tests::test_handle_input_enter_space_toggle_bool ... ok
[INFO] [stdout] test settings_ui::tests::test_handle_input_q_dirty_enters_confirm_quit ... ok
[INFO] [stdout] test settings_ui::tests::test_handle_input_q_not_dirty_quits ... ok
[INFO] [stdout] test settings_ui::tests::test_handle_input_s_attempts_save ... ok
[INFO] [stdout] test settings_ui::tests::test_handle_input_via_key_events ... ok
[INFO] [stdout] test settings_ui::tests::test_initial_state ... ok
[INFO] [stdout] test settings_ui::tests::test_input_buffer_length_limit ... ok
[INFO] [stdout] test settings_ui::tests::test_item_navigation_empty_tab ... ok
[INFO] [stdout] test settings_ui::tests::test_item_selection_prev_wraps ... ok
[INFO] [stdout] test settings_ui::tests::test_mcp_tab_edit_default_days ... ok
[INFO] [stdout] test settings_ui::tests::test_mcp_tab_edit_default_limit ... ok
[INFO] [stdout] test settings_ui::tests::test_mcp_tab_item_count ... ok
[INFO] [stdout] test settings_ui::tests::test_mcp_tab_toggle_resource ... ok
[INFO] [stdout] test settings_ui::tests::test_mcp_tab_toggle_tool ... ok
[INFO] [stdout] test settings_ui::tests::test_multiple_exclusion_adds ... ok
[INFO] [stdout] test settings_ui::tests::test_prev_tab_navigation ... ok
[INFO] [stdout] test settings_ui::tests::test_remove_exclusion_pattern ... ok
[INFO] [stdout] test settings_ui::tests::test_tab_navigation_resets_selected_item ... ok
[INFO] [stdout] test settings_ui::tests::test_theme_cycle_in_settings ... ok
[INFO] [stdout] test settings_ui::tests::test_toggle_all_search_bools ... ok
[INFO] [stdout] test settings_ui::tests::test_toggle_bool ... ok
[INFO] [stdout] test settings_ui::tests::test_toggle_show_risk_in_search ... ok
[INFO] [stdout] test settings_ui::tests::the_home_rows_are_listed_and_explained ... ok
[INFO] [stdout] test settings_ui::tests::the_resource_detail_pane_names_the_tool_that_gates_it ... ok
[INFO] [stdout] test settings_ui::tests::the_selected_search_row_stays_visible_on_a_short_terminal ... ok
[INFO] [stdout] test settings_ui::tests::toggling_a_gated_tool_on_turns_on_its_opt_in ... ok
[INFO] [stdout] test settings_ui::tests::toggling_a_resource_reconciles_the_tool_that_gates_it ... ok
[INFO] [stdout] test settings_ui::tests::update_checks_can_be_switched_off_in_settings ... ok
[INFO] [stdout] test skills_builtin::tests::any_builtin_skill_enabled_matches_the_gate ... ok
[INFO] [stdout] test search::tests::an_active_filter_is_always_announced_whatever_the_width ... ok
[INFO] [stdout] test skills_builtin::tests::ensure_installed_creates_when_enabled ... ok
[INFO] [stdout] test skills_builtin::tests::ensure_installed_is_idempotent_on_second_call ... ok
[INFO] [stdout] test skills_builtin::tests::session_memory_body_states_the_explicit_request_and_author_policy ... ok
[INFO] [stdout] test skills_builtin::tests::session_memory_body_teaches_every_handoff_section ... ok
[INFO] [stdout] test skills_builtin::tests::ensure_installed_skips_when_session_summaries_disabled ... ok
[INFO] [stdout] test skills_sync::tests::a_cursor_rule_edited_inside_or_above_the_managed_region_is_a_conflict ... ok
[INFO] [stdout] test skills_sync::tests::a_file_suvadu_never_wrote_is_a_conflict_not_an_overwrite ... ok
[INFO] [stdout] test skills_sync::tests::append_block_keeps_existing_content ... ok
[INFO] [stdout] test skills_sync::tests::classify_file_distinguishes_ours_drifted_and_foreign ... ok
[INFO] [stdout] test skills_sync::tests::a_pre_marker_generated_file_is_adopted_without_a_conflict ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_from_an_unrelated_directory_keeps_the_shadowed_global_skill ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_from_the_overriding_project_keeps_the_global_skill_installed ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_keeps_files_for_skills_that_are_still_active ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_leaves_a_generated_file_with_appended_text_in_place ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_leaves_a_hand_edited_managed_block_in_place ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_leaves_text_written_after_the_marker_delimiter_in_place ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_leaves_unrelated_agents_md_content_alone ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_never_deletes_a_file_suvadu_did_not_write ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_removes_files_for_a_disabled_skill_too ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_removes_files_left_behind_by_a_removed_skill ... ok
[INFO] [stdout] test skills_sync::tests::cleanup_still_removes_a_global_file_once_the_global_skill_is_gone ... ok
[INFO] [stdout] test skills_sync::tests::codex_block_edited_by_hand_is_a_conflict_and_user_text_survives ... ok
[INFO] [stdout] test skills_sync::tests::codex_keeps_hand_written_text_below_its_managed_block ... ok
[INFO] [stdout] test skills_sync::tests::codex_legacy_block_without_a_checksum_is_adopted ... ok
[INFO] [stdout] test skills_sync::tests::destinations_are_empty_for_a_pending_or_out_of_scope_skill ... ok
[INFO] [stdout] test skills_sync::tests::diff_lines_is_empty_for_identical_content ... ok
[INFO] [stdout] test skills_sync::tests::diff_lines_reports_only_the_changed_lines ... ok
[INFO] [stdout] test skills_sync::tests::diff_lines_truncates_a_huge_change ... ok
[INFO] [stdout] test skills_sync::tests::destinations_name_every_target_file_for_an_active_skill ... ok
[INFO] [stdout] test skills_sync::tests::dry_run_does_not_write_files ... ok
[INFO] [stdout] test skills_sync::tests::external_edit_of_a_generated_file_is_not_silently_overwritten ... ok
[INFO] [stdout] test skills_sync::tests::dry_run_preview_names_the_exact_file_and_shows_the_managed_change ... ok
[INFO] [stdout] test skills_sync::tests::force_is_the_only_way_appended_text_is_overwritten ... ok
[INFO] [stdout] test skills_sync::tests::force_overwrites_a_conflicted_file ... ok
[INFO] [stdout] test skills_sync::tests::pending_proposals_are_never_materialized ... ok
[INFO] [stdout] test skills_sync::tests::preview_of_an_edited_skill_shows_only_the_changed_lines ... ok
[INFO] [stdout] test skills_sync::tests::preview_shows_appended_text_as_a_removal_instead_of_a_clean_update ... ok
[INFO] [stdout] test skills_sync::tests::split_managed_reads_back_the_checksum_it_wrote ... ok
[INFO] [stdout] test skills_sync::tests::split_managed_reports_content_after_the_delimiter_without_a_final_newline ... ok
[INFO] [stdout] test skills_sync::tests::split_managed_reports_content_written_after_the_marker_delimiter ... ok
[INFO] [stdout] test skills_sync::tests::split_managed_reports_content_written_below_the_marker ... ok
[INFO] [stdout] test search::tests::the_selected_row_shows_every_character_at_any_wrap_boundary ... ok
[INFO] [stdout] test skills_sync::tests::sync_claude_code_writes_skill_md_with_frontmatter ... ok
[INFO] [stdout] test skills_sync::tests::project_scope_shadows_global_of_the_same_name_and_says_so ... ok
[INFO] [stdout] test skills_sync::tests::sync_project_scoped_skill_only_written_for_matching_cwd ... ok
[INFO] [stdout] test skills_sync::tests::sync_codex_preserves_hand_written_content_around_managed_block ... ok
[INFO] [stdout] test skills_sync::tests::sync_is_idempotent_second_run_writes_nothing ... ok
[INFO] [stdout] test skills_sync::tests::text_appended_below_a_cursor_rule_marker_is_a_conflict ... ok
[INFO] [stdout] test skills_sync::tests::text_appended_below_the_claude_marker_is_a_conflict_not_a_silent_deletion ... ok
[INFO] [stdout] test skills_ui::tests::copy_feedback_names_the_skill ... ok
[INFO] [stdout] test skills_ui::tests::delete_confirmation_says_generated_files_are_left_behind ... ok
[INFO] [stdout] test skills_sync::tests::text_prepended_above_the_marker_is_a_conflict ... ok
[INFO] [stdout] test skills_ui::tests::edit_body_returns_none_when_editor_exits_nonzero ... ok
[INFO] [stdout] test skills_ui::tests::empty_query_returns_all_in_original_order ... ok
[INFO] [stdout] test skills_ui::tests::form_from_existing_prefills_editable_fields ... ok
[INFO] [stdout] test skills_ui::tests::format_sync_status_reports_nothing_to_sync ... ok
[INFO] [stdout] test skills_ui::tests::format_sync_status_reports_written_count ... ok
[INFO] [stdout] test skills_ui::tests::edit_body_roundtrips_through_a_fake_editor ... ok
[INFO] [stdout] test skills_ui::tests::format_sync_status_surfaces_conflicts_as_an_error ... ok
[INFO] [stdout] test skills_ui::tests::matches_by_description_and_triggers_not_just_name ... ok
[INFO] [stdout] test skills_ui::tests::no_match_returns_empty ... ok
[INFO] [stdout] test skills_ui::tests::matches_by_name ... ok
[INFO] [stdout] test skills_ui::tests::parse_triggers_empty_string_yields_empty_vec ... ok
[INFO] [stdout] test skills_ui::tests::parse_triggers_splits_trims_and_drops_empties ... ok
[INFO] [stdout] test skills_ui::tests::preview_of_a_proposal_says_it_is_awaiting_review_and_syncs_nowhere ... ok
[INFO] [stdout] test skills_ui::tests::preview_shows_state_origin_and_the_files_a_skill_syncs_to ... ok
[INFO] [stdout] test skills_ui::tests::ranks_better_match_first ... ok
[INFO] [stdout] test skills_ui::tests::reselect_after_removal_keeps_same_index_when_items_remain_after_it ... ok
[INFO] [stdout] test skills_ui::tests::reselect_after_removal_clamps_to_new_last_index_when_it_was_last ... ok
[INFO] [stdout] test skills_ui::tests::reselect_after_removal_returns_none_when_list_becomes_empty ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_alias_no_match_stays ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_descending_order ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_empty ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_empty_string_commands ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_multiple_programs ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_single_program ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_single_word_command ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_whitespace_only_commands ... ok
[INFO] [stdout] test stats_ui::tests::compute_program_groups_with_alias_map ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_boundary_26_percent ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_count_one_max_one ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_equal_count_and_max ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_exact_boundaries ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_high ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_large_values ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_low ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_medium_high ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_medium_low ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_negative_count ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_zero_count ... ok
[INFO] [stdout] test stats_ui::tests::intensity_level_zero_max ... ok
[INFO] [stdout] test stats_ui::tests::month_abbrev_all_months ... ok
[INFO] [stdout] test stats_ui::tests::month_abbrev_out_of_range ... ok
[INFO] [stdout] test stats_ui::tests::parse_type_output_bash_format ... ok
[INFO] [stdout] test stats_ui::tests::parse_type_output_empty ... ok
[INFO] [stdout] test stats_ui::tests::parse_type_output_zsh_format ... ok
[INFO] [stdout] test stats_ui::tests::parse_type_output_non_alias_lines_ignored ... ok
[INFO] [stdout] test stats_ui::tests::test_build_daily_counts_all_periods ... ok
[INFO] [stdout] test stats_ui::tests::test_build_daily_counts ... ok
[INFO] [stdout] test stats_ui::tests::test_focus_next_cycle ... ok
[INFO] [stdout] test stats_ui::tests::test_focus_prev_cycle ... ok
[INFO] [stdout] test skills_sync::tests::text_written_after_the_marker_delimiter_is_a_conflict_not_a_silent_deletion ... ok
[INFO] [stdout] test stats_ui::tests::test_build_daily_counts_with_data ... ok
[INFO] [stdout] test stats_ui::tests::test_handle_input_backtab_from_hourly ... ok
[INFO] [stdout] test stats_ui::tests::test_handle_input_backtab_from_top_dirs ... ok
[INFO] [stdout] test stats_ui::tests::test_handle_input_function_key_no_state_change ... ok
[INFO] [stdout] test stats_ui::tests::test_heatmap_colors_ascending_intensity ... ok
[INFO] [stdout] test stats_ui::tests::test_heatmap_colors_matches_theme ... ok
[INFO] [stdout] test stats_ui::tests::test_heatmap_colors_returns_five_elements ... ok
[INFO] [stdout] test stats_ui::tests::test_handle_input_backtab_full_cycle ... ok
[INFO] [stdout] test stats_ui::tests::test_handle_input_unknown_key_no_state_change ... ok
[INFO] [stdout] test stats_ui::tests::test_move_selection_down_clamps_top_dirs ... ok
[INFO] [stdout] test stats_ui::tests::test_move_selection_down_clamps_top_commands ... ok
[INFO] [stdout] test stats_ui::tests::test_move_selection_down_clamps_top_programs ... ok
[INFO] [stdout] test stats_ui::tests::test_period_days ... ok
[INFO] [stdout] test stats_ui::tests::test_period_heatmap_days ... ok
[INFO] [stdout] test stats_ui::tests::test_period_labels ... ok
[INFO] [stdout] test stats_ui::tests::test_period_mapping_boundary_values ... ok
[INFO] [stdout] test stats_ui::tests::test_period_mapping_from_initial_days ... ok
[INFO] [stdout] test stats_ui::tests::test_period_mapping_via_stats_app_new ... ok
[INFO] [stdout] test stats_ui::tests::test_move_selection_up_at_zero_top_programs ... ok
[INFO] [stdout] test stats_ui::tests::test_move_selection_up_at_zero_top_dirs ... ok
[INFO] [stdout] test stats_ui::tests::test_reload_empty_repo_no_selection ... ok
[INFO] [stdout] test stats_ui::tests::test_reload_via_period_change_resets_selections ... ok
[INFO] [stdout] test stats_ui::tests::test_reload_resets_table_selections_with_data ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_bare_e_does_not_toggle_executor ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_ctrl_h_toggles_human_only_and_reloads ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_focus_via_handle_input ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_period_change ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_initial_state ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_quit ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_toggle_executor ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_selection_on_different_panels ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_boundary_69 ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_boundary_exactly_70 ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_boundary_exactly_90 ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_calculation_error_zone ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_selection_movement ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_calculation_high ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_calculation_warning_zone ... ok
[INFO] [stdout] test stats_ui::tests::test_success_rate_zero_total ... ok
[INFO] [stdout] test suggest::tests::test_generate_alias_name ... ok
[INFO] [stdout] test suggest::tests::test_generate_alias_name_all_collisions ... ok
[INFO] [stdout] test suggest::tests::test_generate_alias_name_collision ... ok
[INFO] [stdout] test suggest::tests::test_generate_alias_name_high_suffix ... ok
[INFO] [stdout] test suggest::tests::test_generate_alias_name_single_word ... ok
[INFO] [stdout] test suggest::tests::test_parse_alias_output_bash ... ok
[INFO] [stdout] test suggest::tests::test_parse_alias_output_mixed_quotes ... ok
[INFO] [stdout] test suggest::tests::test_parse_alias_output_zsh ... ok
[INFO] [stdout] test suggest::tests::test_shell_quote_empty ... ok
[INFO] [stdout] test suggest::tests::test_shell_quote_plain ... ok
[INFO] [stdout] test suggest::tests::test_shell_quote_special_chars ... ok
[INFO] [stdout] test suggest::tests::test_shell_quote_with_single_quotes ... ok
[INFO] [stdout] test suggest_ui::tests::deselect_all ... ok
[INFO] [stdout] test suggest_ui::tests::edit_mode_backspace ... ok
[INFO] [stdout] test suggest_ui::tests::edit_mode_esc_cancels ... ok
[INFO] [stdout] test suggest_ui::tests::edit_mode_rejects_invalid_chars ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_a_selects_all ... ok
[INFO] [stdout] test suggest_ui::tests::edit_mode_typing_and_confirm ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_confirm_enter ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_e_enters_edit_mode ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_n_deselects_all ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_navigation ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_quit_esc ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_quit_q ... ok
[INFO] [stdout] test suggest_ui::tests::handle_input_space_toggles ... ok
[INFO] [stdout] test suggest_ui::tests::new_state_empty_suggestions ... ok
[INFO] [stdout] test suggest_ui::tests::new_state_selects_first ... ok
[INFO] [stdout] test suggest_ui::tests::next_wraps_around ... ok
[INFO] [stdout] test suggest_ui::tests::next_on_empty_is_noop ... ok
[INFO] [stdout] test suggest_ui::tests::prev_on_empty_is_noop ... ok
[INFO] [stdout] test suggest_ui::tests::prev_wraps_around ... ok
[INFO] [stdout] test suggest_ui::tests::toggle_selected ... ok
[INFO] [stdout] test suggest_ui::tests::select_all ... ok
[INFO] [stdout] test tests::internal_commands_are_not_user_facing ... ok
[INFO] [stdout] test tests::pause_is_user_facing ... ok
[INFO] [stdout] test tests::pause_outputs_export_line ... ok
[INFO] [stdout] test tests::search_is_user_facing ... ok
[INFO] [stdout] test tests::stats_is_user_facing ... ok
[INFO] [stdout] test tests::user_facing_commands_are_detected ... ok
[INFO] [stdout] test tests::version_command_succeeds ... ok
[INFO] [stdout] test theme::tests::test_dark_theme_colors ... ok
[INFO] [stdout] test theme::tests::test_light_theme_colors ... ok
[INFO] [stdout] test theme::tests::test_theme_index ... ok
[INFO] [stdout] test theme::tests::test_terminal_theme_uses_ansi ... ok
[INFO] [stdout] test theme::tests::test_theme_name_cycle ... ok
[INFO] [stdout] test theme::tests::test_theme_name_default ... ok
[INFO] [stdout] test theme::tests::test_theme_name_display ... ok
[INFO] [stdout] test theme::tests::test_theme_name_serde_roundtrip ... ok
[INFO] [stdout] test update::tests::a_failed_update_leaves_the_old_binary_in_place ... ok
[INFO] [stdout] test update::tests::a_link_into_a_cargo_bin_is_cargos ... ok
[INFO] [stdout] test update::tests::a_homebrew_link_outside_a_homebrew_path_is_still_homebrew ... ok
[INFO] [stdout] test update::tests::cargo_installs_are_recognised_under_a_custom_cargo_home ... ok
[INFO] [stdout] test update::tests::checksum_extracted_from_sha256sum_output ... ok
[INFO] [stdout] test update::tests::checksum_extraction_handles_empty_output ... ok
[INFO] [stdout] test update::tests::checksum_extraction_handles_shasum_format ... ok
[INFO] [stdout] test update::tests::checksum_mismatch_detected ... ok
[INFO] [stdout] test update::tests::empty_checksum_rejected ... ok
[INFO] [stdout] test update::tests::a_writable_install_is_replaced_without_sudo ... ok
[INFO] [stdout] test update::tests::github_releases_url_is_https ... ok
[INFO] [stdout] test update::tests::install_script_verifies_with_the_same_public_key ... ok
[INFO] [stdout] test update::tests::matching_checksum_accepted ... ok
[INFO] [stdout] test update::tests::path_traversal_detected_outside_dir ... ok
[INFO] [stdout] test update::tests::path_within_dir_is_accepted ... ok
[INFO] [stdout] test update::tests::release_notes_items_extracted ... ok
[INFO] [stdout] test update::tests::release_notes_section_headers_detected ... ok
[INFO] [stdout] test update::tests::release_target_agrees_with_the_install_script ... ok
[INFO] [stdout] test update::tests::logo_constant_is_not_empty ... ok
[INFO] [stdout] test update::tests::release_target_names_only_published_archives ... ok
[INFO] [stdout] test update::tests::release_target_matches_what_the_workflow_publishes ... ok
[INFO] [stdout] test update::tests::release_target_rejects_an_architecture_with_no_build ... ok
[INFO] [stdout] test update::tests::relinking_replaces_a_stale_suvadu_link ... ok
[INFO] [stdout] test update::tests::test_embedded_public_key_parses ... ok
[INFO] [stdout] test update::tests::test_invalid_public_key_errors ... ok
[INFO] [stdout] test update::tests::test_invalid_signature_format_errors ... ok
[INFO] [stdout] test update::tests::test_is_not_cargo_install ... ok
[INFO] [stdout] test update::tests::test_is_not_homebrew_install ... ok
[INFO] [stdout] test update::tests::test_valid_public_key_parses ... ok
[INFO] [stdout] test update::tests::test_signature_verification_rejects_wrong_key ... ok
[INFO] [stdout] test update::tests::the_update_target_is_the_real_binary_even_when_run_as_suvadu ... ok
[INFO] [stdout] test update::tests::version_url_is_https ... ok
[INFO] [stdout] test update::tests::write_access_is_judged_on_the_directory ... ok
[INFO] [stdout] test update_check::tests::a_check_runs_at_most_once_a_day ... ok
[INFO] [stdout] test update_check::tests::a_fetched_version_is_saved_only_when_it_looks_like_one ... ok
[INFO] [stdout] test update_check::tests::a_newer_release_is_mentioned_at_most_once_a_day ... ok
[INFO] [stdout] test update_check::tests::nothing_happens_when_turned_off_in_ci_or_without_a_terminal ... ok
[INFO] [stdout] test update_check::tests::only_a_higher_release_counts_as_newer ... ok
[INFO] [stdout] test update_check::tests::the_notice_names_the_update_command_for_the_install ... ok
[INFO] [stdout] test upgrade_notice::tests::current_claude_hooks_do_not_request_another_refresh ... ok
[INFO] [stdout] test upgrade_notice::tests::current_or_uninstalled_integrations_need_no_refresh_notice ... ok
[INFO] [stdout] test update_check::tests::saved_state_round_trips_and_a_bad_file_is_ignored ... ok
[INFO] [stdout] test upgrade_notice::tests::older_suvadu_hooks_need_session_registration_even_with_other_stop_hooks ... ok
[INFO] [stdout] test util::cleanup::tests::cleaning_a_linked_rc_file_edits_its_target_and_keeps_the_link ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_no_file ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_no_hooks_key ... ok
[INFO] [stdout] test upgrade_notice::tests::update_message_describes_claude_native_session_capture ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_preserves_other_hooks ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_removes_suvadu_hook ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_claude_settings_removes_all_suvadu_hook_types ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_file_missing ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_no_suvadu_line ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_removes_suvadu_line ... ok
[INFO] [stdout] test util::cleanup::tests::test_cleanup_shell_rc_only_matches_exact_shell ... ok
[INFO] [stdout] test util::format::tests::test_dirs_home ... ok
[INFO] [stdout] test util::format::tests::test_format_count ... ok
[INFO] [stdout] test util::format::tests::test_format_duration_ms ... ok
[INFO] [stdout] test util::format::tests::test_shorten_path ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_emoji ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_exact ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_short ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_start_short ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_start_truncated ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_start_unicode ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_tiny_max ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_truncated ... ok
[INFO] [stdout] test util::format::tests::test_truncate_str_unicode ... ok
[INFO] [stdout] test util::exclusion::tests::test_is_excluded ... ok
[INFO] [stdout] test util::reconcile_key::tests::keyed_text_hash_is_deterministic_and_persists_the_key_across_calls ... ok
[INFO] [stdout] test util::reconcile_key::tests::keyed_text_hash_is_not_a_bare_unkeyed_hash ... ok
[INFO] [stdout] test util::terminal::tests::a_failed_setup_step_undoes_the_steps_before_it ... ok
[INFO] [stdout] test util::terminal::tests::a_first_step_failure_has_nothing_to_undo_and_success_undoes_nothing ... ok
[INFO] [stdout] test util::terminal::tests::every_surface_restores_raw_mode_paste_and_the_cursor ... ok
[INFO] [stdout] test util::terminal::tests::full_screen_is_the_default_surface ... ok
[INFO] [stdout] test util::terminal::tests::full_screen_teardown_undoes_exactly_what_setup_did ... ok
[INFO] [stdout] test util::terminal::tests::inline_height_is_capped_on_very_tall_terminals ... ok
[INFO] [stdout] test util::terminal::tests::inline_height_leaves_room_for_the_surrounding_shell_context ... ok
[INFO] [stdout] test util::terminal::tests::inline_height_never_exceeds_a_tiny_terminal ... ok
[INFO] [stdout] test util::terminal::tests::inline_never_touches_the_alternate_screen ... ok
[INFO] [stdout] test util::terminal::tests::raw_mode_is_disabled_after_the_screen_is_restored ... ok
[INFO] [stdout] test util::tests::test_resolve_auto_tag ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_date_iso ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_keywords ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_relative_days ... ok
[INFO] [stdout] test util::timestamp::tests::test_parse_relative_invalid ... ok
[INFO] [stdout] test util::reconcile_key::tests::concurrent_first_use_never_misses_a_key_or_disagrees_on_it ... ok
[INFO] [stdout] test stats_ui::tests::test_stats_app_with_tag ... ok
[INFO] [stdout] test search::tests::every_mode_finds_a_match_older_than_any_candidate_window ... ok
[INFO] [stdout] test search::tests::filters_still_exclude_an_old_command_that_matches_the_text ... ok
[INFO] [stdout] test search::tests::multi_token_queries_match_an_old_command_in_any_order ... ok
[INFO] [stdout] test search::tests::typed_search_finds_an_exact_match_older_than_the_candidate_window ... ok
[INFO] [stdout] test search::tests::an_old_command_matches_case_insensitively ... ok
[INFO] [stdout] test search::tests::like_wildcards_in_a_query_are_matched_literally ... ok
[INFO] [stdout] test search::tests::short_tokens_still_match_an_old_command ... ok
[INFO] [stdout] test search::tests::an_old_command_matches_case_insensitively_beyond_ascii ... ok
[INFO] [stdout] test search::tests::an_initial_query_reports_a_total_it_can_page_to ... ok
[INFO] [stdout] test search::tests::unique_mode_finds_an_exact_match_older_than_the_candidate_window ... ok
[INFO] [stdout] test search::tests::a_broad_query_reports_a_total_it_can_page_to ... ok
[INFO] [stdout] test search::tests::a_broad_unique_query_reports_a_total_it_can_page_to ... ok
[INFO] [stdout] test search::tests::a_broad_fuzzy_query_reports_a_total_it_can_page_to ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check' (2961) panicked at src/commands/doctor.rs:999:9:
[INFO] [stdout] an import-only user must be told to install the hook: suvadu has no shell hook for ; shell capture needs bash or zsh; imported history stays searchable either way — only a command run through the hook can verify capture; run the verification sequence below and re-run suv doctor
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6080f050c451 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6080f050c451 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6080f050c451 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6080f050c451 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6080f052775a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6080f052775a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x6080f0512fcc - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x6080f0512fcc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x6080f04e26a6 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6080f04e26a6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x6080f05019c9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x6080efd59af0 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   12:     0x6080efd59af0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x6080f0501cf2 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   14:     0x6080f0501cf2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   15:     0x6080f04e2752 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   16:     0x6080f04da9f9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6080f04e3b7d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   18:     0x6080f0527ffc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6080ef5bb50f - suv[94e94248c20832f1]::commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check
[INFO] [stdout]                                at /opt/rustwide/workdir/src/commands/doctor.rs:999:9
[INFO] [stdout]   20:     0x6080ef5b4ea7 - suv[94e94248c20832f1]::commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/commands/doctor.rs:982:67
[INFO] [stdout]   21:     0x6080ef7383d6 - <suv[94e94248c20832f1]::commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6080efd4cf3b - <fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6080efd4cf3b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:701:18
[INFO] [stdout]   24:     0x6080efd5a115 - test[aada8e7e76ba119b]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:74
[INFO] [stdout]   25:     0x6080efd5a115 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6080efd5a115 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   27:     0x6080efd5a115 - std[617be2ca0a6fd877]::panicking::catch_unwind::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   28:     0x6080efd5a115 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6080efd5a115 - test[aada8e7e76ba119b]::run_test_in_process
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:27
[INFO] [stdout]   30:     0x6080efd5a115 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:645:43
[INFO] [stdout]   31:     0x6080efd53a04 - test[aada8e7e76ba119b]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:675:41
[INFO] [stdout]   32:     0x6080efd53a04 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6080efd5d1a2 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   36:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   37:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6080efd5d1a2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x6080f050aa1f - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   41:     0x6080f050aa1f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x70f2ece9bdfa - <unknown>
[INFO] [stdout]   43:     0x70f2ecf2f3d4 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- home::runner::tests::a_timed_out_report_leaves_no_process_behind stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'home::runner::tests::a_timed_out_report_leaves_no_process_behind' (3282) panicked at src/home/runner.rs:490:9:
[INFO] [stdout] grandchild 3308 is still running
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6080f050c451 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6080f050c451 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6080f050c451 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6080f050c451 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6080f052775a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6080f052775a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x6080f0512fcc - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x6080f0512fcc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x6080f04e26a6 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6080f04e26a6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x6080f05019c9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x6080efd59af0 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   12:     0x6080efd59af0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x6080f0501cf2 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   14:     0x6080f0501cf2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   15:     0x6080f04e2752 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   16:     0x6080f04da9f9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6080f04e3b7d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   18:     0x6080f0527ffc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6080ef93fa83 - suv[94e94248c20832f1]::home::runner::tests::a_timed_out_report_leaves_no_process_behind
[INFO] [stdout]                                at /opt/rustwide/workdir/src/home/runner.rs:490:9
[INFO] [stdout]   20:     0x6080ef88e107 - suv[94e94248c20832f1]::home::runner::tests::a_timed_out_report_leaves_no_process_behind::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/home/runner.rs:456:53
[INFO] [stdout]   21:     0x6080ef734bb6 - <suv[94e94248c20832f1]::home::runner::tests::a_timed_out_report_leaves_no_process_behind::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6080efd4cf3b - <fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6080efd4cf3b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:701:18
[INFO] [stdout]   24:     0x6080efd5a115 - test[aada8e7e76ba119b]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:74
[INFO] [stdout]   25:     0x6080efd5a115 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x6080efd5a115 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   27:     0x6080efd5a115 - std[617be2ca0a6fd877]::panicking::catch_unwind::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   28:     0x6080efd5a115 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x6080efd5a115 - test[aada8e7e76ba119b]::run_test_in_process
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:27
[INFO] [stdout]   30:     0x6080efd5a115 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:645:43
[INFO] [stdout]   31:     0x6080efd53a04 - test[aada8e7e76ba119b]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:675:41
[INFO] [stdout]   32:     0x6080efd53a04 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x6080efd5d1a2 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   36:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   37:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x6080efd5d1a2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x6080efd5d1a2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x6080f050aa1f - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   41:     0x6080f050aa1f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x70f2ece9bdfa - <unknown>
[INFO] [stdout]   43:     0x70f2ecf2f3d4 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     commands::doctor::tests::imported_history_does_not_pass_the_capture_evidence_check
[INFO] [stdout]     home::runner::tests::a_timed_out_report_leaves_no_process_behind
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2028 passed; 2 failed; 2 ignored; 0 measured; 0 filtered out; finished in 43.68s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin suv`
[INFO] running `Command { std: "docker" "inspect" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba", kill_on_drop: false }`
[INFO] [stdout] 35b6f00374c8069ee0408aa0d04e8eabab273e84b78b579143b025b62d11e9ba
