[INFO] cloning repository https://github.com/cosentinode/bitbygit [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cosentinode/bitbygit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcosentinode%2Fbitbygit", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcosentinode%2Fbitbygit'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 781bf321a241cb83382a030d840ed510d3a48539 [INFO] testing cosentinode/bitbygit against 1.100.0-beta.1 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcosentinode%2Fbitbygit" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/cosentinode/bitbygit [INFO] finished tweaking git repo https://github.com/cosentinode/bitbygit [INFO] tweaked toml for git repo https://github.com/cosentinode/bitbygit written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cosentinode/bitbygit 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 git repo https://github.com/cosentinode/bitbygit 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] 419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf [INFO] running `Command { std: "docker" "start" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", 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" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf" "/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" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", 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" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.46 [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling rustversion v1.0.23 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling instability v0.3.10 [INFO] [stderr] Compiling either v1.16.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling compact_str v0.8.2 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling bitbygit-git v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-git) [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling bitbygit-gh v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-gh) [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling bitbygit-core v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-core) [INFO] [stderr] Compiling bitbygit-store v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-store) [INFO] [stderr] Compiling bitbygit-tui v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-tui) [INFO] [stderr] Compiling bitbygit v0.1.0 (/opt/rustwide/workdir/crates/bitbygit) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s [INFO] running `Command { std: "docker" "inspect" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", 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" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf" "/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 bitbygit-store v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-store) [INFO] [stderr] Compiling bitbygit-gh v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-gh) [INFO] [stderr] Compiling bitbygit-core v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-core) [INFO] [stderr] Compiling bitbygit-git v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-git) [INFO] [stderr] Compiling bitbygit-tui v0.1.0 (/opt/rustwide/workdir/crates/bitbygit-tui) [INFO] [stderr] Compiling bitbygit v0.1.0 (/opt/rustwide/workdir/crates/bitbygit) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 15.54s [INFO] running `Command { std: "docker" "inspect" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", 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" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf" "/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.15s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/build/bitbygit/9d7d3af2ccfa43ab/out/bitbygit-9d7d3af2ccfa43ab) [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/bitbygit-core/97bd35d7cdb5e4f7/out/bitbygit_core-97bd35d7cdb5e4f7) [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 25 tests [INFO] [stdout] test config::tests::unknown_keys_and_enum_values_are_rejected_without_retaining_contents ... ok [INFO] [stdout] test config::tests::git_invalid_branch_name_boundaries_are_rejected ... ok [INFO] [stdout] test policy::tests::configured_protected_branches_are_additive_and_malformed_patterns_are_ignored ... ok [INFO] [stdout] test config::tests::failure_fallback_is_complete_and_fail_closed ... ok [INFO] [stdout] test policy::tests::built_in_protected_branches_use_exact_and_prefix_boundaries ... ok [INFO] [stdout] test config::tests::empty_config_uses_complete_safe_defaults ... ok [INFO] [stdout] test policy::tests::prompt_policy_only_exposes_enablement ... ok [INFO] [stdout] test policy::tests::disabled_families_cover_every_internal_operation_variant ... ok [INFO] [stdout] test policy::tests::evaluator_defensively_clamps_unvalidated_confirmation_settings ... ok [INFO] [stdout] test policy::tests::safe_fallback_blocks_every_operation_and_prompt ... ok [INFO] [stdout] test prompt_parser::tests::parses_request_sequences_without_shell_text ... ok [INFO] [stdout] test prompt_parser::tests::preserves_connectors_inside_quotes ... ok [INFO] [stdout] test prompt_parser::tests::parses_supported_single_step_golden_prompts ... ok [INFO] [stdout] test prompt_parser::tests::shell_like_prompts_reject_the_whole_prompt ... ok [INFO] [stdout] test prompt_parser::tests::rejects_unsupported_golden_prompts ... ok [INFO] [stdout] test prompt_parser::tests::unclosed_quotes_fail_closed ... ok [INFO] [stdout] test tests::exposes_app_identity ... ok [INFO] [stdout] test config::tests::git_valid_branch_name_boundaries_and_wildcards_are_accepted ... ok [INFO] [stdout] test tests::risk_levels_match_guardrail_confirmation_policy ... ok [INFO] [stdout] test config::tests::valid_toml_produces_typed_settings ... ok [INFO] [stdout] test config::tests::values_that_weaken_or_ambiguate_policy_are_rejected ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/bitbygit-gh/d8ce041f5774de08/out/bitbygit_gh-d8ce041f5774de08) [INFO] [stdout] test policy::tests::confirmation_settings_only_escalate_risk_requirements ... ok [INFO] [stdout] test policy::tests::protected_branches_add_operation_specific_reasons_and_minimums ... ok [INFO] [stdout] test policy::tests::pull_request_default_is_available_to_runtime_planning ... ok [INFO] [stdout] test tests::operation_plan_preview_comes_from_steps ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test tests::creates_pull_request_with_literal_shell_metacharacters_in_title ... ok [INFO] [stdout] test tests::enterprise_auth_failure_names_the_selected_host ... ok [INFO] [stdout] test tests::missing_cli_has_install_guidance ... ok [INFO] [stdout] test tests::auth_failure_has_login_guidance ... ok [INFO] [stdout] test tests::auth_check_ignores_a_stale_account_on_another_host ... ok [INFO] [stdout] test tests::fake_gh_executes_reliably_in_parallel ... ok [INFO] [stdout] test tests::checks_encoded_base_branch_reference ... ok [INFO] [stdout] test tests::decodes_rest_existing_pull_request_responses ... ok [INFO] [stdout] test tests::rest_queries_pin_github_com_when_gh_host_conflicts ... ok [INFO] [stdout] test tests::setup_checks_do_not_expose_command_output ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/bitbygit-git/48b0a38d32d87480/out/bitbygit_git-48b0a38d32d87480) [INFO] [stdout] test tests::enterprise_commands_are_scoped_to_the_selected_host ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 117 tests [INFO] [stdout] test tests::branch_target_blocks_ambiguous_local_and_remote_names ... ok [INFO] [stdout] test tests::cherry_pick_and_revert_markers_remain_blocking ... ok [INFO] [stdout] test tests::branch_workflows_block_dirty_tree ... ok [INFO] [stdout] test tests::commit_staged_tree_blocks_configured_commit_hooks ... ok [INFO] [stdout] test tests::commit_staged_tree_blocks_empty_commit ... ok [INFO] [stdout] test tests::commit_staged_tree_blocks_gpgsign_policy ... ok [INFO] [stdout] test tests::commits_staged_changes_with_message ... ok [INFO] [stdout] test tests::commit_message_is_passed_without_shell_execution ... ok [INFO] [stdout] test tests::commit_staged_tree_rejects_changed_head ... ok [INFO] [stdout] test tests::detects_both_rebase_backends_and_no_operation_in_clean_repo ... ok [INFO] [stdout] test tests::commit_staged_tree_rejects_changed_head_ref ... ok [INFO] [stdout] test tests::branch_workflows_block_in_progress_rebase ... ok [INFO] [stdout] test tests::detects_conflicts_in_temp_repo ... ok [INFO] [stdout] test tests::commit_staged_tree_uses_confirmed_tree ... ok [INFO] [stdout] test tests::branch_workflows_create_checkout_merge_and_rebase ... ok [INFO] [stdout] test tests::apply_rebase_continue_and_skip_fail_closed_without_filters_or_overwrites ... ok [INFO] [stdout] test tests::exact_recovery_rechecks_index_after_first_final_fence_pass ... ok [INFO] [stdout] test tests::exact_recovery_rechecks_process_config_after_first_final_fence_pass ... ok [INFO] [stdout] test tests::exact_recovery_rejects_changed_merge_autostash ... ok [INFO] [stdout] test tests::exact_recovery_rejects_changed_merge_control_input ... ok [INFO] [stdout] test tests::fetch_preserves_inherited_ssh_command ... ok [INFO] [stdout] test tests::exact_recovery_rejects_changed_untracked_contents ... ok [INFO] [stdout] test tests::exact_recovery_rejects_filter_activated_at_spawn_boundary ... ok [INFO] [stdout] test tests::parses_branches_and_skips_remote_head ... ok [INFO] [stdout] test tests::parses_clean_status ... ok [INFO] [stdout] test tests::parses_conflicted_file ... ok [INFO] [stdout] test tests::parses_copied_file ... ok [INFO] [stdout] test tests::parses_detached_head ... ok [INFO] [stdout] test tests::parses_dirty_unstaged_file ... ok [INFO] [stdout] test tests::parses_nul_delimited_raw_paths ... ok [INFO] [stdout] test tests::parses_nul_delimited_rename ... ok [INFO] [stdout] test tests::parses_remotes ... ok [INFO] [stdout] test tests::parses_renamed_file ... ok [INFO] [stdout] test tests::parses_staged_file ... ok [INFO] [stdout] test tests::parses_unborn_branch ... ok [INFO] [stdout] test tests::parses_untracked_file ... ok [INFO] [stdout] test tests::paused_am_is_not_reported_as_rebase_and_remains_blocking ... ok [INFO] [stdout] test tests::merge_abort_blocks_ignored_collision_omitted_from_endpoint_diff ... ok [INFO] [stdout] test tests::push_target_uses_default_simple_in_triangular_workflow ... ok [INFO] [stdout] test tests::push_current_branch_set_upstream_sets_tracking_branch ... ok [INFO] [stdout] test tests::exact_merge_abort_allows_large_unrelated_ignored_build_tree ... ok [INFO] [stdout] test tests::reads_raw_paths_from_temp_repo ... ok [INFO] [stdout] test tests::reads_non_utf8_repository_root ... ok [INFO] [stdout] test tests::reads_non_utf8_paths_from_temp_repo ... ok [INFO] [stdout] test tests::reads_repository_root_ending_in_carriage_return ... ok [INFO] [stdout] test tests::reads_renames_from_temp_repo ... ok [INFO] [stdout] test tests::reads_repository_state_from_temp_repo ... ok [INFO] [stdout] test tests::exact_recovery_rejects_merge_todo_retained_after_preliminary_scan ... ok [INFO] [stdout] test tests::merge_abort_clears_operation_and_restores_head ... ok [INFO] [stdout] test tests::rebase_abort_rejects_filter_selected_only_by_target_tree ... ok [INFO] [stdout] test tests::merge_continue_requires_resolution_and_finishes_without_an_editor ... ok [INFO] [stdout] test tests::exact_recovery_surfaces_standard_git_lock_failure ... ok [INFO] [stdout] test tests::rebase_abort_blocks_ignored_collision_path ... ok [INFO] [stdout] test tests::exact_recovery_rechecks_process_control_after_first_final_fence_pass ... ok [INFO] [stdout] test tests::rebase_abort_clears_operation_and_restores_head ... ok [INFO] [stdout] test tests::recovery_fingerprint_applies_process_policy_to_exact_control_observation ... ok [INFO] [stdout] test tests::rebase_continue_blocks_ignored_path_touched_only_by_intermediate_commits ... ok [INFO] [stdout] test tests::recovery_fingerprint_rejects_fifo_without_blocking ... ok [INFO] [stdout] test tests::rebase_skip_blocks_ignored_path_tracked_unchanged_at_head ... ok [INFO] [stdout] test tests::recovery_fingerprint_rejects_synchronized_directory_replacement ... ok [INFO] [stdout] test tests::recovery_fingerprint_rejects_synchronized_symlink_retarget ... ok [INFO] [stdout] test tests::rebase_skip_drops_the_conflicting_commit ... ok [INFO] [stdout] test tests::rebase_merges_targets_fail_closed_without_filters_or_overwrites ... ok [INFO] [stdout] test tests::recovery_fingerprint_rejects_swapped_executable_hook_observation ... ok [INFO] [stdout] test tests::rebase_continue_reports_the_next_conflict_then_finishes ... ok [INFO] [stdout] test tests::recovery_fingerprint_streams_large_binary_diffs_into_fixed_state ... ok [INFO] [stdout] test tests::recovery_git_invocation_disables_automatic_maintenance ... ok [INFO] [stdout] test tests::recovery_allows_inactive_global_lfs_configuration ... ok [INFO] [stdout] test tests::recovery_lock_survives_git_directory_replacement ... ok [INFO] [stdout] test tests::recovery_output_drainer_retains_only_hard_bounded_memory ... ok [INFO] [stdout] test tests::recovery_planning_rejects_fsmonitor_before_it_runs ... ok [INFO] [stdout] test tests::recovery_fingerprint_tracks_symlinked_hook_target_contents ... ok [INFO] [stdout] test tests::rebase_merge_step_recovery_preserves_rebase_identity ... ok [INFO] [stdout] test tests::recovery_lock_replacement_cannot_enable_concurrent_recovery ... ok [INFO] [stdout] test tests::recovery_platform_execution_cleans_descendants_after_parent_exit ... ok [INFO] [stdout] test tests::recovery_platform_lock_key_and_path_are_safe ... ok [INFO] [stdout] test tests::recovery_fingerprint_bounds_untracked_data ... ok [INFO] [stdout] test tests::recovery_platform_lock_directory_replacement_is_rejected_after_final_validation ... ok [INFO] [stdout] test tests::recovery_platform_end_to_end_deadline_does_not_interrupt_merge_abort ... ok [INFO] [stdout] test tests::recovery_fingerprint_tracks_autostash_and_rerere_state ... ok [INFO] [stdout] test tests::recovery_preview_rechecks_process_safety_inside_state_fence ... ok [INFO] [stdout] test tests::recovery_rejects_active_rebase_gpg_sign_before_starting_signer ... ok [INFO] [stdout] test tests::recovery_rejects_executable_hooks_without_starting_them ... ok [INFO] [stdout] test tests::recovery_rejects_external_driver_from_global_scope ... ok [INFO] [stdout] test tests::recovery_platform_lock_serializes_bitbygit_execution ... ok [INFO] [stdout] test tests::recovery_rejects_fifo_attributes_without_blocking ... ok [INFO] [stdout] test tests::recovery_rejects_fifo_rebase_todo_without_blocking ... ok [INFO] [stdout] test tests::recovery_platform_end_to_end_exact_merge_and_rebase ... ok [INFO] [stdout] test tests::recovery_rejects_persisted_explicit_strategy_before_spawn ... ok [INFO] [stdout] test tests::recovery_rejects_hooks_that_would_detach_descendants ... ok [INFO] [stdout] test tests::recovery_rejects_merge_skip_absent_state_and_mismatched_state ... ok [INFO] [stdout] test tests::recovery_reports_clear_minimum_git_version ... ok [INFO] [stdout] test tests::recovery_storage_uses_bitbygit_data_root_precedence ... ok [INFO] [stdout] test tests::recovery_rejects_all_configured_external_driver_kinds ... ok [INFO] [stdout] test tests::remote_push_urls_accepts_leading_hyphen_remote ... ok [INFO] [stdout] test tests::recovery_rejects_signing_configuration ... ok [INFO] [stdout] test tests::recovery_rejects_remaining_rebase_exec_command ... ok [INFO] [stdout] test tests::remote_push_urls_applies_push_instead_of_rewrites ... ok [INFO] [stdout] test tests::recovery_fingerprint_tracks_attributes_and_sparse_checkout_inputs ... ok [INFO] [stdout] test tests::recovery_rejects_persisted_strategy_options_before_spawn ... ok [INFO] [stdout] test tests::remote_checkout_blocks_when_local_branch_exists ... ok [INFO] [stdout] test tests::returns_diff_for_selected_path ... ok [INFO] [stdout] test tests::staged_tree_changes_when_staged_content_changes ... ok [INFO] [stdout] test tests::selected_path_operations_treat_pathspec_magic_as_literal ... ok [INFO] [stdout] test tests::unstages_all_paths_in_unborn_repository ... ok [INFO] [stdout] test tests::stages_and_unstages_selected_path ... ok [INFO] [stdout] test tests::upstream_invalid_repo_is_error ... ok [INFO] [stdout] test tests::remote_url_head_oid_ignores_configured_ssh_command ... ok [INFO] [stdout] test tests::unstages_and_diffs_staged_rename_with_source_and_destination ... ok [INFO] [stdout] test tests::stages_and_unstages_all_paths ... ok [INFO] [stdout] test tests::unstages_selected_path_in_unborn_repository ... ok [INFO] [stdout] test tests::upstream_missing_is_none ... ok [INFO] [stdout] test tests::upstream_unborn_repo_is_none ... ok [INFO] [stdout] test tests::upstream_present_is_returned ... ok [INFO] [stdout] test tests::typed_push_target_resolves_tracked_and_new_branches ... ok [INFO] [stdout] test tests::recovery_rejects_tab_delimited_rebase_exec_commands_before_spawn ... ok [INFO] [stdout] test tests::recovery_fingerprint_tracks_refs_index_config_hooks_and_progress ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 117 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/bitbygit-store/2868074302241cd9/out/bitbygit_store-2868074302241cd9) [INFO] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test tests::audit_reader_accepts_legacy_entries_without_repo_id ... ok [INFO] [stdout] test tests::audit_reader_keeps_valid_entries_before_truncated_tail ... ok [INFO] [stdout] test tests::audit_reader_rejects_newline_terminated_corruption ... ok [INFO] [stdout] test tests::corrupt_state_parse_error_includes_file_path ... ok [INFO] [stdout] test tests::audit_reader_ignores_final_line_with_corrupt_fields ... ok [INFO] [stdout] test tests::audit_reader_ignores_torn_current_format_tail_that_looks_legacy ... ok [INFO] [stdout] test tests::environment_path_resolution_uses_explicit_overrides_first ... ok [INFO] [stdout] test tests::environment_path_resolution_falls_back_to_home ... ok [INFO] [stdout] test tests::invalid_config_reports_safe_context_and_does_not_reach_audit ... ok [INFO] [stdout] test tests::invalid_repository_ids_are_rejected ... ok [INFO] [stdout] test tests::missing_config_loads_complete_safe_defaults ... ok [INFO] [stdout] test tests::invalid_add_returns_recoverable_error ... ok [INFO] [stdout] test tests::missing_repository_is_reported_as_invalid_without_breaking_list ... ok [INFO] [stdout] test tests::audit_entries_are_persisted ... ok [INFO] [stdout] test tests::active_and_recent_state_survives_reload ... ok [INFO] [stdout] test tests::corrupt_registry_id_is_rejected ... ok [INFO] [stdout] test tests::moved_repository_is_reported_as_invalid_without_breaking_list ... ok [INFO] [stdout] test tests::persists_and_reloads_repository_registry ... ok [INFO] [stdout] test tests::registry_preserves_non_utf8_repository_roots ... ok [INFO] [stdout] test tests::corrupt_state_prevents_add_without_registry_mutation ... ok [INFO] [stdout] test tests::duplicate_registry_id_is_rejected ... ok [INFO] [stdout] test tests::store_paths_define_config_and_data_locations ... ok [INFO] [stdout] test tests::unreadable_config_reports_path_and_uses_safe_defaults ... ok [INFO] [stdout] test tests::corrupt_state_prevents_remove_without_registry_mutation ... ok [INFO] [stdout] test tests::valid_config_loads_typed_settings ... ok [INFO] [stdout] test tests::removing_repository_never_deletes_repo_from_disk ... ok [INFO] [stdout] test tests::repository_status_by_id_checks_one_registered_repo ... ok [INFO] [stdout] test tests::registry_reader_ignores_length_mismatched_snapshot_prefix ... ok [INFO] [stdout] test tests::state_reader_uses_latest_valid_snapshot_before_torn_tail ... ok [INFO] [stdout] test tests::repeated_state_rewrites_replace_existing_file ... ok [INFO] [stdout] test tests::state_reader_ignores_unterminated_snapshot_line ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/bitbygit-tui/4520e21782fe8782/out/bitbygit_tui-4520e21782fe8782) [INFO] [stdout] [INFO] [stdout] running 141 tests [INFO] [stdout] test tests::audit_messages_redact_common_secret_markers ... ok [INFO] [stdout] test tests::branch_summary_shows_ahead_behind ... ok [INFO] [stdout] test tests::audit_errors_do_not_persist_raw_git_output ... ok [INFO] [stdout] test tests::blocked_later_low_risk_step_blocks_sequence_before_checkout ... ok [INFO] [stdout] test tests::app_uses_reloaded_policy_for_post_sequence_status_refresh ... ok [INFO] [stdout] test tests::compact_focus_cycle_skips_hidden_queue ... ok [INFO] [stdout] test tests::compact_queue_renders_confirmation_keys_policy_and_action ... ok [INFO] [stdout] test tests::compact_resize_moves_hidden_queue_focus_to_prompt ... ok [INFO] [stdout] test tests::app_reloads_policy_before_ordinary_post_operation_refresh_on_success_or_failure ... ok [INFO] [stdout] test tests::commit_push_sequence_previews_ordered_plan_without_planning_push ... ok [INFO] [stdout] test tests::blocked_prompt_sequence_does_not_bind_pull_request_target ... ok [INFO] [stdout] test tests::commit_sequence_preparation_failure_does_not_queue_push ... ok [INFO] [stdout] test tests::confirmation_preflights_blocked_later_high_risk_step ... ok [INFO] [stdout] test tests::confirmation_preflights_new_later_protected_branch_reason ... ok [INFO] [stdout] test tests::confirmation_blocked_later_step_does_not_fetch_temporary_remote_object ... ok [INFO] [stdout] test tests::ctrl_c_requests_clean_exit ... ok [INFO] [stdout] test tests::allowed_pull_publishes_staged_tracking_ref_only_during_execution ... ok [INFO] [stdout] test tests::blocked_pull_planning_does_not_fetch_remote_tracking_refs ... ok [INFO] [stdout] test tests::custom_policy_is_shared_by_manual_prompt_and_deferred_plans ... ok [INFO] [stdout] test tests::conflict_mode_blocks_risky_requests_before_sequence_side_effects ... ok [INFO] [stdout] test tests::deferred_matching_base_and_head_fails_before_any_step ... ok [INFO] [stdout] test tests::deferred_blocked_pull_does_not_fetch_remote_tracking_ref ... ok [INFO] [stdout] test tests::deferred_explicit_pull_request_base_keeps_enterprise_parity ... ok [INFO] [stdout] test tests::deferred_prompt_step_stops_when_operation_is_disabled_during_sequence ... ok [INFO] [stdout] test tests::deferred_prompt_step_reloads_policy_changed_during_prior_step ... ok [INFO] [stdout] test tests::desktop_queue_keeps_confirmation_keys_visible_when_plan_details_wrap ... ok [INFO] [stdout] test tests::desktop_queue_shows_controlling_promoted_risk_reason ... ok [INFO] [stdout] test tests::commit_push_pr_sequence_replans_and_creates_pr ... ok [INFO] [stdout] test tests::disabled_prompt_cannot_bypass_operation_policy_or_parse_raw_commands ... ok [INFO] [stdout] test tests::deferred_configured_pull_request_base_is_previewed_and_executed ... ok [INFO] [stdout] test tests::deferred_pull_fetch_revalidates_changed_policy_before_publishing_tracking_ref ... ok [INFO] [stdout] test tests::disabled_later_sequence_step_preflights_before_first_step_planning ... ok [INFO] [stdout] test tests::escape_requests_clean_exit ... ok [INFO] [stdout] test tests::confirmed_recovery_succeeds_and_records_stable_audit_entries ... ok [INFO] [stdout] test tests::executor_never_weakens_previewed_policy_and_rejects_stricter_policy ... ok [INFO] [stdout] test tests::executor_rejects_disabled_steps_without_side_effects ... ok [INFO] [stdout] test tests::executor_does_not_use_prompt_text_as_execution_input ... ok [INFO] [stdout] test tests::deferred_pull_request_stops_when_config_changes_effective_base ... ok [INFO] [stdout] test tests::existing_stage_all_workflow_executes_through_typed_steps ... ok [INFO] [stdout] test tests::failed_stage_operations_are_audited ... ok [INFO] [stdout] test tests::enterprise_https_pull_request_scopes_all_gh_commands_to_remote_host ... ok [INFO] [stdout] test tests::github_remote_parser_rejects_unsupported_or_invalid_targets ... ok [INFO] [stdout] test tests::github_remote_parser_supports_github_and_enterprise_ssh_forms ... ok [INFO] [stdout] test tests::high_risk_rebase_confirmations_reject_plain_y ... ok [INFO] [stdout] test tests::key_release_events_do_not_change_prompt ... ok [INFO] [stdout] test tests::key_repeat_events_are_handled ... ok [INFO] [stdout] test tests::disabled_pull_family_rejects_both_variants_before_fetching ... ok [INFO] [stdout] test tests::low_explicit_policy_applies_to_low_risk_prompt_sequences ... ok [INFO] [stdout] test tests::later_low_risk_step_reloads_changed_medium_policy ... ok [INFO] [stdout] test tests::manual_bulk_actions_queue_same_plan_as_request_planner ... ok [INFO] [stdout] test tests::create_branch_push_pr_uses_branch_push_remote ... ok [INFO] [stdout] test tests::medium_blocked_policy_applies_to_low_risk_prompt_sequences ... ok [INFO] [stdout] test tests::medium_explicit_policy_applies_to_low_risk_prompt_sequences ... ok [INFO] [stdout] test tests::low_risk_sequence_rejects_changed_medium_policy_at_confirmation ... ok [INFO] [stdout] test tests::modified_prompt_chords_are_ignored ... ok [INFO] [stdout] test tests::mouse_click_cancels_pending_confirmation ... ok [INFO] [stdout] test tests::enterprise_ssh_remote_surfaces_existing_pull_request ... ok [INFO] [stdout] test tests::mouse_click_on_repo_border_does_not_select_repo ... ok [INFO] [stdout] test tests::mouse_click_on_repo_side_border_does_not_select_repo ... ok [INFO] [stdout] test tests::mouse_click_selects_repo_row ... ok [INFO] [stdout] test tests::mouse_click_sets_focus_from_last_viewport ... ok [INFO] [stdout] test tests::gh_auth_failure_blocks_sequence_before_push_with_setup_guidance ... ok [INFO] [stdout] test tests::open_pull_request_plan_encodes_compare_ref_names ... ok [INFO] [stdout] test tests::existing_pull_request_repository_match_is_case_insensitive ... ok [INFO] [stdout] test tests::existing_pull_request_is_surfaced_without_creation ... ok [INFO] [stdout] test tests::open_pull_request_blocks_missing_upstream_and_matching_base ... ok [INFO] [stdout] test tests::operation_labels_are_explicit ... ok [INFO] [stdout] test tests::operation_plans_use_guardrail_risk_levels ... ok [INFO] [stdout] test tests::open_pull_request_plan_never_launches_ext_transport ... ok [INFO] [stdout] test tests::missing_configured_pull_request_base_fails_closed_with_guidance ... ok [INFO] [stdout] test tests::ordinary_queue_rejects_new_protected_reason_without_requirement_change ... ok [INFO] [stdout] test tests::parsed_low_risk_prompts_match_manual_planner_output ... ok [INFO] [stdout] test tests::partial_file_creates_staged_and_unstaged_rows ... ok [INFO] [stdout] test tests::partial_rename_uses_section_specific_pathspecs ... ok [INFO] [stdout] test tests::policy_reload_preserves_restrictive_policy_for_invalid_or_unreadable_config ... ok [INFO] [stdout] test tests::missing_gh_blocks_sequence_before_push_with_setup_guidance ... ok [INFO] [stdout] test tests::prompt_accepts_text_only_when_focused ... ok [INFO] [stdout] test tests::prompt_cap_accounts_for_multibyte_chars ... ok [INFO] [stdout] test tests::prompt_input_is_bounded ... ok [INFO] [stdout] test tests::open_pull_request_execution_rejects_deleted_base_branch ... ok [INFO] [stdout] test tests::open_pull_request_plan_rejects_missing_base_branch ... ok [INFO] [stdout] test tests::parsed_commit_prompt_matches_manual_planner_output ... ok [INFO] [stdout] test tests::parsed_high_risk_prompt_keeps_explicit_confirmation ... ok [INFO] [stdout] test tests::open_pull_request_plan_previews_target_and_creates_pull_request ... ok [INFO] [stdout] test tests::prompt_sequences_queue_visible_ordered_plan ... ok [INFO] [stdout] test tests::private_https_pull_request_uses_authenticated_api_not_repository_credential_helpers ... ok [INFO] [stdout] test tests::pull_request_accepts_suffixless_head_and_upstream_remotes ... ok [INFO] [stdout] test tests::prompt_sequence_preview_tracks_protected_branch_transitions ... ok [INFO] [stdout] test tests::prompt_sequence_stops_before_push_and_pr_when_commit_execution_fails ... ok [INFO] [stdout] test tests::pull_fetch_stages_tracking_update_until_changed_policy_is_revalidated ... ok [INFO] [stdout] test tests::prompt_sequence_stops_before_pr_when_push_fails ... ok [INFO] [stdout] test tests::prompt_sequence_replans_push_after_commit ... ok [INFO] [stdout] test tests::pull_request_allows_matching_branch_names_across_fork_and_upstream ... ok [INFO] [stdout] test tests::pull_request_gh_commands_target_upstream_for_a_tracked_fork ... ok [INFO] [stdout] test tests::pull_request_from_another_fork_is_not_surfaced ... ok [INFO] [stdout] test tests::pull_request_head_revalidation_failure_does_not_persist_remote_credentials ... ok [INFO] [stdout] test tests::pull_request_base_precedence_is_explicit_then_configured_then_provider ... ok [INFO] [stdout] test tests::pull_request_for_other_base_is_not_surfaced_after_create_failure ... ok [INFO] [stdout] test tests::q_is_text_when_prompt_is_focused ... ok [INFO] [stdout] test tests::queue_panel_shows_empty_placeholder_only_without_pending_plan ... ok [INFO] [stdout] test tests::pull_request_targets_fetch_repository_for_a_split_remote ... ok [INFO] [stdout] test tests::pull_request_uses_default_simple_in_triangular_workflow ... ok [INFO] [stdout] test tests::queued_sequence_revalidates_conflict_mode_before_first_side_effect ... ok [INFO] [stdout] test tests::push_revalidates_downstream_pr_target_after_fetch ... ok [INFO] [stdout] test tests::queued_sequence_revalidates_deferred_requests_before_first_side_effect ... ok [INFO] [stdout] test tests::recovery_plans_are_typed_high_risk_and_use_stable_audit_names ... ok [INFO] [stdout] test tests::pull_request_uses_differently_named_tracked_remote_branch ... ok [INFO] [stdout] test tests::push_revalidates_downstream_pr_base_after_config_reload ... ok [INFO] [stdout] test tests::push_revalidates_downstream_pr_target_after_replanning ... ok [INFO] [stdout] test tests::rename_and_delete_rows_show_change_details ... ok [INFO] [stdout] test tests::remote_checkout_push_pr_revalidates_target_before_any_step ... ok [INFO] [stdout] test tests::renders_compact_viewport ... ok [INFO] [stdout] test tests::renders_desktop_viewport ... ok [INFO] [stdout] test tests::renders_tiny_viewport ... ok [INFO] [stdout] test tests::runtime_reload_diagnostic_stays_visible_until_valid_recovery ... ok [INFO] [stdout] test tests::single_push_url_blocks_ambiguous_destinations ... ok [INFO] [stdout] test tests::stage_all_requires_confirmation ... ok [INFO] [stdout] test tests::stage_operations_are_audited ... ok [INFO] [stdout] test tests::staged_plan_items_include_only_staged_rows ... ok [INFO] [stdout] test tests::recovery_rejects_lowercase_confirmation_without_side_effects ... ok [INFO] [stdout] test tests::startup_policy_fails_closed_and_surfaces_malformed_config ... ok [INFO] [stdout] test tests::startup_policy_fails_closed_and_surfaces_unreadable_config ... ok [INFO] [stdout] test tests::startup_status_honors_escalated_and_blocked_low_risk_policy ... ok [INFO] [stdout] test tests::status_selection_diff_honors_blocked_confirmation_and_disabled_policy ... ok [INFO] [stdout] test tests::status_window_follows_selected_file ... ok [INFO] [stdout] test tests::status_window_reclamps_after_resize ... ok [INFO] [stdout] test tests::tab_cycles_visible_focus ... ok [INFO] [stdout] test tests::tiny_queue_renders_keys_policy_reason_and_confirmation_action ... ok [INFO] [stdout] test tests::startup_fail_closed_mode_recovers_after_config_is_fixed ... ok [INFO] [stdout] test tests::typed_executor_stops_after_first_failed_step ... ok [INFO] [stdout] test tests::unrelated_key_cancels_pending_confirmation ... ok [INFO] [stdout] test tests::unsupported_mixed_prompt_sequence_rejects_without_queue ... ok [INFO] [stdout] test tests::typed_executor_continues_only_when_step_allows_it ... ok [INFO] [stdout] test tests::viewport_compacts_for_small_terminals ... ok [INFO] [stdout] test tests::viewport_uses_desktop_panels_when_roomy ... ok [INFO] [stdout] test tests::renamed_head_repository_surfaces_existing_pull_request ... ok [INFO] [stdout] test tests::recovery_planner_matches_active_state_and_continue_prerequisites ... ok [INFO] [stdout] test tests::recovery_execution_revalidates_state_and_audits_safely ... ok [INFO] [stdout] test tests::remote_checkout_push_pr_uses_configured_push_destination ... ok [INFO] [stdout] test tests::recovery_first_sequence_executes_the_state_captured_at_preview ... ok [INFO] [stdout] test tests::confirmed_recovery_executes_all_supported_requests ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.30s [INFO] [stdout] [INFO] [stderr] Doc-tests bitbygit_core [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] [stderr] Doc-tests bitbygit_gh [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] [stderr] Doc-tests bitbygit_git [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] [stderr] Doc-tests bitbygit_store [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] [stderr] Doc-tests bitbygit_tui [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" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf", kill_on_drop: false }` [INFO] [stdout] 419e9fd775249acd91e490460005ab34950c43a3b86182a5a340bae2901f12cf