[INFO] cloning repository https://github.com/majiayu000/rclean
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/majiayu000/rclean" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmajiayu000%2Frclean", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmajiayu000%2Frclean'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 14959d969b3c62d60fc8180d64e3d551af6353a6
[INFO] testing majiayu000/rclean against 1.98.0-beta.1 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmajiayu000%2Frclean" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/majiayu000/rclean
[INFO] finished tweaking git repo https://github.com/majiayu000/rclean
[INFO] tweaked toml for git repo https://github.com/majiayu000/rclean written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/majiayu000/rclean on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/majiayu000/rclean already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807
[INFO] running `Command { std: "docker" "start" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", 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" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", 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" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling lru v0.18.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling roff v1.1.1
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling matchers v0.2.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 tracing-attributes v0.1.31
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling ignore v0.4.27
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_complete v4.6.7
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling clap_mangen v0.3.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 chrono v0.4.45
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling trash v5.2.6
[INFO] [stderr]    Compiling rclean-cli v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s
[INFO] running `Command { std: "docker" "inspect" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", 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" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling trash v5.2.6
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.27
[INFO] [stderr]    Compiling rclean-cli v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] running `Command { std: "docker" "inspect" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", 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" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.38s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rclean-581dac0c758f8c49)
[INFO] [stdout] 
[INFO] [stdout] running 273 tests
[INFO] [stdout] test agent::tests::parses_codex_display_sleep_assertion ... ok
[INFO] [stdout] test agent::tests::parses_codex_defaults_update_keys ... ok
[INFO] [stdout] test agent::tests::filters_codex_related_processes ... ok
[INFO] [stdout] test agent::tests::optimize_dry_run_uses_override_defaults_domain ... ok
[INFO] [stdout] test agent::tests::redacts_agent_process_command_secrets ... ok
[INFO] [stdout] test clean::tests::check_broad_roots_rejects_etc ... ok
[INFO] [stdout] test clean::deletion::tests::resolves_go_modcache_from_root_candidate ... ok
[INFO] [stdout] test clean::output::tests::recovery_summary_names_the_restore_path_per_mode ... ok
[INFO] [stdout] test clean::tests::check_broad_roots_accepts_normal_project_path ... ok
[INFO] [stdout] test clean::tests::check_broad_roots_rejects_root_slash ... ok
[INFO] [stdout] test clean::tests::delete_selected_skips_swapped_symlink_target ... ok
[INFO] [stdout] test clean::tests::parses_interactive_selection ... ok
[INFO] [stdout] test clean::tests::delete_selected_logs_validation_failure ... ok
[INFO] [stdout] test clean::tests::validate_accepts_real_directory ... ok
[INFO] [stdout] test clean::tests::delete_selected_refuses_requires_sudo_candidate_before_deletion ... ok
[INFO] [stdout] test clean::tests::validate_audit_log_path_rejects_selected_descendant ... ok
[INFO] [stdout] test clean::deletion::tests::fake_go_modcache_clean_nonzero_is_explicit_failure ... ok
[INFO] [stdout] test clean::tests::delete_selected_skips_swapped_file_candidate ... ok
[INFO] [stdout] test clean::tests::validate_rejects_missing_path ... ok
[INFO] [stdout] test clean::tests::validate_rejects_file ... ok
[INFO] [stdout] test clean::tests::validate_rejects_hardlinked_file_before_directory_check ... ok
[INFO] [stdout] test clean::tests::validate_rejects_symlink ... ok
[INFO] [stdout] test clean::validation::tests::closed_process_gate_applies_to_app_and_temp_rules ... ok
[INFO] [stdout] test clean::tests::validate_rejects_docker_daemon_storage ... ok
[INFO] [stdout] test clean::validation::tests::open_file_check_allows_no_open_files_lsof_exit_one ... ok
[INFO] [stdout] test clean::validation::tests::open_file_check_rejects_open_process_ids ... ok
[INFO] [stdout] test clean::validation::tests::open_file_check_reports_lsof_errors ... ok
[INFO] [stdout] test default_flow_tests::default_interactive_argv_parses_as_interactive_recoverable_clean ... ok
[INFO] [stdout] test docker::tests::docker_taxonomy_keeps_no_resource_safe ... ok
[INFO] [stdout] test docker::tests::parses_system_df_rows_into_conservative_resources ... ok
[INFO] [stdout] test docker::tests::stale_or_permission_denied_resources_are_blocked ... ok
[INFO] [stdout] test docker::tests::volumes_and_named_resources_are_report_only ... ok
[INFO] [stdout] test free::tests::never_selects_non_safe_candidates_even_when_target_unmet ... ok
[INFO] [stdout] test free::tests::prefers_stale_candidates_over_larger_fresh_ones ... ok
[INFO] [stdout] test free::tests::prunes_picks_the_target_can_spare ... ok
[INFO] [stdout] test clean::deletion::tests::resolves_go_modcache_from_legacy_download_candidate ... ok
[INFO] [stdout] test graveyard::id::tests::ids_are_lex_sortable_by_time ... ok
[INFO] [stdout] test graveyard::id::tests::ids_are_unique_within_a_process ... ok
[INFO] [stdout] test doctor::tests::diagnose_marks_existing_anchor_applicable ... ok
[INFO] [stdout] test doctor::tests::diagnose_returns_one_entry_per_phase1_global_rule ... ok
[INFO] [stdout] test doctor::tests::diagnose_marks_missing_anchor_skipped ... ok
[INFO] [stdout] test graveyard::store::tests::list_returns_empty_for_fresh_graveyard ... ok
[INFO] [stdout] test clean::tests::validate_rejects_codex_sessions_even_for_global_rule ... ok
[INFO] [stdout] test graveyard::store::tests::bury_moves_payload_and_writes_manifest ... ok
[INFO] [stdout] test output::tests::biggest_wins_ranks_stale_candidates_before_larger_fresh_ones ... ok
[INFO] [stdout] test output::tests::format_staleness_renders_days_or_dash ... ok
[INFO] [stdout] test parse::tests::parses_duration_units ... ok
[INFO] [stdout] test parse::tests::parses_size_units ... ok
[INFO] [stdout] test parse::tests::parses_timeout_duration_units ... ok
[INFO] [stdout] test parse::tests::rejects_bad_duration ... ok
[INFO] [stdout] test output::tests::biggest_wins_falls_back_to_size_within_the_same_staleness_group ... ok
[INFO] [stdout] test parse::tests::rejects_bad_size ... ok
[INFO] [stdout] test parse::tests::rejects_bad_timeout_duration ... ok
[INFO] [stdout] test parse::tests::timeout_duration_minutes_are_not_scan_age_months ... ok
[INFO] [stdout] test path_util::tests::returns_none_when_file_name_is_absent ... ok
[INFO] [stdout] test graveyard::store::tests::list_reads_back_what_bury_wrote ... ok
[INFO] [stdout] test path_util::tests::returns_none_for_non_utf8_file_name ... ok
[INFO] [stdout] test plan::tests::plan_candidate_serializes_requires_sudo_as_camel_case_when_true ... ok
[INFO] [stdout] test plan::tests::old_plan_candidate_missing_requires_sudo_defaults_false ... ok
[INFO] [stdout] test plan::tests::rejects_plans_with_unknown_fields ... ok
[INFO] [stdout] test plan::tests::rejects_schema_v1_with_rescan_hint ... ok
[INFO] [stdout] test path_util::tests::returns_utf8_file_name ... ok
[INFO] [stdout] test graveyard::store::tests::multiple_burials_each_get_a_unique_grave_path ... ok
[INFO] [stdout] test plan::tests::revalidation_rejects_symlinked_plan_path ... ok
[INFO] [stdout] test plan::tests::revalidation_rejects_hardlinked_plan_path ... ok
[INFO] [stdout] test plan::tests::selected_from_action_plan_refuses_requires_sudo_candidate ... ok
[INFO] [stdout] test plan::tests::revalidation_rejects_stale_plan_path ... ok
[INFO] [stdout] test plan::tests::revalidate_selected_rejects_docker_storage_path ... ok
[INFO] [stdout] test plan::tests::summary_reflects_selected_not_full_scan ... ok
[INFO] [stdout] test graveyard::manifest::tests::append_preserves_existing_records ... ok
[INFO] [stdout] test clean::deletion::tests::fake_go_modcache_clean_success ... ok
[INFO] [stdout] test plan::tests::tampered_plan_pointing_at_codex_sessions_is_rejected ... ok
[INFO] [stdout] test plan::tests::writes_and_revalidates_plan ... ok
[INFO] [stdout] test plan::tests::tampered_plan_with_unrecognized_path_is_rejected ... ok
[INFO] [stdout] test rules::agent_tmp::tests::tmp_worktree_marker_is_required ... ok
[INFO] [stdout] test plan::tests::writes_schema_v2_candidate_id_and_risk_score ... ok
[INFO] [stdout] test rules::agent_tmp::tests::tmp_worktree_name_patterns_are_exact ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_huggingface_hub_cache ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_llama_cpp_cache_as_report_only ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_ollama_models_as_report_only ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_torch_hub_cache ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_vllm_compile_cache ... ok
[INFO] [stdout] test clean::deletion::tests::fake_go_modcache_clean_timeout_is_explicit_failure ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_whisper_cpp_models_with_downloader_marker ... ok
[INFO] [stdout] test plan::tests::tampered_plan_promoting_blocked_to_safe_is_rejected ... ok
[INFO] [stdout] test plan::tests::tampered_plan_pointing_at_docker_storage_is_rejected ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_comfyui_models_with_project_markers ... ok
[INFO] [stdout] test rules::ai_models::tests::classifies_whisper_models_cache ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_hub_outside_huggingface_parent ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_llama_cpp_outside_exact_cache_parent ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_models_outside_ollama_parent ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_comfyui_models_without_project_markers ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_other_names_under_ollama ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_torch_compile_cache_outside_vllm_parent ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_whisper_outside_xdg_cache_parent ... ok
[INFO] [stdout] test rules::android_sdk::tests::rejects_sdk_components_and_noncanonical_cache_names ... ok
[INFO] [stdout] test rules::app_caches::tests::classifies_google_updater_under_application_support_google ... ok
[INFO] [stdout] test rules::app_caches::tests::classifies_chrome_cache_under_library_caches_google ... ok
[INFO] [stdout] test rules::android_sdk::tests::classifies_download_intermediates_under_exact_sdk_roots ... ok
[INFO] [stdout] test rules::android_sdk::tests::classifies_legacy_build_cache_under_dot_android ... ok
[INFO] [stdout] test rules::app_caches::tests::classifies_notion_shipit ... ok
[INFO] [stdout] test rules::app_caches::tests::classifies_vscode_shipit ... ok
[INFO] [stdout] test rules::app_caches::tests::classifies_telegram_shipit ... ok
[INFO] [stdout] test rules::app_caches::tests::classifies_lark_cache_under_library_caches ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_chrome_under_application_support_google ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_bare_shipit_directory ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_chrome_with_wrong_grandparent ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_chromium_under_library_caches_google ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_non_shipit_name_in_library_caches ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_google_updater_outside_application_support_google ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_shipit_outside_library_caches ... ok
[INFO] [stdout] test rules::app_caches::tests::rejects_short_paths ... ok
[INFO] [stdout] test rules::ai_models::tests::rejects_whisper_cpp_models_without_downloader_marker ... ok
[INFO] [stdout] test plan::tests::write_is_atomic_against_existing_file ... ok
[INFO] [stdout] test rules::browser_global::tests::rejects_puppeteer_outside_canonical_paths ... ok
[INFO] [stdout] test rules::browser_global::tests::rejects_unrelated_names_in_user_cache ... ok
[INFO] [stdout] test rules::browser_global::tests::classifies_puppeteer_under_macos_library_caches ... ok
[INFO] [stdout] test rules::bun::tests::rejects_cache_outside_bun_install ... ok
[INFO] [stdout] test rules::browser_global::tests::classifies_puppeteer_under_xdg_cache ... ok
[INFO] [stdout] test rules::bun::tests::rejects_cache_under_bun_but_not_install ... ok
[INFO] [stdout] test rules::bun::tests::classifies_bun_install_cache ... ok
[INFO] [stdout] test rules::bun::tests::rejects_other_names_inside_bun_install ... ok
[INFO] [stdout] test rules::bun::tests::rejects_short_paths ... ok
[INFO] [stdout] test rules::cargo_global::tests::rejects_db_outside_cargo_git ... ok
[INFO] [stdout] test rules::cargo_global::tests::rejects_other_names_inside_cargo_registry ... ok
[INFO] [stdout] test rules::cargo_global::tests::classifies_registry_cache ... ok
[INFO] [stdout] test rules::cargo_global::tests::rejects_short_paths ... ok
[INFO] [stdout] test rules::dart_global::tests::classifies_pub_git_cache ... ok
[INFO] [stdout] test rules::dart_global::tests::classifies_pub_hosted_cache ... ok
[INFO] [stdout] test rules::dart_global::tests::rejects_git_outside_pub_cache ... ok
[INFO] [stdout] test rules::dart_global::tests::rejects_hosted_outside_pub_cache ... ok
[INFO] [stdout] test rules::go::tests::classifies_go_build_cache_under_macos_library_caches ... ok
[INFO] [stdout] test rules::go::tests::classifies_go_build_cache_under_windows_local_app_data ... ok
[INFO] [stdout] test rules::go::tests::classifies_go_build_cache_under_xdg_cache ... ok
[INFO] [stdout] test rules::go::tests::classifies_go_module_download_cache ... ok
[INFO] [stdout] test rules::cargo_global::tests::classifies_git_db ... ok
[INFO] [stdout] test rules::gradle::tests::rejects_caches_outside_dot_gradle ... ok
[INFO] [stdout] test rules::cargo_global::tests::rejects_cache_outside_cargo_registry ... ok
[INFO] [stdout] test rules::gradle::tests::rejects_other_names_inside_dot_gradle ... ok
[INFO] [stdout] test rules::homebrew::tests::classifies_homebrew_downloads_under_macos_cache ... ok
[INFO] [stdout] test rules::gradle::tests::classifies_gradle_caches_under_dot_gradle ... ok
[INFO] [stdout] test rules::homebrew::tests::classifies_homebrew_downloads_under_xdg_cache ... ok
[INFO] [stdout] test rules::homebrew::tests::rejects_downloads_outside_homebrew_cache ... ok
[INFO] [stdout] test rules::go::tests::rejects_download_outside_go_module_cache ... ok
[INFO] [stdout] test rules::ide_caches::tests::classifies_jetbrains_caches_under_exact_system_anchors ... ok
[INFO] [stdout] test rules::ide_caches::tests::classifies_jetbrains_logs_under_exact_log_anchors ... ok
[INFO] [stdout] test rules::ide_caches::tests::classifies_android_studio_caches_and_logs_under_exact_anchors ... ok
[INFO] [stdout] test rules::homebrew::tests::rejects_other_names_inside_homebrew_cache ... ok
[INFO] [stdout] test rules::ide_caches::tests::rejects_ide_state_outside_exact_cache_and_log_anchors ... ok
[INFO] [stdout] test rules::js_global::tests::classifies_deno_under_macos_library_caches ... ok
[INFO] [stdout] test rules::js_global::tests::classifies_deno_under_xdg_cache ... ok
[INFO] [stdout] test rules::js_global::tests::rejects_deno_outside_canonical_paths ... ok
[INFO] [stdout] test rules::js_global::tests::rejects_other_names_inside_user_caches ... ok
[INFO] [stdout] test rules::maven::tests::rejects_other_names_inside_dot_m2 ... ok
[INFO] [stdout] test rules::maven::tests::classifies_repository_under_dot_m2 ... ok
[INFO] [stdout] test rules::maven::tests::rejects_repository_outside_dot_m2 ... ok
[INFO] [stdout] test rules::go::tests::classifies_go_module_cache_root ... ok
[INFO] [stdout] test plan::tests::tampered_plan_pointing_at_claude_user_records_is_rejected ... ok
[INFO] [stdout] test rules::node_global::tests::classifies_legacy_pnpm_store_version_under_dot_pnpm_store ... ok
[INFO] [stdout] test rules::node_global::tests::classifies_npm_cacache ... ok
[INFO] [stdout] test rules::node_global::tests::classifies_platform_pnpm_store_under_xdg_data_home ... ok
[INFO] [stdout] test rules::node_global::tests::classifies_npm_transient_caches ... ok
[INFO] [stdout] test rules::node_global::tests::classifies_yarn_cache_under_library_caches ... ok
[INFO] [stdout] test rules::node_global::tests::classifies_platform_pnpm_store_under_library_pnpm ... ok
[INFO] [stdout] test rules::node_global::tests::rejects_cacache_outside_npm ... ok
[INFO] [stdout] test rules::node_global::tests::rejects_non_version_inside_dot_pnpm_store ... ok
[INFO] [stdout] test rules::node_global::tests::rejects_other_names_inside_npm ... ok
[INFO] [stdout] test rules::node_global::tests::rejects_npm_transient_names_outside_dot_npm ... ok
[INFO] [stdout] test rules::node_global::tests::rejects_store_outside_canonical_pnpm_paths ... ok
[INFO] [stdout] test rules::node_global::tests::rejects_yarn_outside_library_caches ... ok
[INFO] [stdout] test rules::pip::tests::classifies_pip_under_xdg_cache ... ok
[INFO] [stdout] test rules::pip::tests::classifies_pip_under_macos_library_caches ... ok
[INFO] [stdout] test rules::pip::tests::rejects_pip_outside_canonical_paths ... ok
[INFO] [stdout] test rules::pip::tests::rejects_other_names_inside_library_caches ... ok
[INFO] [stdout] test rules::playwright::tests::rejects_ms_playwright_outside_known_anchor ... ok
[INFO] [stdout] test rules::playwright::tests::classifies_ms_playwright_under_dot_cache_on_linux ... ok
[INFO] [stdout] test rules::playwright::tests::rejects_other_names_inside_caches ... ok
[INFO] [stdout] test rules::pre_commit::tests::classifies_pre_commit_under_dot_cache ... ok
[INFO] [stdout] test rules::pre_commit::tests::rejects_other_names_inside_dot_cache ... ok
[INFO] [stdout] test rules::pre_commit::tests::rejects_root_only_path ... ok
[INFO] [stdout] test rules::pre_commit::tests::rejects_pre_commit_outside_dot_cache ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_pypoetry_under_macos_library_caches ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_pypoetry_under_xdg_cache ... ok
[INFO] [stdout] test rules::project::tests::candidate_prefilter_includes_global_app_cache_names ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_uv_under_macos_library_caches ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_pipx_under_macos_library_caches ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_pipx_under_xdg_cache ... ok
[INFO] [stdout] test rules::pre_commit::tests::rejects_short_paths ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_uv_under_xdg_cache_on_linux ... ok
[INFO] [stdout] test rules::python_global::tests::classifies_uv_under_xdg_cache_on_macos_override ... ok
[INFO] [stdout] test rules::python_global::tests::rejects_pipx_outside_canonical_paths ... ok
[INFO] [stdout] test rules::python_global::tests::rejects_pypoetry_outside_canonical_paths ... ok
[INFO] [stdout] test rules::python_global::tests::rejects_unrelated_names_inside_xdg_cache ... ok
[INFO] [stdout] test rules::python_global::tests::rejects_uv_outside_canonical_paths ... ok
[INFO] [stdout] test rules::python_global::tests::rejects_unrelated_names_inside_library_caches ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_bundler_compact_index ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_kube_cache_without_touching_config ... ok
[INFO] [stdout] test rules::xcode::tests::classifies_core_simulator_under_library_developer ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_vscode_and_cursor_exact_cache_subdirs ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_known_electron_cache_but_not_app_state ... ok
[INFO] [stdout] test rules::xcode::tests::classifies_xcode_derived_data_under_library_developer_xcode ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_gcloud_logs_without_touching_credentials ... ok
[INFO] [stdout] test rules::xcode::tests::rejects_other_names_inside_xcode_developer ... ok
[INFO] [stdout] test rules::xcode::tests::rejects_derived_data_outside_xcode_developer ... ok
[INFO] [stdout] test rules::xcode::tests::rejects_short_paths ... ok
[INFO] [stdout] test scan::disk::tests::parses_df_k_output ... ok
[INFO] [stdout] test scan::disk::tests::parses_apfs_container_bytes ... ok
[INFO] [stdout] test rules::xcode::tests::rejects_core_simulator_outside_library_developer ... ok
[INFO] [stdout] test scan::disk::tests::parses_du_kib_output ... ok
[INFO] [stdout] test scan::progress::tests::counters_accumulate ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_obsolete_vscode_extension_only_when_newer_sibling_exists ... ok
[INFO] [stdout] test scan::progress::tests::progress_line_reports_both_counters ... ok
[INFO] [stdout] test scan::safety::tests::detects_hardlinked_regular_file ... ok
[INFO] [stdout] test scan::progress::tests::reporter_start_finish_is_clean_before_the_initial_delay ... ok
[INFO] [stdout] test rules::user_tool_caches::tests::classifies_obsolete_claude_version_only_when_newer_sibling_exists ... ok
[INFO] [stdout] test scan::safety::tests::does_not_protect_rebuildable_claude_subdirs ... ok
[INFO] [stdout] test scan::safety::tests::docker_storage_path_requires_exact_component_sequence ... ok
[INFO] [stdout] test scan::safety::tests::does_not_protect_unrelated_paths ... ok
[INFO] [stdout] test scan::safety::tests::protects_claude_code_user_records ... ok
[INFO] [stdout] test scan::safety::tests::protects_codex_user_records ... ok
[INFO] [stdout] test scan::safety::tests::regular_directory_is_not_a_dangerous_link ... ok
[INFO] [stdout] test scan::safety::tests::runtime_or_system_path_matches_any_protected_component ... ok
[INFO] [stdout] test scan::safety::tests::protects_docker_daemon_storage_paths ... ok
[INFO] [stdout] test scan::safety::tests::protects_macos_app_container_and_profile_state ... ok
[INFO] [stdout] test scan::safety::tests::runtime_or_system_path_requires_exact_component_match ... ok
[INFO] [stdout] test scan::sizer::tests::saturating_atomic_add_caps_at_u64_max ... ok
[INFO] [stdout] test scan::sizer::tests::source_size_index_rolls_up_descendants_without_sibling_contamination ... ok
[INFO] [stdout] test scan::sizer::tests::source_size_index_rolls_up_nested_and_sibling_dirs ... ok
[INFO] [stdout] test scan::sizer::tests::parallel_walk_matches_serial_walk_for_nested_tree ... ok
[INFO] [stdout] test scan::tests::blocks_plain_python_venv_without_marker ... ok
[INFO] [stdout] test scan::git_cache::tests::disabled_git_cache_returns_no_info ... ok
[INFO] [stdout] test scan::tests::detects_root_node_project ... ok
[INFO] [stdout] test scan::tests::dirty_git_marks_candidate_caution ... ok
[INFO] [stdout] test scan::tests::git_cache_returns_none_for_non_repo ... ok
[INFO] [stdout] test scan::git_cache::tests::command_timeout_returns_none ... ok
[INFO] [stdout] test scan::tests::risk_score_is_zero_when_no_markers_trip ... ok
[INFO] [stdout] test scan::tests::risk_score_max_is_0_85_until_root_boundary_axis_lands ... ok
[INFO] [stdout] test scan::tests::risk_score_weights_match_spec ... ok
[INFO] [stdout] test scan::tests::generic_build_without_marker_is_ignored ... ok
[INFO] [stdout] test scan::tests::detects_gradle_dart_dotnet_and_ruby_rules ... ok
[INFO] [stdout] test scan::tests::git_cache_shares_dirty_flag_across_sibling_projects ... ok
[INFO] [stdout] test scan::tests::symlink_candidate_is_blocked ... ok
[INFO] [stdout] test scan::tests::sibling_projects_source_bytes_do_not_cross_contaminate ... ok
[INFO] [stdout] test scan::tests::tmp_worktree_fallback_requires_project_marker ... ok
[INFO] [stdout] test scan::tests::tmp_worktree_fallback_only_emits_when_no_nested_cleanable_candidate_exists ... ok
[INFO] [stdout] test scan::tests::tmp_worktree_fallback_matches_exact_top_level_patterns ... ok
[INFO] [stdout] test scan::walker::tests::into_inner_reports_poisoned_drafts_without_panicking ... ok
[INFO] [stdout] test scan::walker::tests::local_drop_marks_poisoned_drafts_without_panicking ... ok
[INFO] [stdout] test scan::walker::tests::local_drop_marks_poisoned_scratch_without_panicking ... ok
[INFO] [stdout] test tui::select::tests::esc_closes_explain_pane_before_cancelling ... ok
[INFO] [stdout] test tui::select::tests::explain_detail_matches_explain_content_for_highlighted_candidate ... ok
[INFO] [stdout] test tui::select::tests::preselects_matching_safe_candidate_by_path ... ok
[INFO] [stdout] test tui::search::tests::fuzzy_matches_in_order ... ok
[INFO] [stdout] test tui::select::tests::question_mark_toggles_explain_pane ... ok
[INFO] [stdout] test scan::walker::tests::into_inner_reports_poisoned_scratch_without_panicking ... ok
[INFO] [stdout] test tui::select::tests::selector_filter_cycles_and_composes_with_search ... ok
[INFO] [stdout] test tui::select::tests::selector_selection_stability_across_sort_and_filter ... ok
[INFO] [stdout] test tui::select::tests::selector_sort_cycles_modes_and_orders_rows ... ok
[INFO] [stdout] test tui::select::tests::selector_header_shows_sort_and_filter ... ok
[INFO] [stdout] test user_rules::tests::caution_without_parent_markers_is_rejected ... ok
[INFO] [stdout] test user_rules::tests::missing_file_yields_empty_set ... ok
[INFO] [stdout] test user_rules::tests::duplicate_rule_id_keeps_first_and_warns ... ok
[INFO] [stdout] test user_rules::tests::mixed_blocked_and_valid_rules_drop_only_the_blocked_one ... ok
[INFO] [stdout] test user_rules::tests::parent_marker_accepts_directory_marker ... ok
[INFO] [stdout] test user_rules::tests::rule_without_parent_marker_does_not_fire_when_marker_missing ... ok
[INFO] [stdout] test watch::tests::maps_lockfile_to_project_root ... ok
[INFO] [stdout] test user_rules::tests::safety_blocked_is_rejected_at_load_time ... ok
[INFO] [stdout] test scan::git_cache::tests::poisoned_by_dir_cache_recomputes_git_info ... ok
[INFO] [stdout] test scan::git_cache::tests::poisoned_non_repos_cache_recomputes_git_info ... ok
[INFO] [stdout] test user_rules::tests::parses_valid_rule_and_matches ... ok
[INFO] [stdout] test scan::tests::scan_sizes_one_large_candidate_and_many_small_projects_deterministically ... ok
[INFO] [stdout] test scan::sizer::tests::wide_directory_uses_parallel_root_and_counts_all_files ... ok
[INFO] [stdout] test graveyard::store::tests::bury_rolls_back_payload_and_grave_dir_when_manifest_append_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 273 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-6fad211ce8dcf5cf)
[INFO] [stdout] 
[INFO] [stdout] running 57 tests
[INFO] [stdout] test agent_optimize_dry_run_prints_codex_update_commands ... ok
[INFO] [stdout] test agent_optimize_requires_an_action_flag ... ok
[INFO] [stdout] test clean_permanent_yes_deletes_safe_candidate ... ok
[INFO] [stdout] test clean_interactive_selection_accepts_number ... ok
[INFO] [stdout] test clean_rejects_audit_log_inside_selected_candidate ... ok
[INFO] [stdout] test clean_tmp_all_rejects_broad_rclean_tmp_roots_without_override ... ok
[INFO] [stdout] test clean_permanent_prints_not_recoverable_summary ... ok
[INFO] [stdout] test clean_permanent_yes_writes_audit_log ... ok
[INFO] [stdout] test clean_tmp_all_rejects_broad_tmpdir_without_override ... ok
[INFO] [stdout] test clean_dry_run_does_not_delete ... ok
[INFO] [stdout] test clean_tmp_all_dry_run_selects_temp_target ... ok
[INFO] [stdout] test doctor_marks_existing_anchor_applicable ... ok
[INFO] [stdout] test doctor_prints_rule_status_table ... ok
[INFO] [stdout] test empty_scan_human_output_suggests_home_or_tmp ... ok
[INFO] [stdout] test explain_emits_risk_score_for_matched_candidate ... ok
[INFO] [stdout] test empty_scan_json_omits_home_tmp_hint ... ok
[INFO] [stdout] test clean_json_suppresses_recovery_summary ... ok
[INFO] [stdout] test explain_skips_risk_score_for_unmatched_path ... ok
[INFO] [stdout] test free_interactive_rejects_json ... ok
[INFO] [stdout] test explain_help_exposes_activity_depth ... ok
[INFO] [stdout] test free_interactive_requires_tty_and_deletes_nothing ... ok
[INFO] [stdout] test clean_plan_uses_permanent_delete_mode_from_plan ... ok
[INFO] [stdout] test agent_doctor_json_runs_for_codex ... ok
[INFO] [stdout] test clean_tmp_worktree_requires_include_caution ... ok
[INFO] [stdout] test help_prints_usage ... ok
[INFO] [stdout] test home_flag_conflicts_with_positional_paths ... ok
[INFO] [stdout] test free_with_no_candidates_exits_3 ... ok
[INFO] [stdout] test free_target_met_writes_plan_and_exits_zero ... ok
[INFO] [stdout] test free_target_unmet_states_the_gap_and_exits_3 ... ok
[INFO] [stdout] test completions_generate_for_all_four_shells ... ok
[INFO] [stdout] test home_flag_expands_to_bun_cache_not_runtime_root ... ok
[INFO] [stdout] test home_flag_expands_to_cargo_root_when_present ... ok
[INFO] [stdout] test home_flag_expands_to_pnpm_cache_roots_when_present ... ok
[INFO] [stdout] test home_flag_reports_obsolete_editor_and_claude_versions_as_caution ... ok
[INFO] [stdout] test home_flag_runs_without_panicking_on_empty_home ... ok
[INFO] [stdout] test home_flag_expands_to_go_cache_roots_when_present ... ok
[INFO] [stdout] test no_subcommand_without_tty_prints_help_and_exits_2 ... ok
[INFO] [stdout] test home_flag_reports_ollama_models_as_report_only_never_selected ... ok
[INFO] [stdout] test home_flag_reports_llama_cpp_cache_as_report_only_never_selected ... ok
[INFO] [stdout] test home_flag_reports_user_tool_safe_caches ... ok
[INFO] [stdout] test home_flag_reports_xdg_browser_and_lint_caches ... ok
[INFO] [stdout] test man_page_renders_roff ... ok
[INFO] [stdout] test rules_lists_every_classifier_emitted_id ... ok
[INFO] [stdout] test scan_help_exposes_git_timeout ... ok
[INFO] [stdout] test home_flag_reports_homebrew_dart_vllm_and_whisper_caches ... ok
[INFO] [stdout] test scan_json_detects_node_modules ... ok
[INFO] [stdout] test scan_table_shows_biggest_wins_and_junk_percent ... ok
[INFO] [stdout] test scan_write_plan_then_clean_plan_dry_run ... ok
[INFO] [stdout] test tmp_flag_runs_without_panicking_on_empty_tmp_root ... ok
[INFO] [stdout] test tmp_flag_scans_rust_targets_under_temp_worktree ... ok
[INFO] [stdout] test tmp_worktree_action_plan_rejects_non_tmp_root ... ok
[INFO] [stdout] test tui_falls_back_to_text_selection_when_alt_screen_unavailable ... ok
[INFO] [stdout] test tmp_flag_conflicts_with_positional_paths_and_home ... ok
[INFO] [stdout] test watch_help_exposes_poll_interval ... ok
[INFO] [stdout] test ruby_vendor_bundle_plan_dry_run_replays_successfully ... ok
[INFO] [stdout] test tmp_worktree_action_plan_revalidates ... ok
[INFO] [stdout] test scan_json_stdout_stays_pure_with_progress_forced_on ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cross_platform.rs (/opt/rustwide/target/debug/deps/cross_platform-6a350022e2517d5d)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test unix::home_prefix_is_collapsed_to_tilde_in_table_output ... ok
[INFO] [stdout] test scan_empty_workspace_emits_valid_json_on_all_platforms ... ok
[INFO] [stdout] test unix::symlink_to_node_modules_is_blocked_on_unix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/docker_report_cli.rs (/opt/rustwide/target/debug/deps/docker_report_cli-3f78e133113c222a)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test docker_report_missing_binary_is_explicit ... ok
[INFO] [stdout] test docker_report_permission_denied_is_explicit ... ok
[INFO] [stdout] test doctor_default_does_not_probe_docker ... ok
[INFO] [stdout] test doctor_docker_probe_reports_missing_binary ... ok
[INFO] [stdout] test docker_report_success_is_report_only_and_never_prunes ... ok
[INFO] [stdout] test docker_report_large_output_is_explicit_error ... ok
[INFO] [stdout] test docker_report_timeout_is_explicit ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/go_clean_cli.rs (/opt/rustwide/target/debug/deps/go_clean_cli-c42197bb401552bf)
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test go_module_cache_clean_uses_go_clean_modcache ... ok
[INFO] [stdout] test go_module_cache_trash_plan_replay_does_not_execute_go ... ok
[INFO] [stdout] test go_module_cache_trash_mode_does_not_execute_go ... ok
[INFO] [stdout] test go_module_cache_dry_run_does_not_execute_go ... ok
[INFO] [stdout] test go_module_cache_plan_replay_uses_go_clean_modcache ... ok
[INFO] [stderr]      Running tests/graveyard_cli.rs (/opt/rustwide/target/debug/deps/graveyard_cli-22c7f83db0e31b6d)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test clean_graveyard_prints_recovery_summary ... ok
[INFO] [stdout] test graveyard_and_permanent_flags_are_mutually_exclusive ... ok
[INFO] [stdout] test clean_graveyard_moves_candidate_and_writes_manifest ... ok
[INFO] [stdout] test clean_graveyard_write_plan_marks_delete_mode ... ok
[INFO] [stdout] test clean_plan_rejects_conflicting_cli_delete_mode ... ok
[INFO] [stdout] test clean_graveyard_plan_replays_into_graveyard_without_flag ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/graveyard_subcommands.rs (/opt/rustwide/target/debug/deps/graveyard_subcommands-16434eb743c25221)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test graveyard_list_empty_returns_exit_3 ... ok
[INFO] [stdout] test restore_moves_payload_back_to_original_path ... ok
[INFO] [stdout] test graveyard_list_table_shows_buried_candidate ... ok
[INFO] [stdout] test graveyard_gc_dry_run_reports_zero_for_fresh_graves ... ok
[INFO] [stdout] test graveyard_list_json_emits_manifest_record ... ok
[INFO] [stdout] test restore_refuses_when_target_already_exists ... ok
[INFO] [stderr]      Running tests/ide_caches_cli.rs (/opt/rustwide/target/debug/deps/ide_caches_cli-f257f137412eb6f2)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test android_sdk_rules_reject_components_avds_and_noncanonical_caches ... ok
[INFO] [stdout] test android_sdk_caches_are_classified_under_exact_anchors ... ok
[INFO] [stdout] test ide_rules_reject_config_plugins_history_projects_sdks_and_avds ... ok
[INFO] [stdout] test home_flag_reports_ide_caches_and_logs_without_app_state ... ok
[INFO] [stdout] test ide_caches_and_logs_are_classified_under_exact_vendor_anchors ... ok
[INFO] [stderr]      Running tests/ignore_file.rs (/opt/rustwide/target/debug/deps/ignore_file-7526c6dd7e034578)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test first_ignore_glob_miss_does_not_block_second_glob_hit ... ok
[INFO] [stdout] test cli_ignore_flag_excludes_candidate ... ok
[INFO] [stdout] test baseline_without_ignore_emits_node_modules ... ok
[INFO] [stdout] test multiple_ignore_flags_layer_on_top_of_each_other ... ok
[INFO] [stdout] test invalid_cli_ignore_glob_fails_scan ... ok
[INFO] [stdout] test rcleanignore_at_root_excludes_deeply_nested_candidate ... ok
[INFO] [stdout] test invalid_rcleanignore_is_reported_as_scan_warning ... ok
[INFO] [stdout] test invalid_rcleanignore_table_reports_warning_summary ... ok
[INFO] [stdout] test rcleanignore_file_excludes_candidate ... ok
[INFO] [stdout] test rcleanignore_negation_re_includes_candidate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/macos_scan_cli.rs (/opt/rustwide/target/debug/deps/macos_scan_cli-bf8e8e2f232c0356)
[INFO] [stderr]      Running tests/pip_clean_cli.rs (/opt/rustwide/target/debug/deps/pip_clean_cli-e7f7a582e451d0b8)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test pip_cache_trash_mode_does_not_execute_pip ... ok
[INFO] [stderr]      Running tests/rules.rs (/opt/rustwide/target/debug/deps/rules-0c44aee3183c0416)
[INFO] [stdout] test pip_cache_clean_uses_pip_cache_purge ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test cargo_cache_outside_cargo_registry_is_not_classified ... ok
[INFO] [stdout] test cargo_git_db_is_classified_under_cargo_git ... ok
[INFO] [stdout] test dart_pub_cache_names_outside_exact_anchor_are_not_classified ... ok
[INFO] [stdout] test docker_daemon_storage_candidates_are_blocked ... ok
[INFO] [stdout] test ai_cache_names_outside_exact_anchors_are_not_classified ... ok
[INFO] [stdout] test cargo_registry_cache_is_classified_under_cargo_registry ... ok
[INFO] [stdout] test generic_coverage_is_classified ... ok
[INFO] [stdout] test dart_pub_caches_are_classified_under_pub_cache ... ok
[INFO] [stdout] test dotnet_bin_and_obj_are_classified ... ok
[INFO] [stdout] test flutter_build_wins_over_node_build_in_mixed_project ... ok
[INFO] [stdout] test homebrew_downloads_outside_exact_anchor_is_not_classified ... ok
[INFO] [stdout] test gradle_caches_is_classified_under_dot_gradle ... ok
[INFO] [stdout] test go_vendor_is_classified ... ok
[INFO] [stdout] test homebrew_downloads_is_classified_under_homebrew_cache ... ok
[INFO] [stdout] test gradle_build_wins_over_node_build_in_mixed_project ... ok
[INFO] [stdout] test ios_pods_is_classified ... ok
[INFO] [stdout] test java_maven_target_is_classified ... ok
[INFO] [stdout] test node_build_is_classified_with_caution_warning ... ok
[INFO] [stdout] test pip_cache_is_classified_under_macos_library_caches ... ok
[INFO] [stdout] test maven_local_repo_is_classified_under_dot_m2 ... ok
[INFO] [stdout] test llama_cpp_cache_is_report_only_under_exact_cache_anchors ... ok
[INFO] [stdout] test pip_cache_is_classified_under_xdg_cache ... ok
[INFO] [stdout] test pnpm_legacy_store_is_classified_under_dot_pnpm_store ... ok
[INFO] [stdout] test pnpm_store_is_classified_under_platform_data_dir ... ok
[INFO] [stdout] test python_pycache_is_classified ... ok
[INFO] [stdout] test npm_cacache_is_classified_under_dot_npm ... ok
[INFO] [stdout] test vllm_compile_cache_and_whisper_models_are_classified_under_xdg_cache ... ok
[INFO] [stdout] test xcode_derived_data_action_plan_replays_successfully ... ok
[INFO] [stdout] test rust_target_is_classified ... ok
[INFO] [stdout] test xcode_derived_data_is_classified_under_library_developer_xcode ... ok
[INFO] [stdout] test xcode_derived_data_safe_candidate_can_be_cleaned ... ok
[INFO] [stdout] test whisper_cpp_and_comfyui_model_stores_are_report_only_with_markers ... ok
[INFO] [stdout] test xcode_derived_data_outside_canonical_path_is_not_classified ... ok
[INFO] [stdout] test ruby_bundle_is_classified ... ok
[INFO] [stdout] test xcode_simulators_is_classified_under_library_developer ... ok
[INFO] [stdout] test yarn_cache_is_classified_under_library_caches ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/stamp_cli.rs (/opt/rustwide/target/debug/deps/stamp_cli-711daaf473b36dee)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/system_cli.rs (/opt/rustwide/target/debug/deps/system_cli-352251b4c701f9c4)
[INFO] [stdout] test stamp_sweep_writes_plan_for_cargo_and_npm ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test clean_plan_requires_sudo_refuses_without_invoking_sudo ... ok
[INFO] [stdout] test system_flag_conflicts_with_positional_paths_home_and_tmp ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/user_rules.rs (/opt/rustwide/target/debug/deps/user_rules-a391b92f33c652a2)
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test user_rule_with_blocked_safety_is_rejected_and_warned ... ok
[INFO] [stdout] test user_rule_skipped_when_parent_marker_missing ... ok
[INFO] [stdout] test user_rule_matches_custom_artifact_directory ... ok
[INFO] [stdout] test user_rule_action_plan_replays_successfully ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807", kill_on_drop: false }`
[INFO] [stdout] a012cb2cd136a2bce5ec040b81398d88067260cce3a0f9bade664fbf788a4807
