[INFO] cloning repository https://github.com/Cklaus1/SmartRm [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Cklaus1/SmartRm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCklaus1%2FSmartRm", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCklaus1%2FSmartRm'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 11ab3f36ba6e30e80618f8ce550137e1560402a0 [INFO] testing Cklaus1/SmartRm against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCklaus1%2FSmartRm" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Cklaus1/SmartRm [INFO] finished tweaking git repo https://github.com/Cklaus1/SmartRm [INFO] tweaked toml for git repo https://github.com/Cklaus1/SmartRm written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Cklaus1/SmartRm on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Cklaus1/SmartRm 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591 [INFO] running `Command { std: "docker" "start" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", 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" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", 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" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling ulid v1.2.1 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling clap_complete v4.6.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling rusqlite v0.31.0 [INFO] [stderr] Compiling smartrm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 48s [INFO] running `Command { std: "docker" "inspect" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", 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" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling rusqlite v0.31.0 [INFO] [stderr] Compiling smartrm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 06s [INFO] running `Command { std: "docker" "inspect" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", 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" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.16s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/deps/smartrm-6ef160acf00c67ee) [INFO] [stdout] [INFO] [stdout] running 141 tests [INFO] [stdout] test commands::config::tests::parse_bool_accepts_valid_values ... ok [INFO] [stdout] test commands::config::tests::config_set_valid_key_persists ... ok [INFO] [stdout] test commands::history::tests::bare_filename_detection ... ok [INFO] [stdout] test commands::config::tests::parse_comma_list_works ... ok [INFO] [stdout] test commands::config::tests::format_bytes_in_config_display ... ok [INFO] [stdout] test commands::config::tests::parse_bool_rejects_invalid ... ok [INFO] [stdout] test commands::list::tests::format_date_fallback ... ok [INFO] [stdout] test commands::list::tests::format_size_bytes ... ok [INFO] [stdout] test commands::list::tests::truncate_path_long ... ok [INFO] [stdout] test commands::list::tests::truncate_path_short ... ok [INFO] [stdout] test commands::list::tests::format_date_rfc3339 ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_asterisk ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_percent ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_underscore ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_question_mark ... ok [INFO] [stdout] test commands::config::tests::config_set_rejects_unknown_key ... ok [INFO] [stdout] test commands::search::tests::is_glob_with_asterisk ... ok [INFO] [stdout] test commands::search::tests::is_glob_with_question_mark ... ok [INFO] [stdout] test commands::search::tests::is_not_glob_for_plain_string ... ok [INFO] [stdout] test commands::search::tests::parse_size_bytes ... ok [INFO] [stdout] test commands::search::tests::parse_size_gigabytes ... ok [INFO] [stdout] test commands::search::tests::parse_size_invalid ... ok [INFO] [stdout] test commands::search::tests::parse_size_kilobytes ... ok [INFO] [stdout] test commands::search::tests::parse_size_megabytes ... ok [INFO] [stdout] test commands::config::tests::config_set_validates_types ... ok [INFO] [stdout] test commands::config::tests::config_roundtrip_set_and_reload ... ok [INFO] [stdout] test db::operations::tests::insert_and_get_batch_round_trip ... ok [INFO] [stdout] test db::operations::tests::get_archive_objects_for_batch_works ... ok [INFO] [stdout] test db::operations::tests::get_latest_delete_batch_returns_most_recent ... ok [INFO] [stdout] test db::operations::tests::update_batch_status_works ... ok [INFO] [stdout] test db::operations::tests::insert_and_get_batch_items ... ok [INFO] [stdout] test db::operations::tests::update_archive_object_state_sets_timestamp ... ok [INFO] [stdout] test db::schema::tests::initialize_is_idempotent ... ok [INFO] [stdout] test db::schema::tests::initialize_creates_all_tables ... ok [INFO] [stdout] test fs::hashing::tests::test_hash_reader_empty ... ok [INFO] [stdout] test fs::hashing::tests::test_hash_reader_known_digest ... ok [INFO] [stdout] test fs::restore::tests::restore_mode_sets_permissions ... ok [INFO] [stdout] test db::operations::tests::insert_and_get_archive_object_round_trip ... ok [INFO] [stdout] test fs::restore::tests::restore_mtime_sets_timestamp ... ok [INFO] [stdout] test gate::agent_detection::tests::ci_true_is_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::clean_environment_is_not_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::empty_ci_var_is_not_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::github_actions_is_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::term_dumb_is_agent ... ok [INFO] [stdout] test gate::auth::tests::phrase_generation ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_case_sensitive ... ok [INFO] [stdout] test gate::agent_detection::tests::smartrm_agent_mode_is_agent ... ok [INFO] [stdout] test gate::auth::tests::verify_passphrase_invalid_hash ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_mismatch ... ok [INFO] [stdout] test gate::cooldown::tests::fresh_state_not_locked ... ok [INFO] [stdout] test gate::cooldown::tests::one_failure_not_locked ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_exact ... ok [INFO] [stdout] test gate::cooldown::tests::success_resets_state ... ok [INFO] [stdout] test gate::cooldown::tests::three_failures_locked ... ok [INFO] [stdout] test gate::cooldown::tests::two_failures_not_locked ... ok [INFO] [stdout] test gate::scope_preview::tests::basic_scope_preview ... ok [INFO] [stdout] test gate::scope_preview::tests::examples_truncated_at_five ... ok [INFO] [stdout] test gate::scope_preview::tests::protected_paths_shown ... ok [INFO] [stdout] test gate::scope_preview::tests::single_object_no_plural ... ok [INFO] [stdout] test gate::agent_detection::tests::term_xterm_is_not_agent ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_with_whitespace ... ok [INFO] [stdout] test gate::cooldown::tests::cooldown_expires ... ok [INFO] [stdout] test gate::audit::tests::log_and_count_attempts ... ok [INFO] [stdout] test gate::tests::agent_detected_denied ... ok [INFO] [stdout] test gate::tests::config_disabled_blocks_all ... ok [INFO] [stdout] test gate::tests::audit_log_records_both_outcomes ... ok [INFO] [stdout] test gate::tests::config_interactive_only_yes ... ok [INFO] [stdout] test gate::tests::config_interactive_only_no ... ok [INFO] [stdout] test gate::tests::correct_phrase_allowed ... ok [INFO] [stdout] test gate::tests::agent_detection_disabled_allows_ci ... ok [INFO] [stdout] test gate::tests::no_tty_denied ... ok [INFO] [stdout] test id::tests::new_id_is_lowercase_ulid ... ok [INFO] [stdout] test gate::tests::elevated_correct_phrase_then_confirmation ... ok [INFO] [stdout] test gate::tests::simple_confirm_no ... ok [INFO] [stdout] test gate::tests::elevated_wrong_elevated_phrase_denied ... ok [INFO] [stdout] test id::tests::short_id_short_input ... ok [INFO] [stdout] test id::tests::short_id_truncates ... ok [INFO] [stdout] test gate::tests::wrong_phrase_denied ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_days ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_hours ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_zero ... ok [INFO] [stdout] test operations::cleanup::tests::cleanup_empty_archive ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_invalid ... ok [INFO] [stdout] test gate::tests::simple_confirm_yes ... ok [INFO] [stdout] test operations::delete::tests::directory_without_r_or_d_fails ... ok [INFO] [stdout] test operations::cleanup::tests::cleanup_skips_protected ... ok [INFO] [stdout] test operations::delete::tests::format_human_empty_on_all_success ... ok [INFO] [stdout] test operations::delete::tests::format_human_only_shows_failures ... ok [INFO] [stdout] test operations::delete::tests::dir_flag_allows_empty_directory ... ok [INFO] [stdout] test operations::cleanup::tests::cleanup_filters_expired_only ... ok [INFO] [stdout] test operations::delete::tests::force_skips_missing_files ... ok [INFO] [stdout] test operations::delete::tests::missing_file_without_force_fails ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_first_conflict ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_multiple_conflicts ... ok [INFO] [stdout] test operations::purge::tests::purge_all_force_transitions_to_purged ... ok [INFO] [stdout] test operations::purge::tests::purge_empty_archive ... ok [INFO] [stdout] test operations::restore::tests::resolve_target_by_id_exact_match ... ok [INFO] [stdout] test operations::delete::tests::dir_flag_rejects_nonempty_directory ... ok [INFO] [stdout] test operations::restore::tests::restore_filters_non_restorable_states ... ok [INFO] [stdout] test output::human::tests::format_bytes_gb ... ok [INFO] [stdout] test output::human::tests::format_bytes_kb ... ok [INFO] [stdout] test operations::purge::tests::purge_requires_all_or_force ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_extension ... ok [INFO] [stdout] test output::human::tests::format_bytes_mb ... ok [INFO] [stdout] test policy::classifier::tests::classify_credential_file_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_dot_env_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_dot_env_local_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_emacs_autosave_as_temp ... ok [INFO] [stdout] test policy::classifier::tests::classify_git_dir_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_node_modules_as_build ... ok [INFO] [stdout] test policy::classifier::tests::classify_normal_file_as_safe ... ok [INFO] [stdout] test policy::classifier::tests::classify_object_file_as_build ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_conflict ... ok [INFO] [stdout] test policy::classifier::tests::classify_home_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_pycache_as_build ... ok [INFO] [stdout] test policy::classifier::tests::classify_python_file_as_content ... ok [INFO] [stdout] test policy::classifier::tests::classify_rust_file_as_content ... ok [INFO] [stdout] test policy::classifier::tests::classify_secret_file_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_ssh_dir_as_warning ... ok [INFO] [stdout] test output::human::tests::format_bytes_small ... ok [INFO] [stdout] test policy::classifier::tests::classify_system_dir_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_tilde_backup_as_temp ... ok [INFO] [stdout] test policy::classifier::tests::classify_pem_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_root_as_blocked ... ok [INFO] [stdout] test operations::restore::tests::resolve_target_by_prefix ... ok [INFO] [stdout] test operations::restore::tests::resolve_target_no_match ... ok [INFO] [stdout] test policy::config::tests::config_deserializes_from_partial_json ... ok [INFO] [stdout] test policy::config::tests::db_path_uses_data_dir ... ok [INFO] [stdout] test policy::config::tests::default_config_has_sane_defaults ... ok [INFO] [stdout] test policy::classifier::tests::classify_tmp_file_as_temp ... ok [INFO] [stdout] test policy::config::tests::archive_dir_uses_data_dir ... ok [INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_archive_root ... ok [INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_env ... ok [INFO] [stdout] test policy::resolver::tests::config_ttl_is_propagated ... ok [INFO] [stdout] test policy::resolver::tests::temp_tag_sets_temp_intent ... ok [INFO] [stdout] test policy::resolver::tests::build_tag_sets_cleanup_intent ... ok [INFO] [stdout] test policy::resolver::tests::permanent_flag_overrides_config ... ok [INFO] [stdout] test policy::resolver::tests::default_policy_uses_archive_mode ... ok [INFO] [stdout] test policy::resolver::tests::content_tag_has_no_intent ... ok [INFO] [stdout] test commands::config::tests::hash_and_verify_passphrase_roundtrip ... ok [INFO] [stdout] test gate::auth::tests::passphrase_hash_and_verify ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/smartrm-8b61b91532f53a98) [INFO] [stdout] [INFO] [stdout] running 141 tests [INFO] [stdout] test commands::config::tests::config_roundtrip_set_and_reload ... ok [INFO] [stdout] test commands::config::tests::config_set_validates_types ... ok [INFO] [stdout] test commands::config::tests::parse_comma_list_works ... ok [INFO] [stdout] test commands::config::tests::format_bytes_in_config_display ... ok [INFO] [stdout] test commands::config::tests::parse_bool_accepts_valid_values ... ok [INFO] [stdout] test commands::config::tests::parse_bool_rejects_invalid ... ok [INFO] [stdout] test commands::config::tests::config_set_valid_key_persists ... ok [INFO] [stdout] test commands::config::tests::config_set_rejects_unknown_key ... ok [INFO] [stdout] test commands::list::tests::format_date_fallback ... ok [INFO] [stdout] test commands::list::tests::format_date_rfc3339 ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_underscore ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_question_mark ... ok [INFO] [stdout] test commands::search::tests::is_glob_with_asterisk ... ok [INFO] [stdout] test commands::list::tests::format_size_bytes ... ok [INFO] [stdout] test commands::list::tests::truncate_path_long ... ok [INFO] [stdout] test commands::list::tests::truncate_path_short ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_asterisk ... ok [INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_percent ... ok [INFO] [stdout] test commands::search::tests::is_glob_with_question_mark ... ok [INFO] [stdout] test commands::search::tests::is_not_glob_for_plain_string ... ok [INFO] [stdout] test commands::search::tests::parse_size_bytes ... ok [INFO] [stdout] test commands::search::tests::parse_size_gigabytes ... ok [INFO] [stdout] test commands::search::tests::parse_size_invalid ... ok [INFO] [stdout] test commands::search::tests::parse_size_kilobytes ... ok [INFO] [stdout] test commands::search::tests::parse_size_megabytes ... ok [INFO] [stdout] test commands::history::tests::bare_filename_detection ... ok [INFO] [stdout] test db::operations::tests::insert_and_get_batch_items ... ok [INFO] [stdout] test db::operations::tests::insert_and_get_archive_object_round_trip ... ok [INFO] [stdout] test db::operations::tests::get_archive_objects_for_batch_works ... ok [INFO] [stdout] test db::operations::tests::insert_and_get_batch_round_trip ... ok [INFO] [stdout] test fs::hashing::tests::test_hash_reader_known_digest ... ok [INFO] [stdout] test db::operations::tests::get_latest_delete_batch_returns_most_recent ... ok [INFO] [stdout] test db::operations::tests::update_batch_status_works ... ok [INFO] [stdout] test db::operations::tests::update_archive_object_state_sets_timestamp ... ok [INFO] [stdout] test fs::restore::tests::restore_mode_sets_permissions ... ok [INFO] [stdout] test fs::restore::tests::restore_mtime_sets_timestamp ... ok [INFO] [stdout] test gate::agent_detection::tests::empty_ci_var_is_not_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::github_actions_is_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::smartrm_agent_mode_is_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::term_dumb_is_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::term_xterm_is_not_agent ... ok [INFO] [stdout] test fs::hashing::tests::test_hash_reader_empty ... ok [INFO] [stdout] test gate::auth::tests::phrase_generation ... ok [INFO] [stdout] test gate::agent_detection::tests::ci_true_is_agent ... ok [INFO] [stdout] test gate::agent_detection::tests::clean_environment_is_not_agent ... ok [INFO] [stdout] test db::schema::tests::initialize_creates_all_tables ... ok [INFO] [stdout] test gate::audit::tests::log_and_count_attempts ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_case_sensitive ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_exact ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_mismatch ... ok [INFO] [stdout] test gate::auth::tests::phrase_verification_with_whitespace ... ok [INFO] [stdout] test gate::auth::tests::verify_passphrase_invalid_hash ... ok [INFO] [stdout] test gate::cooldown::tests::three_failures_locked ... ok [INFO] [stdout] test gate::cooldown::tests::two_failures_not_locked ... ok [INFO] [stdout] test db::schema::tests::initialize_is_idempotent ... ok [INFO] [stdout] test gate::scope_preview::tests::examples_truncated_at_five ... ok [INFO] [stdout] test gate::scope_preview::tests::protected_paths_shown ... ok [INFO] [stdout] test gate::scope_preview::tests::single_object_no_plural ... ok [INFO] [stdout] test gate::cooldown::tests::cooldown_expires ... ok [INFO] [stdout] test gate::cooldown::tests::fresh_state_not_locked ... ok [INFO] [stdout] test gate::cooldown::tests::one_failure_not_locked ... ok [INFO] [stdout] test gate::cooldown::tests::success_resets_state ... ok [INFO] [stdout] test gate::scope_preview::tests::basic_scope_preview ... ok [INFO] [stdout] test gate::tests::agent_detected_denied ... ok [INFO] [stdout] test gate::tests::agent_detection_disabled_allows_ci ... ok [INFO] [stdout] test gate::tests::audit_log_records_both_outcomes ... ok [INFO] [stdout] test gate::tests::config_disabled_blocks_all ... ok [INFO] [stdout] test gate::tests::config_interactive_only_yes ... ok [INFO] [stdout] test gate::tests::config_interactive_only_no ... ok [INFO] [stdout] test gate::tests::correct_phrase_allowed ... ok [INFO] [stdout] test gate::tests::elevated_wrong_elevated_phrase_denied ... ok [INFO] [stdout] test gate::tests::no_tty_denied ... ok [INFO] [stdout] test id::tests::short_id_short_input ... ok [INFO] [stdout] test id::tests::short_id_truncates ... ok [INFO] [stdout] test gate::tests::simple_confirm_no ... ok [INFO] [stdout] test gate::tests::elevated_correct_phrase_then_confirmation ... ok [INFO] [stdout] test gate::tests::wrong_phrase_denied ... ok [INFO] [stdout] test operations::cleanup::tests::cleanup_empty_archive ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_days ... ok [INFO] [stdout] test gate::tests::simple_confirm_yes ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_hours ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_invalid ... ok [INFO] [stdout] test operations::cleanup::tests::parse_duration_zero ... ok [INFO] [stdout] test operations::cleanup::tests::cleanup_filters_expired_only ... ok [INFO] [stdout] test operations::cleanup::tests::cleanup_skips_protected ... ok [INFO] [stdout] test operations::delete::tests::dir_flag_allows_empty_directory ... ok [INFO] [stdout] test operations::delete::tests::directory_without_r_or_d_fails ... ok [INFO] [stdout] test id::tests::new_id_is_lowercase_ulid ... ok [INFO] [stdout] test operations::delete::tests::format_human_only_shows_failures ... ok [INFO] [stdout] test operations::delete::tests::dir_flag_rejects_nonempty_directory ... ok [INFO] [stdout] test operations::delete::tests::force_skips_missing_files ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_first_conflict ... ok [INFO] [stdout] test operations::delete::tests::missing_file_without_force_fails ... ok [INFO] [stdout] test operations::delete::tests::format_human_empty_on_all_success ... ok [INFO] [stdout] test operations::purge::tests::purge_all_force_transitions_to_purged ... ok [INFO] [stdout] test operations::purge::tests::purge_empty_archive ... ok [INFO] [stdout] test operations::purge::tests::purge_requires_all_or_force ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_multiple_conflicts ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_extension ... ok [INFO] [stdout] test output::human::tests::format_bytes_gb ... ok [INFO] [stdout] test operations::restore::tests::resolve_target_by_prefix ... ok [INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_conflict ... ok [INFO] [stdout] test output::human::tests::format_bytes_mb ... ok [INFO] [stdout] test output::human::tests::format_bytes_small ... ok [INFO] [stdout] test policy::classifier::tests::classify_dot_env_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_dot_env_local_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_emacs_autosave_as_temp ... ok [INFO] [stdout] test policy::classifier::tests::classify_git_dir_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_home_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_node_modules_as_build ... ok [INFO] [stdout] test policy::classifier::tests::classify_normal_file_as_safe ... ok [INFO] [stdout] test policy::classifier::tests::classify_object_file_as_build ... ok [INFO] [stdout] test operations::restore::tests::restore_filters_non_restorable_states ... ok [INFO] [stdout] test policy::classifier::tests::classify_credential_file_as_protected ... ok [INFO] [stdout] test policy::classifier::tests::classify_pem_as_protected ... ok [INFO] [stdout] test output::human::tests::format_bytes_kb ... ok [INFO] [stdout] test operations::restore::tests::resolve_target_no_match ... ok [INFO] [stdout] test policy::classifier::tests::classify_python_file_as_content ... ok [INFO] [stdout] test policy::classifier::tests::classify_ssh_dir_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_system_dir_as_warning ... ok [INFO] [stdout] test policy::classifier::tests::classify_tilde_backup_as_temp ... ok [INFO] [stdout] test policy::classifier::tests::classify_tmp_file_as_temp ... ok [INFO] [stdout] test policy::config::tests::archive_dir_uses_data_dir ... ok [INFO] [stdout] test policy::config::tests::config_deserializes_from_partial_json ... ok [INFO] [stdout] test policy::config::tests::db_path_uses_data_dir ... ok [INFO] [stdout] test policy::config::tests::default_config_has_sane_defaults ... ok [INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_archive_root ... ok [INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_env ... ok [INFO] [stdout] test policy::resolver::tests::build_tag_sets_cleanup_intent ... ok [INFO] [stdout] test policy::resolver::tests::config_ttl_is_propagated ... ok [INFO] [stdout] test policy::resolver::tests::content_tag_has_no_intent ... ok [INFO] [stdout] test policy::classifier::tests::classify_root_as_blocked ... ok [INFO] [stdout] test policy::resolver::tests::permanent_flag_overrides_config ... ok [INFO] [stdout] test policy::resolver::tests::temp_tag_sets_temp_intent ... ok [INFO] [stdout] test policy::classifier::tests::classify_pycache_as_build ... ok [INFO] [stdout] test policy::classifier::tests::classify_rust_file_as_content ... ok [INFO] [stdout] test policy::resolver::tests::default_policy_uses_archive_mode ... ok [INFO] [stdout] test policy::classifier::tests::classify_secret_file_as_protected ... ok [INFO] [stdout] test operations::restore::tests::resolve_target_by_id_exact_match ... ok [INFO] [stdout] test commands::config::tests::hash_and_verify_passphrase_roundtrip ... ok [INFO] [stdout] test gate::auth::tests::passphrase_hash_and_verify ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stderr] Running tests/db_error_tests.rs (/opt/rustwide/target/release/deps/db_error_tests-a59d9400f0b83dec) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test fk_constraint_violation_on_missing_batch ... ok [INFO] [stdout] test duplicate_pk_violation ... ok [INFO] [stdout] test invalid_state_value_rejected_by_check_constraint ... ok [INFO] [stdout] test state_transition_updates_correctly ... ok [INFO] [stdout] test transaction_rollback_on_error ... ok [INFO] [stderr] Running tests/e2e_cli.rs (/opt/rustwide/target/release/deps/e2e_cli-f7e5cf7e4fb60f31) [INFO] [stdout] test concurrent_writes_on_file_db ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 44 tests [INFO] [stdout] test e2e_config_shows_defaults ... ok [INFO] [stdout] test e2e_cleanup_dryrun_not_blocked ... ok [INFO] [stdout] test e2e_completions_bash ... ok [INFO] [stdout] test e2e_config_set_and_show ... ok [INFO] [stdout] test e2e_delete_broken_symlink ... ok [INFO] [stdout] test e2e_cleanup_dry_run ... ok [INFO] [stdout] test e2e_delete_git_dir_warns ... ok [INFO] [stdout] test e2e_delete_json_output ... ok [INFO] [stdout] test e2e_delete_directory_without_r_fails ... ok [INFO] [stdout] test e2e_delete_directory ... ok [INFO] [stdout] test e2e_delete_multiple_files ... ok [INFO] [stdout] test e2e_delete_nonexistent_file_fails ... ok [INFO] [stdout] test e2e_delete_root_blocked ... ok [INFO] [stdout] test e2e_delete_nonexistent_with_force ... ok [INFO] [stdout] test e2e_delete_single_file ... ok [INFO] [stdout] test e2e_delete_symlink ... ok [INFO] [stdout] test e2e_cleanup_blocked_without_tty ... ok [INFO] [stdout] test e2e_delete_with_verbose ... ok [INFO] [stdout] test e2e_double_dash_literal_filename ... ok [INFO] [stdout] test e2e_empty_dir_with_d_flag ... ok [INFO] [stdout] test e2e_exit_code_0_on_success ... ok [INFO] [stdout] test e2e_exit_code_2_on_empty_search ... ok [INFO] [stdout] test e2e_exit_code_1_on_error ... ok [INFO] [stdout] test e2e_cleanup_actually_purges_is_gated ... ok [INFO] [stdout] test e2e_list_empty ... ok [INFO] [stdout] test e2e_explain_policy ... ok [INFO] [stdout] test e2e_list_shows_archived ... ok [INFO] [stdout] test e2e_list_json_output ... ok [INFO] [stdout] test e2e_permanent_force_still_blocked_without_tty ... ok [INFO] [stdout] test e2e_normal_archive_not_blocked ... ok [INFO] [stdout] test e2e_permanent_blocked_without_tty ... ok [INFO] [stdout] test e2e_history_shows_versions ... ok [INFO] [stdout] test e2e_list_with_state_filter ... ok [INFO] [stdout] test e2e_restore_by_short_id ... ok [INFO] [stdout] test e2e_purge_blocked_without_tty ... ok [INFO] [stdout] test e2e_search_no_results ... ok [INFO] [stdout] test e2e_purge_expired_blocked_without_tty ... ok [INFO] [stdout] test e2e_search_glob ... ok [INFO] [stdout] test e2e_search_substring ... ok [INFO] [stdout] test e2e_restore_to_alternate_path ... ok [INFO] [stdout] test e2e_stats_shows_counts ... ok [INFO] [stdout] test e2e_timeline_shows_batches ... ok [INFO] [stdout] test e2e_undo_restores_file ... ok [INFO] [stdout] test e2e_undo_nothing_to_undo ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s [INFO] [stdout] [INFO] [stderr] Running tests/lifecycle_scenarios.rs (/opt/rustwide/target/release/deps/lifecycle_scenarios-0f02ec999afd36a4) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test scenario_1_delete_restore_delete_restore_second_version ... ok [INFO] [stdout] test scenario_4_multi_file_delete_and_undo ... ok [INFO] [stdout] test scenario_5_restore_to_alternate_path ... ok [INFO] [stdout] test scenario_3_delete_cleanup_restore_fails ... ok [INFO] [stdout] test scenario_2_delete_partial_restore_then_undo ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/user_journeys.rs (/opt/rustwide/target/release/deps/user_journeys-8768b80c026b90a6) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test journey_delete_entire_project_and_undo ... ok [INFO] [stdout] test journey_first_time_setup ... ok [INFO] [stdout] test journey_multiple_versions_of_same_file ... ok [INFO] [stdout] test journey_find_old_file_and_restore_by_id ... ok [INFO] [stdout] test journey_partial_failure_and_recovery ... ok [INFO] [stdout] test journey_accidental_delete_and_immediate_undo ... ok [INFO] [stdout] test journey_archive_cleanup ... ok [INFO] [stdout] test journey_conflict_resolution ... ok [INFO] [stdout] test journey_restore_to_different_location ... ok [INFO] [stdout] test journey_restore_everything ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Doc-tests smartrm [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] running `Command { std: "docker" "inspect" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591", kill_on_drop: false }` [INFO] [stdout] 774c308c7a32192bc5ed3f697ed5ce3e440a7c51b3aecca23fd7997880c75591