[INFO] cloning repository https://github.com/e-kulikov/git-grove
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/e-kulikov/git-grove" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fe-kulikov%2Fgit-grove", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fe-kulikov%2Fgit-grove'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c14b1c76e37b1b414eadd52c0dca7843ea0edf04
[INFO] testing e-kulikov/git-grove 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%2Fe-kulikov%2Fgit-grove" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/e-kulikov/git-grove
[INFO] finished tweaking git repo https://github.com/e-kulikov/git-grove
[INFO] tweaked toml for git repo https://github.com/e-kulikov/git-grove written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/e-kulikov/git-grove 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/e-kulikov/git-grove 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-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169
[INFO] running `Command { std: "docker" "start" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", 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" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169" "/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" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", 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" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling toml_edit v0.25.13+spec-1.1.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling clap_complete v4.6.9
[INFO] [stderr]    Compiling git-grove v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `anstream`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | anstream = "0.6"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anstream`
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | anyhow = "1"
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `thiserror`
[INFO] [stderr]   --> Cargo.toml:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | thiserror = "2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `thiserror`
[INFO] [stderr] warning: `git-grove` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.04s
[INFO] running `Command { std: "docker" "inspect" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", 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" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169" "/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 aho-corasick v1.1.5
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling git-grove v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `anstream`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | anstream = "0.6"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anstream`
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | anyhow = "1"
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `thiserror`
[INFO] [stderr]   --> Cargo.toml:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | thiserror = "2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `thiserror`
[INFO] [stderr] warning: `git-grove` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 55.47s
[INFO] running `Command { std: "docker" "inspect" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", 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" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused dependency `anstream`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | anstream = "0.6"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anstream`
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | anyhow = "1"
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `thiserror`
[INFO] [stderr]   --> Cargo.toml:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | thiserror = "2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `thiserror`
[INFO] [stderr] warning: `git-grove` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/git-grove/5db3b8b849684081/out/git_grove-5db3b8b849684081)
[INFO] [stdout] 
[INFO] [stdout] running 566 tests
[INFO] [stdout] test cli::tests::expands_implicit_actions_after_the_leading_global_override ... ok
[INFO] [stdout] test cli::tests::expands_no_arguments_into_list_only_inside_a_grove ... ok
[INFO] [stdout] test cli::tests::expands_a_relative_gitfile_repository_path_into_clone ... ok
[INFO] [stdout] test cli::tests::help_and_version_do_not_look_up_the_current_directory ... ok
[INFO] [stdout] test cli::tests::expands_an_existing_repository_path_into_clone ... ok
[INFO] [stdout] test cli::tests::accepts_non_utf8_git_values ... ok
[INFO] [stdout] test cli::tests::keeps_lifecycle_commands_tooling_commands_and_aliases ... ok
[INFO] [stdout] test cli::tests::add_help_explains_both_positional_forms_and_limits ... ok
[INFO] [stdout] test cli::tests::parse_create_target_preserves_non_utf8_bytes ... ok
[INFO] [stdout] test cli::tests::leaves_flags_to_clap ... ok
[INFO] [stdout] test cli::tests::parse_create_target_rejects_every_malformed_shape ... ok
[INFO] [stdout] test cli::tests::publish_accepts_a_bare_url_with_no_create_flags ... ok
[INFO] [stdout] test cli::tests::parse_create_target_accepts_exactly_owner_slash_name ... ok
[INFO] [stdout] test cli::tests::publish_accepts_create_with_host_and_no_url ... ok
[INFO] [stdout] test cli::tests::accepts_the_global_policy_override_for_every_lifecycle_command ... ok
[INFO] [stdout] test cli::tests::expands_recognisable_locators_into_clone ... ok
[INFO] [stdout] test cli::tests::publish_accepts_create_with_public ... ok
[INFO] [stdout] test cli::tests::publish_public_without_create_is_rejected ... ok
[INFO] [stdout] test cli::tests::publish_requires_exactly_one_of_url_or_create ... ok
[INFO] [stdout] test cli::tests::publish_create_requires_host ... ok
[INFO] [stdout] test cli::tests::publish_host_without_create_is_rejected ... ok
[INFO] [stdout] test cli::tests::limits_runtime_completion_to_the_supported_shells ... ok
[INFO] [stdout] test cli::tests::refuses_a_common_dir_symlink_hidden_by_a_trailing_separator ... ok
[INFO] [stdout] test cli::tests::rejects_missing_or_ambiguous_add_positionals ... ok
[INFO] [stdout] test cli::tests::refuses_an_ambiguous_bare_word_with_an_explicit_clone_hint ... ok
[INFO] [stdout] test cli::tests::resolves_branch_add_with_an_optional_directory ... ok
[INFO] [stdout] test cli::tests::refuses_malformed_or_dangling_gitfile_markers ... ok
[INFO] [stdout] test cli::tests::refuses_empty_and_symlinked_git_markers_as_existing_repositories ... ok
[INFO] [stdout] test cli::tests::validate_create_flags_accepts_every_well_formed_combination ... ok
[INFO] [stdout] test cli::tests::resolves_detached_add_without_consuming_its_directory_as_a_branch ... ok
[INFO] [stdout] test commands::add::tests::generates_exact_detached_worktree_argv ... ok
[INFO] [stdout] test commands::add::tests::generates_exact_new_branch_and_orphan_argv ... ok
[INFO] [stdout] test commands::add::tests::generates_exact_remote_tracking_worktree_argv ... ok
[INFO] [stdout] test commands::add::tests::git_failure_diagnostics_escape_raw_stderr_reversibly ... ok
[INFO] [stdout] test commands::add::tests::generates_exact_existing_branch_worktree_argv ... ok
[INFO] [stdout] test commands::adopt::preflight::tests::worktree_parser_requires_the_exact_single_root ... ok
[INFO] [stdout] test commands::add::tests::provisioning_an_unresolvable_executable_writes_nothing ... ok
[INFO] [stdout] test commands::adopt::preflight::tests::snapshots_pin_optional_locks_in_the_child_only ... ok
[INFO] [stdout] test cli::tests::refuses_a_gitfile_targeting_a_symlink_with_a_trailing_separator ... ok
[INFO] [stdout] test commands::add::tests::provisioning_an_empty_policy_writes_nothing ... ok
[INFO] [stdout] test commands::adopt::tests::option_shaped_remote_and_branch_names_are_rejected_before_git ... ok
[INFO] [stdout] test commands::clone::tests::derives_raw_directory_names_like_git_without_dot_git ... ok
[INFO] [stdout] test commands::clone::tests::expands_current_and_named_users_without_process_global_state ... ok
[INFO] [stdout] test commands::adopt::tests::recovery_arguments_are_mutually_exclusive_with_fresh_decisions ... ok
[INFO] [stdout] test commands::clone::tests::preserves_non_utf8_named_user_lookup ... ok
[INFO] [stdout] test commands::clone::tests::rejects_unknown_or_malformed_user_expansions ... ok
[INFO] [stdout] test commands::add::tests::provisioning_a_recorded_policy_configures_the_new_worktree ... ok
[INFO] [stdout] test cli::tests::expands_a_real_linked_worktree_path_into_clone ... ok
[INFO] [stdout] test commands::hook_guard::tests::a_malformed_payload_denies_rather_than_erroring ... ok
[INFO] [stdout] test commands::clone::tests::replacing_the_named_bare_cannot_redirect_clone_writes ... ok
[INFO] [stdout] test commands::hook_guard::tests::a_non_grove_process_cwd_denies_with_an_actionable_reason_on_both_protocols ... ok
[INFO] [stdout] test commands::hook_guard::tests::output_is_exactly_one_json_object_followed_by_a_newline ... ok
[INFO] [stdout] test commands::hook_guard::tests::an_unreadable_current_directory_denies_rather_than_erroring ... ok
[INFO] [stdout] test commands::init::tests::bare_creation_stops_before_git_when_another_root_entry_appears ... ok
[INFO] [stdout] test commands::clone::tests::concurrent_foreign_root_entry_is_preserved_and_stops_layout_writes ... ok
[INFO] [stdout] test commands::init::tests::post_mutation_path_policy_errors_are_state_conflicts ... ok
[INFO] [stdout] test commands::publish::tests::a_bare_publish_against_a_creating_grove_with_a_complete_receipt_is_a_decision ... ok
[INFO] [stdout] test commands::init::tests::exclusive_bare_creation_preserves_a_concurrent_directory_or_symlink ... ok
[INFO] [stdout] test commands::publish::tests::a_cloned_grove_whose_remote_was_removed_can_be_published_afresh ... ok
[INFO] [stdout] test commands::publish::tests::a_complete_creating_receipt_is_never_healed ... ok
[INFO] [stdout] test commands::publish::tests::a_case_difference_is_a_difference ... ok
[INFO] [stdout] test commands::publish::tests::a_cloned_grove_is_refused_with_a_decision_not_a_failure ... ok
[INFO] [stdout] test commands::publish::tests::a_creating_grove_with_a_corrupted_classic_receipt_fails_cleanly_instead_of_panicking ... ok
[INFO] [stdout] test commands::publish::tests::a_default_branch_that_does_not_exist_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::a_confirmed_server_head_advances_the_receipt_to_published ... ok
[INFO] [stdout] test commands::publish::tests::a_creating_grove_with_a_forbidden_url_is_never_auto_healed ... ok
[INFO] [stdout] test commands::publish::tests::a_diverged_remote_is_refused_and_never_forced ... ok
[INFO] [stdout] test commands::publish::tests::a_dot_git_suffix_is_a_difference_not_the_same_url ... ok
[INFO] [stdout] test commands::publish::tests::a_failing_advertisement_leaves_the_grove_untouched ... ok
[INFO] [stdout] test commands::publish::tests::a_fresh_publication_adds_the_remote_after_dashes_and_verifies_every_write ... ok
[INFO] [stdout] test commands::publish::tests::a_missing_default_branch_key_is_derived_from_the_bare_head ... ok
[INFO] [stdout] test commands::publish::tests::a_narrowed_or_missing_fetch_refspec_is_rewritten_and_reverified ... ok
[INFO] [stdout] test commands::publish::tests::a_non_creating_state_is_never_healed_even_with_stray_creating_keys ... ok
[INFO] [stdout] test commands::publish::tests::a_non_utf8_url_round_trips_through_the_matrix_by_bytes ... ok
[INFO] [stdout] test commands::publish::tests::a_remote_name_git_rejects_is_a_usage_error_decided_by_git ... ok
[INFO] [stdout] test commands::publish::tests::a_remote_not_advertising_the_default_branch_is_refused_before_any_probe ... ok
[INFO] [stdout] test commands::publish::tests::a_remote_url_git_did_not_store_verbatim_is_a_failure ... ok
[INFO] [stdout] test commands::publish::tests::a_remote_whose_head_names_another_branch_is_refused_before_any_probe ... ok
[INFO] [stdout] test commands::publish::tests::a_receipt_for_a_different_remote_name_is_a_decision_naming_both ... ok
[INFO] [stdout] test commands::publish::tests::a_receipt_for_a_different_url_is_a_decision_naming_both ... ok
[INFO] [stdout] test commands::publish::tests::a_remote_with_a_dangling_head_is_refused_before_any_probe ... ok
[INFO] [stdout] test commands::publish::tests::a_repair_run_demotes_to_publishing_when_the_server_head_no_longer_matches ... ok
[INFO] [stdout] test commands::publish::tests::a_repair_run_fetches_exactly_as_sync_does_and_uses_no_probe_ref ... ok
[INFO] [stdout] test commands::publish::tests::a_repair_run_pushes_when_the_target_is_strictly_behind ... ok
[INFO] [stdout] test commands::publish::tests::a_repair_run_refuses_when_the_target_is_ahead_or_diverged ... ok
[INFO] [stdout] test commands::publish::tests::a_server_head_naming_another_branch_is_a_decision_even_when_set_head_would_succeed ... ok
[INFO] [stdout] test commands::publish::tests::a_repair_run_whose_tracking_ref_vanished_is_a_failure ... ok
[INFO] [stdout] test commands::publish::tests::a_strictly_behind_remote_is_probed_and_accepted ... ok
[INFO] [stdout] test commands::publish::tests::a_resumed_publication_does_not_add_the_remote_again ... ok
[INFO] [stdout] test commands::publish::tests::a_target_that_does_not_advertise_atomic_push_is_a_named_decision ... ok
[INFO] [stdout] test commands::publish::tests::a_two_level_remote_name_is_accepted ... ok
[INFO] [stdout] test commands::publish::tests::a_trailing_slash_is_a_difference_not_the_same_url ... ok
[INFO] [stdout] test commands::publish::tests::a_url_that_never_round_trips_is_a_verification_failure_not_a_loop ... ok
[INFO] [stdout] test commands::publish::tests::a_vanished_probe_ref_is_not_a_divergence_verdict ... ok
[INFO] [stdout] test commands::publish::tests::all_branches_pushes_every_local_head_in_one_atomic_push ... ok
[INFO] [stdout] test commands::publish::tests::an_absent_tracking_ref_is_fetched_as_an_explicit_fallback ... ok
[INFO] [stdout] test commands::publish::tests::an_ambiguous_default_branch_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::an_empty_remote_is_never_probed ... ok
[INFO] [stdout] test commands::publish::tests::an_empty_url_is_a_usage_error ... ok
[INFO] [stdout] test commands::publish::tests::an_unborn_grove_is_a_decision_to_commit_first ... ok
[INFO] [stdout] test commands::publish::tests::an_incomplete_creating_receipt_is_healed_before_accept_rerun_ever_sees_it ... ok
[INFO] [stdout] test commands::publish::tests::any_other_push_failure_is_a_failure_that_leaves_the_state_publishing ... ok
[INFO] [stdout] test commands::publish::tests::an_unconfirmed_server_head_keeps_publishing_and_asks_for_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::check_provider_auth_falls_back_to_stdout_when_stderr_is_empty ... ok
[INFO] [stdout] test commands::publish::tests::check_provider_auth_refuses_a_nonzero_exit_as_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::check_publishable_repository_gives_the_same_refusals_as_preflight_with_no_url_at_all ... ok
[INFO] [stdout] test commands::publish::tests::check_publishable_repository_succeeds_on_a_grove_ready_to_publish ... ok
[INFO] [stdout] test commands::publish::tests::check_provider_auth_accepts_a_zero_exit ... ok
[INFO] [stdout] test commands::publish::tests::configured_git_protocol_rejects_multiple_lines ... ok
[INFO] [stdout] test commands::publish::tests::an_absent_guess_remote_key_is_written_and_verified ... ok
[INFO] [stdout] test commands::publish::tests::continuation_sequencing_refuses_an_unrelated_repo_view_result_without_ever_calling_create ... ok
[INFO] [stdout] test commands::publish::tests::derive_and_publish_leaves_the_creating_keys_untouched ... ok
[INFO] [stdout] test commands::publish::tests::continuation_sequencing_falls_through_to_create_when_repo_view_finds_nothing ... ok
[INFO] [stdout] test commands::publish::tests::continuation_sequencing_never_calls_create_when_repo_view_already_confirms_it ... ok
[INFO] [stdout] test commands::publish::tests::derive_and_publish_uses_https_by_default ... ok
[INFO] [stdout] test commands::publish::tests::fresh_sequencing_maps_ghs_exit_4_to_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::derive_and_publish_uses_ssh_when_git_protocol_is_scoped_to_ssh ... ok
[INFO] [stdout] test commands::publish::tests::fresh_sequencing_refuses_an_unrelated_existing_repository_and_rolls_back ... ok
[INFO] [stdout] test commands::publish::tests::fresh_sequencing_rolls_back_and_surfaces_the_original_failure_when_repo_view_confirms_missing ... ok
[INFO] [stdout] test commands::publish::tests::fresh_sequencing_surfaces_a_create_failures_stdout_when_stderr_is_empty ... ok
[INFO] [stdout] test commands::publish::tests::fresh_sequencing_succeeds_when_create_returns_zero ... ok
[INFO] [stdout] test commands::publish::tests::gh_default_branch_repair_is_a_noop_without_a_provider_runner ... ok
[INFO] [stdout] test commands::publish::tests::gh_default_branch_repair_never_applies_to_gitlab ... ok
[INFO] [stdout] test commands::publish::tests::gh_default_branch_repair_runs_gh_repo_edit_for_a_matching_creating_grove ... ok
[INFO] [stdout] test commands::publish::tests::leftover_probe_refs_are_purged_first_and_reported ... ok
[INFO] [stdout] test commands::publish::tests::no_publication_invocation_ever_forces_or_sets_upstream ... ok
[INFO] [stdout] test commands::publish::tests::gh_default_branch_repair_is_a_noop_for_a_bare_published_grove ... ok
[INFO] [stdout] test commands::publish::tests::published_with_a_differing_receipt_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::fresh_sequencing_treats_create_failure_as_success_when_repo_view_confirms_it_exists_and_matches ... ok
[INFO] [stdout] test commands::publish::tests::published_with_a_matching_receipt_and_remote_is_a_repair ... ok
[INFO] [stdout] test commands::publish::tests::published_with_a_matching_receipt_but_no_remote_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::publishing_with_a_matching_receipt_and_a_matching_remote_resumes ... ok
[INFO] [stdout] test commands::publish::tests::publishing_whose_remote_drifted_from_the_receipt_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::published_with_a_matching_receipt_but_a_differing_remote_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_continues_a_matching_creating_grove ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_is_fresh_when_nothing_is_recorded_at_all ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_refuses_a_grove_already_publishing_or_published_with_no_creating_receipt ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_refuses_a_mismatched_owner_or_name ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_refuses_a_mismatched_remote_specifically ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_refuses_a_stray_remote_on_an_unpublished_grove ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_resumes_existing_for_a_matching_publishing_grove ... ok
[INFO] [stdout] test commands::publish::tests::publishing_with_a_matching_receipt_and_no_remote_resumes ... ok
[INFO] [stdout] test commands::publish::tests::reconcile_create_is_fresh_for_a_published_grove_with_no_receipt_and_no_live_remote ... ok
[INFO] [stdout] test commands::publish::tests::repo_view_erroring_stays_creating_and_names_the_four_keys ... ok
[INFO] [stdout] test commands::publish::tests::run_create_against_an_already_published_creating_grove_never_touches_the_provider ... ok
[INFO] [stdout] test commands::publish::tests::run_create_fresh_writes_the_creating_receipt_then_hands_off_to_run ... ok
[INFO] [stdout] test commands::publish::tests::run_create_refuses_an_unauthenticated_provider_after_the_local_preflight ... ok
[INFO] [stdout] test commands::publish::tests::set_head_passes_auto_before_the_dashes_that_guard_the_remote_name ... ok
[INFO] [stdout] test commands::publish::tests::the_default_push_is_one_explicit_non_forced_atomic_refspec ... ok
[INFO] [stdout] test commands::publish::tests::the_push_child_is_locale_pinned_so_its_stderr_can_be_classified ... ok
[INFO] [stdout] test commands::publish::tests::the_receipt_is_written_immediately_before_the_first_mutation ... ok
[INFO] [stdout] test commands::publish::tests::unpublished_carrying_receipt_keys_is_a_failure ... ok
[INFO] [stdout] test commands::publish::tests::unpublished_with_a_remote_already_at_that_name_is_a_decision ... ok
[INFO] [stdout] test commands::publish::tests::unpublished_with_no_remote_is_a_fresh_publication ... ok
[INFO] [stdout] test commands::publish::tests::upstreams_are_written_explicitly_and_the_happy_path_never_fetches ... ok
[INFO] [stdout] test commands::setup::tests::a_cwd_inside_a_worktree_selects_that_worktree ... ok
[INFO] [stdout] test commands::publish::tests::run_create_refuses_below_the_version_floor_before_touching_the_grove ... ok
[INFO] [stdout] test commands::setup::tests::a_failed_provision_warns_and_still_provisions_the_other_agents ... ok
[INFO] [stdout] test commands::setup::tests::a_grove_with_no_recorded_default_branch_says_so ... ok
[INFO] [stdout] test commands::setup::tests::a_missing_default_worktree_names_the_fix_instead_of_failing_obscurely ... ok
[INFO] [stdout] test commands::setup::tests::a_cwd_in_no_working_tree_falls_back_to_the_recorded_default_branch ... ok
[INFO] [stdout] test commands::setup::tests::an_explicit_worktree_that_is_not_a_worktree_is_a_usage_error ... ok
[INFO] [stdout] test commands::setup::tests::a_rev_parse_failure_under_a_registered_worktree_propagates_instead_of_falling_back ... ok
[INFO] [stdout] test commands::setup::tests::an_explicit_worktree_wins_over_the_cwd_and_never_runs_rev_parse ... ok
[INFO] [stdout] test commands::setup::tests::a_working_tree_that_is_not_a_worktree_of_this_grove_is_a_usage_error ... ok
[INFO] [stdout] test commands::setup::tests::codex_next_steps_state_the_non_enforcement_without_hedging ... ok
[INFO] [stdout] test commands::setup::tests::an_unknown_recorded_agent_is_reported_and_skipped ... ok
[INFO] [stdout] test commands::setup::tests::claude_and_copilot_converge_on_the_same_target ... ok
[INFO] [stdout] test commands::setup::tests::exclude_entries_are_anchored_to_the_worktree_root ... ok
[INFO] [stdout] test commands::clone::tests::rejects_an_object_directory_symlinked_outside_held_bare ... ok
[INFO] [stdout] test commands::setup::tests::policy_values_round_trip_through_every_agent_spelling ... ok
[INFO] [stdout] test commands::setup::tests::opens_and_creates_a_missing_target_directory ... ok
[INFO] [stdout] test commands::setup::tests::reading_a_policy_collapses_duplicates_and_reports_unknown_values ... ok
[INFO] [stdout] test commands::setup::tests::reading_an_empty_policy_yields_no_agents_and_no_complaints ... ok
[INFO] [stdout] test commands::setup::tests::reads_absent_target_as_empty_and_existing_target_verbatim ... ok
[INFO] [stdout] test commands::setup::tests::refuses_a_non_regular_existing_leaf ... ok
[INFO] [stdout] test commands::setup::tests::refuses_a_symlinked_leaf ... ok
[INFO] [stdout] test commands::setup::tests::refuses_a_non_directory_occupying_the_parent_name ... ok
[INFO] [stdout] test commands::setup::tests::registering_a_new_agent_adds_it_without_replacing_the_others ... ok
[INFO] [stdout] test commands::setup::tests::registering_an_already_recorded_agent_writes_nothing ... ok
[INFO] [stdout] test commands::setup::tests::refuses_a_symlinked_parent_directory ... ok
[INFO] [stdout] test commands::setup::tests::provisioning_an_empty_policy_writes_nothing_and_warns_about_nothing ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_creates_the_directory_and_file_from_nothing ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_leaves_a_malformed_existing_codex_config_untouched ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_leaves_a_malformed_existing_file_untouched ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_leaves_a_symlinked_leaf_untouched ... ok
[INFO] [stdout] test commands::setup::tests::provisioning_writes_every_recorded_agent_and_the_shared_exclude ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_is_idempotent_for_codex_too ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_preserves_unrelated_codex_settings_and_comments ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_is_idempotent_and_claude_then_copilot_converge ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_preserves_unrelated_settings ... ok
[INFO] [stdout] test commands::sync::tests::a_changed_branch_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::setup::tests::write_hook_config_writes_codex_toml_into_the_worktree ... ok
[INFO] [stdout] test commands::sync::tests::a_changed_upstream_oid_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_changed_head_oid_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_changed_registered_path_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_head_oid_change_mid_run_yields_a_fresh_final_row_with_no_merge_and_exit_two ... ok
[INFO] [stdout] test commands::sync::tests::a_lock_appearing_mid_run_yields_a_locked_final_row_with_no_merge_and_exit_two ... ok
[INFO] [stdout] test commands::sync::tests::a_changed_upstream_remote_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_changed_upstream_full_ref_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_missing_worktree_at_reinspection_is_reported_as_missing ... ok
[INFO] [stdout] test commands::sync::tests::a_now_ahead_worktree_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::clone::tests::replacing_the_named_root_cannot_redirect_clone_writes ... ok
[INFO] [stdout] test commands::sync::tests::a_now_locked_worktree_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_worktree_already_brought_up_to_date_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::a_now_dirty_worktree_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::an_operation_marker_appearing_mid_run_yields_an_in_progress_final_row_with_no_merge_and_exit_two ... ok
[INFO] [stdout] test commands::sync::tests::an_upstream_oid_change_mid_run_yields_a_fresh_final_row_with_no_merge_and_exit_two ... ok
[INFO] [stdout] test commands::sync::tests::dirtiness_appearing_mid_run_yields_a_dirty_behind_final_row_with_no_merge_and_exit_two ... ok
[INFO] [stdout] test commands::sync::tests::an_upstream_ref_change_mid_run_yields_a_fresh_final_row_with_no_merge_and_exit_two ... ok
[INFO] [stdout] test commands::sync::tests::run_merges_two_behind_candidates_sequentially_in_raw_path_order ... ok
[INFO] [stdout] test commands::sync::tests::a_refused_merge_becomes_blocked_with_escaped_stderr ... ok
[INFO] [stdout] test commands::sync::tests::a_now_in_progress_worktree_yields_changed_with_no_merge ... ok
[INFO] [stdout] test commands::sync::tests::merge_targets_the_freshly_inspected_upstream_oid_not_the_symbolic_revision ... ok
[INFO] [stdout] test commands::sync::tests::unchanged_candidate_merges_with_the_exact_pinned_arguments ... ok
[INFO] [stdout] test error::tests::maps_classes_to_documented_codes ... ok
[INFO] [stdout] test fsx::held::tests::held_directory_keeps_its_identity_across_a_rename ... ok
[INFO] [stdout] test commands::sync::tests::run_preserves_non_utf8_path_bytes_through_sorting_and_a_blocked_diagnostic ... ok
[INFO] [stdout] test commands::sync::tests::run_reports_a_residual_behind_row_and_exit_two_when_a_candidate_only_partially_changes ... ok
[INFO] [stdout] test error::tests::exact_exit_code_overrides_the_class_code ... ok
[INFO] [stdout] test fsx::held::tests::recursive_inventory_records_nested_types_metadata_and_hashes ... ok
[INFO] [stdout] test fsx::held::tests::identity_records_metadata_and_regular_file_hash ... ok
[INFO] [stdout] test fsx::held::tests::validated_paths_reject_dot_parent_slash_nul_and_empty_components ... ok
[INFO] [stdout] test error::tests::carries_message_and_detail ... ok
[INFO] [stdout] test fsx::lock::tests::exclusive_exclusive_refuses ... ok
[INFO] [stdout] test fsx::mountinfo::tests::decodes_kernel_escapes_and_finds_the_longest_mount ... ok
[INFO] [stdout] test fsx::mountinfo::tests::live_mountinfo_parser_smoke ... ok
[INFO] [stdout] test fsx::mountinfo::tests::component_boundaries_prevent_prefix_matches ... ok
[INFO] [stdout] test fsx::lock::tests::shared_shared_succeeds_and_exclusive_contention_refuses ... ok
[INFO] [stdout] test fsx::mountinfo::tests::detects_nested_mounts_and_refuses_malformed_input ... ok
[INFO] [stdout] test fsx::mountinfo::tests::a_root_that_is_itself_a_mountpoint_is_not_a_boundary ... ok
[INFO] [stdout] test fsx::tests::creates_a_bare_relative_symlink ... ok
[INFO] [stdout] test fsx::tests::creates_a_relative_symlink_only_when_the_destination_is_absent ... ok
[INFO] [stdout] test fsx::tests::creates_a_relative_symlink ... ok
[INFO] [stdout] test fsx::tests::creates_a_file_only_when_the_destination_remains_absent ... ok
[INFO] [stdout] test fsx::tests::refuses_to_replace_an_existing_broken_symlink ... ok
[INFO] [stdout] test fsx::tests::no_replace_creation_preserves_an_entry_created_after_its_probe ... ok
[INFO] [stdout] test fsx::tests::no_replace_creation_preserves_a_broken_link_created_after_its_probe ... ok
[INFO] [stdout] test fsx::tests::overwrites_an_existing_file ... ok
[INFO] [stdout] test git::fetch::tests::a_local_only_branch_contributes_no_remote ... ok
[INFO] [stdout] test git::fetch::tests::an_empty_plan_performs_no_fetch ... ok
[INFO] [stdout] test git::fetch::tests::an_unexpected_upstream_query_status_is_a_failure ... ok
[INFO] [stdout] test git::fetch::tests::detached_and_unborn_worktrees_contribute_no_remote ... ok
[INFO] [stdout] test git::fetch::tests::duplicate_branches_query_the_upstream_once ... ok
[INFO] [stdout] test git::fetch::tests::execute_fetches_two_remotes_in_raw_byte_order_without_all_or_multiple ... ok
[INFO] [stdout] test fsx::tests::writes_a_file_atomically_and_leaves_no_temporaries ... ok
[INFO] [stdout] test git::fetch::tests::execute_issues_one_exact_atomic_fetch_per_remote ... ok
[INFO] [stdout] test git::fetch::tests::skip_fetch_all_is_not_consulted ... ok
[INFO] [stdout] test git::fetch::tests::two_remotes_are_deduplicated_and_sorted_by_raw_bytes ... ok
[INFO] [stdout] test git::provider::tests::args_pass_through_unmodified ... ok
[INFO] [stdout] test git::fetch::tests::execute_stops_at_the_first_fetch_failure ... ok
[INFO] [stdout] test git::provider::tests::cwd_is_always_the_scratch_directory ... ok
[INFO] [stdout] test git::provider::tests::gh_token_and_gitlab_token_are_never_touched ... ok
[INFO] [stdout] test git::provider::tests::github_pins_gh_host_and_removes_gh_repo ... ok
[INFO] [stdout] test fsx::tests::writes_with_the_named_fallback_when_unnamed_temps_are_unavailable ... ok
[INFO] [stdout] test fsx::tests::writes_to_a_bare_relative_destination ... ok
[INFO] [stdout] test git::provider::tests::gitlab_pins_gitlab_host_and_leaves_gh_variables_alone ... ok
[INFO] [stdout] test git::provider::tests::recording_fake_records_provider_and_argv_and_returns_queued_responses ... ok
[INFO] [stdout] test git::provider::tests::scratch_directory_is_created_verified_outside_the_grove_and_removed_after ... ok
[INFO] [stdout] test git::provider::tests::version_gate_accepts_the_measured_glab_minimum ... ok
[INFO] [stdout] test git::provider::tests::version_gate_accepts_the_measured_minimum ... ok
[INFO] [stdout] test git::provider::tests::version_gate_attaches_stderr_when_the_version_command_itself_fails ... ok
[INFO] [stdout] test git::provider::tests::version_gate_falls_back_to_stdout_when_stderr_is_empty ... ok
[INFO] [stdout] test git::provider::tests::version_gate_refuses_below_the_floor_with_usage ... ok
[INFO] [stdout] test fsx::tests::failed_replacement_preserves_destination_and_retains_identifiable_temporary ... ok
[INFO] [stdout] test git::provider::tests::with_scratch_dir_keeps_the_bodys_own_error_even_when_cleanup_also_fails ... ok
[INFO] [stdout] test git::provider::tests::version_gate_refuses_glab_below_the_floor ... ok
[INFO] [stdout] test git::provider::tests::version_gate_treats_unparsable_output_as_failure ... ok
[INFO] [stdout] test git::provider::tests::with_scratch_dir_surfaces_a_cleanup_failure_when_the_body_succeeded ... ok
[INFO] [stdout] test git::query::tests::branch_upstream_is_none_for_a_ref_that_does_not_exist_yet ... ok
[INFO] [stdout] test git::query::tests::branch_upstream_is_none_when_no_upstream_is_configured ... ok
[INFO] [stdout] test git::query::tests::branch_upstream_maps_the_local_upstream_remote_to_none ... ok
[INFO] [stdout] test git::provider::tests::with_scratch_dir_removes_the_scratch_directory_even_when_the_body_fails ... ok
[INFO] [stdout] test git::provider::tests::with_scratch_dir_removes_the_scratch_directory_after_a_successful_body ... ok
[INFO] [stdout] test git::query::tests::branch_upstream_propagates_query_failures ... ok
[INFO] [stdout] test git::query::tests::branch_upstream_queries_the_exact_pinned_ref ... ok
[INFO] [stdout] test git::query::tests::branch_upstream_rejects_malformed_or_multiple_records ... ok
[INFO] [stdout] test git::query::tests::does_not_treat_unexpected_query_status_as_absence ... ok
[INFO] [stdout] test git::query::tests::is_tracked_maps_exit_codes_to_tracked_untracked_and_failure ... ok
[INFO] [stdout] test git::query::tests::distinguishes_absent_upstream_from_unexpected_git_errors ... ok
[INFO] [stdout] test git::query::tests::maps_wildcard_and_narrowed_fetch_refspecs ... ok
[INFO] [stdout] test git::query::tests::parses_checked_out_branch_and_path_as_raw_bytes ... ok
[INFO] [stdout] test git::query::tests::maps_local_upstream_remote_to_none ... ok
[INFO] [stdout] test git::query::tests::detects_every_operation_marker_and_propagates_inspection_errors ... ok
[INFO] [stdout] test git::query::tests::parses_nul_delimited_worktree_records_without_losing_bytes ... ok
[INFO] [stdout] test git::query::tests::reads_the_worktree_list_from_the_canonical_bare_directory ... ok
[INFO] [stdout] test git::query::tests::rejects_malformed_truncated_and_duplicate_worktree_records ... ok
[INFO] [stdout] test git::query::tests::pins_every_worktree_query_to_the_pointer_admin_directory ... ok
[INFO] [stdout] test git::query::tests::rejects_wrong_duplicate_or_missing_canonical_bare_pseudo_rows ... ok
[INFO] [stdout] test git::query::tests::worktree_toplevel_is_a_usage_error_outside_any_working_tree ... ok
[INFO] [stdout] test git::query::tests::worktree_toplevel_resolves_a_canonical_path_from_show_toplevel ... ok
[INFO] [stdout] test git::remote::tests::a_failed_probe_ref_delete_is_reported ... ok
[INFO] [stdout] test git::remote::tests::a_malformed_advertisement_is_a_failure_not_a_best_guess ... ok
[INFO] [stdout] test git::query::tests::resolves_candidates_through_each_fetch_refspec_and_sorts_them ... ok
[INFO] [stdout] test git::remote::tests::a_non_utf8_branch_reaches_the_refspec_as_raw_bytes ... ok
[INFO] [stdout] test git::remote::tests::a_non_zero_ls_remote_exit_is_a_failure_carrying_escaped_stderr ... ok
[INFO] [stdout] test git::remote::tests::a_probe_fetch_failure_names_the_branch_and_escapes_stderr ... ok
[INFO] [stdout] test git::remote::tests::a_remote_advertising_only_head_is_not_empty ... ok
[INFO] [stdout] test git::remote::tests::an_unexpected_ancestry_exit_is_a_failure ... ok
[INFO] [stdout] test git::remote::tests::ancestry_asks_git_with_end_of_options_before_the_revisions ... ok
[INFO] [stdout] test git::remote::tests::ancestry_is_classified_three_ways ... ok
[INFO] [stdout] test git::remote::tests::asks_the_remote_with_an_exact_argument_vector ... ok
[INFO] [stdout] test git::remote::tests::deleting_refuses_a_ref_outside_the_probe_namespace ... ok
[INFO] [stdout] test git::remote::tests::each_probe_ref_gets_a_fresh_nonce ... ok
[INFO] [stdout] test git::remote::tests::parses_the_measured_non_empty_advertisement ... ok
[INFO] [stdout] test git::remote::tests::purging_an_empty_namespace_deletes_nothing ... ok
[INFO] [stdout] test commands::clone::tests::dangling_remote_head_target_stops_before_layout_writes ... ok
[INFO] [stdout] test git::remote::tests::purging_deletes_every_listed_probe_ref_and_reports_the_names ... ok
[INFO] [stdout] test git::remote::tests::purging_refuses_a_ref_listed_outside_the_probe_namespace ... ok
[INFO] [stdout] test git::remote::tests::round_trips_a_non_utf8_branch_name_as_raw_bytes ... ok
[INFO] [stdout] test git::remote::tests::the_probe_fetch_uses_the_measured_flag_set ... ok
[INFO] [stdout] test git::remote::tests::the_probe_flag_set_is_the_sync_fetch_flag_set_by_construction ... ok
[INFO] [stdout] test git::remote::tests::passes_the_url_through_as_raw_bytes ... ok
[INFO] [stdout] test git::remote::tests::zero_bytes_means_the_remote_is_empty ... ok
[INFO] [stdout] test git::runner::tests::a_plain_invocation_is_not_locale_pinned ... ok
[INFO] [stdout] test git::runner::tests::builds_the_argument_vector_with_pins_first ... ok
[INFO] [stdout] test git::runner::tests::fake_preserves_non_unicode_argument_bytes ... ok
[INFO] [stdout] test git::runner::tests::fake_records_calls_and_returns_queued_responses ... ok
[INFO] [stdout] test git::runner::tests::run_classified_marks_the_invocation_and_otherwise_delegates_to_run ... ok
[INFO] [stdout] test git::runner::tests::includes_work_tree_when_set ... ok
[INFO] [stdout] test git::runner::tests::per_child_environment_preserves_order_and_locale_pin_wins_last ... ok
[INFO] [stdout] test git::runner::tests::the_locale_pin_is_environment_not_argv ... ok
[INFO] [stdout] test grove::discover::tests::recognises_a_grove_root ... ok
[INFO] [stdout] test git::runner::tests::run_ok_returns_failure_with_git_stderr ... ok
[INFO] [stdout] test grove::discover::tests::refuses_a_plain_directory ... ok
[INFO] [stdout] test grove::discover::tests::walks_ancestors_and_skips_false_grove_candidates ... ok
[INFO] [stdout] test grove::layout::tests::accepts_a_plain_branch_directory ... ok
[INFO] [stdout] test grove::layout::tests::accepts_nested_absolute_and_non_utf8_descendants ... ok
[INFO] [stdout] test grove::discover::tests::requires_real_entries_and_byte_exact_pointer_contents ... ok
[INFO] [stdout] test grove::layout::tests::assert_outside_grove_rejects_the_root_itself_and_a_descendant ... ok
[INFO] [stdout] test grove::layout::tests::assert_outside_grove_accepts_a_sibling_directory ... ok
[INFO] [stdout] test grove::layout::tests::creates_missing_parents_without_following_a_replacement_symlink ... ok
[INFO] [stdout] test grove::layout::tests::final_validation_rechecks_root_identity_after_descendant_walk ... ok
[INFO] [stdout] test grove::layout::tests::final_validation_rejects_a_replaced_grove_root ... ok
[INFO] [stdout] test grove::layout::tests::occupied_non_utf8_worktree_paths_are_escaped_reversibly ... ok
[INFO] [stdout] test grove::layout::tests::held_root_validation_never_creates_parents_in_a_replacement_root ... ok
[INFO] [stdout] test git::runner::tests::real_git_pins_lc_all_and_clears_language_only_when_classified ... ok
[INFO] [stdout] test grove::layout::tests::pointer_creation_never_replaces_a_concurrent_entry ... ok
[INFO] [stdout] test grove::layout::tests::rejects_layout_and_transaction_names_in_any_component ... ok
[INFO] [stdout] test git::runner::tests::real_runner_closes_child_stdin_so_git_never_blocks_on_a_prompt ... ok
[INFO] [stdout] test git::runner::tests::run_classified_yields_the_c_locale_diagnostic_text ... ok
[INFO] [stdout] test grove::layout::tests::rejects_paths_that_are_not_strict_descendants ... ok
[INFO] [stdout] test grove::layout::tests::rejects_a_symlinked_or_non_directory_ancestor ... ok
[INFO] [stdout] test grove::metadata::tests::a_creating_grove_carrying_a_classic_url_is_a_failure_not_a_silent_classic_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::a_creating_grove_with_a_classic_url_is_a_failure ... ok
[INFO] [stdout] test grove::metadata::tests::a_creating_grove_with_an_incomplete_four_key_set_is_a_failure_in_every_position ... ok
[INFO] [stdout] test grove::metadata::tests::a_half_written_receipt_is_a_failure_not_a_decision ... ok
[INFO] [stdout] test grove::metadata::tests::a_pre_0_3_cloned_grove_has_no_receipt_and_that_is_not_torn ... ok
[INFO] [stdout] test grove::layout::tests::rejects_any_occupied_final_entry_including_a_broken_symlink ... ok
[INFO] [stdout] test grove::metadata::tests::an_in_flight_grove_with_both_keys_yields_the_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::an_unpublished_grove_carrying_any_creating_key_is_a_failure ... ok
[INFO] [stdout] test grove::metadata::tests::an_unpublished_grove_carrying_receipt_keys_is_a_failure ... ok
[INFO] [stdout] test grove::metadata::tests::a_creating_grove_with_all_four_keys_and_no_url_yields_the_creating_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::an_unpublished_grove_without_receipt_keys_has_no_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::an_unpublished_grove_carrying_a_classic_receipt_is_a_failure_even_with_no_creating_keys ... ok
[INFO] [stdout] test grove::metadata::tests::classic_receipt_returns_none_for_a_creating_grove_with_no_classic_url ... ok
[INFO] [stdout] test grove::metadata::tests::creating_state_round_trips_through_as_str_and_parse ... ok
[INFO] [stdout] test grove::metadata::tests::every_other_classic_receipt_case_is_unchanged_by_the_creating_arm ... ok
[INFO] [stdout] test grove::metadata::tests::publishing_and_published_groves_created_by_a_bare_publish_have_no_creating_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::publishing_and_published_groves_created_through_create_carry_the_creating_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::publishing_and_published_groves_with_a_partial_creating_key_set_are_a_failure ... ok
[INFO] [stdout] test grove::metadata::tests::propagates_an_unexpected_config_read_failure_with_escaped_stderr ... ok
[INFO] [stdout] test grove::metadata::tests::publishing_without_a_receipt_is_a_failure ... ok
[INFO] [stdout] test grove::metadata::tests::reads_the_receipt_keys_back_without_losing_non_utf8_bytes ... ok
[INFO] [stdout] test git::runner::tests::real_runner_drains_stdout_and_stderr_larger_than_pipe_capacity ... ok
[INFO] [stdout] test grove::metadata::tests::rejects_a_malformed_version ... ok
[INFO] [stdout] test grove::metadata::tests::rejects_an_unknown_publish_state ... ok
[INFO] [stdout] test grove::metadata::tests::an_unpublished_grove_without_any_creating_key_has_no_creating_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::reads_values_back_without_losing_non_utf8_name_bytes ... ok
[INFO] [stdout] test grove::metadata::tests::refuses_a_newer_layout_version_before_writing ... ok
[INFO] [stdout] test grove::metadata::tests::reports_absent_receipt_keys_as_none ... ok
[INFO] [stdout] test grove::metadata::tests::rollback_creating_receipt_clears_the_four_keys_before_writing_unpublished_last ... ok
[INFO] [stdout] test grove::metadata::tests::rollback_creating_receipt_is_idempotent_on_an_absent_or_partial_receipt ... ok
[INFO] [stdout] test grove::metadata::tests::write_receipt_on_a_creating_grove_leaves_the_three_new_keys_untouched ... ok
[INFO] [stdout] test grove::metadata::tests::write_receipt_preserves_raw_url_and_remote_bytes ... ok
[INFO] [stdout] test grove::metadata::tests::writes_every_present_key_through_the_absolute_config_file ... ok
[INFO] [stdout] test grove::metadata::tests::treats_a_missing_version_as_legacy_and_allows_it ... ok
[INFO] [stdout] test grove::metadata::tests::write_creating_receipt_writes_state_first_then_the_four_keys_in_order ... ok
[INFO] [stdout] test grove::metadata::tests::write_receipt_emits_exactly_three_writes_with_the_state_first ... ok
[INFO] [stdout] test grove::state::tests::labels_and_sync_policy_cover_every_state ... ok
[INFO] [stdout] test hooks::config::tests::a_similar_but_unmarked_entry_is_left_alone ... ok
[INFO] [stdout] test grove::metadata::tests::writes_non_utf8_branch_bytes_without_lossy_conversion ... ok
[INFO] [stdout] test hooks::config::tests::appends_the_group_to_an_absent_file ... ok
[INFO] [stdout] test hooks::config::tests::claude_and_then_codex_entries_both_land_and_a_rerun_is_byte_stable ... ok
[INFO] [stdout] test grove::metadata::tests::writes_the_receipt_keys_when_present ... ok
[INFO] [stdout] test grove::state::tests::classifier_preserves_precedence_and_complete_tracking_identity ... ok
[INFO] [stdout] test hooks::config::tests::exclude_entry_is_added_once_and_repeated_calls_converge ... ok
[INFO] [stdout] test hooks::config::tests::exclude_entry_preserves_crlf_convention ... ok
[INFO] [stdout] test hooks::config::tests::exclude_entry_preserves_unrelated_lines_and_adds_a_missing_final_newline ... ok
[INFO] [stdout] test grove::layout::tests::writes_the_exact_grove_pointer ... ok
[INFO] [stdout] test hooks::config::tests::refuses_malformed_json_a_non_object_root_and_a_non_array_pre_tool_use ... ok
[INFO] [stdout] test hooks::config::tests::merged_bytes_dispatches_on_format ... ok
[INFO] [stdout] test hooks::config::tests::preserves_unrelated_top_level_and_event_content ... ok
[INFO] [stdout] test hooks::config::tests::refuses_malformed_toml_and_every_wrong_typed_key ... ok
[INFO] [stdout] test hooks::config::tests::replaces_the_first_owned_entry_and_drops_duplicates_in_place ... ok
[INFO] [stdout] test hooks::config::tests::shell_quote_escapes_an_embedded_single_quote ... ok
[INFO] [stdout] test hooks::config::tests::shell_quote_wraps_a_path_containing_a_space ... ok
[INFO] [stdout] test hooks::config::tests::the_json_and_toml_emitters_describe_one_group ... ok
[INFO] [stdout] test hooks::config::tests::toml_flips_an_explicitly_disabled_hooks_feature_on ... ok
[INFO] [stdout] test hooks::config::tests::toml_merges_into_an_inline_features_table_without_flattening_it ... ok
[INFO] [stdout] test hooks::config::tests::toml_merges_into_an_inline_pre_tool_use_array_without_rewriting_it ... ok
[INFO] [stdout] test hooks::config::tests::writes_the_measured_codex_shape_from_nothing ... ok
[INFO] [stdout] test hooks::decision::tests::apply_patch_candidates_never_treats_a_diff_body_line_as_a_path ... ok
[INFO] [stdout] test hooks::config::tests::toml_preserves_unrelated_settings_comments_and_other_events ... ok
[INFO] [stdout] test hooks::decision::tests::apply_patch_candidates_rejects_an_unknown_control_line ... ok
[INFO] [stdout] test hooks::config::tests::toml_replaces_a_stale_command_in_place_and_drops_duplicates ... ok
[INFO] [stdout] test hooks::config::tests::toml_rerun_is_byte_stable ... ok
[INFO] [stdout] test hooks::decision::tests::argv_words_in_token_keeps_only_the_words_a_redirect_does_not_consume ... ok
[INFO] [stdout] test hooks::decision::tests::bash_candidates_also_yields_the_value_half_of_a_glued_option ... ok
[INFO] [stdout] test hooks::decision::tests::bash_candidates_looks_inside_a_quoted_multi_word_argument ... ok
[INFO] [stdout] test hooks::decision::tests::bash_candidates_splits_a_redirection_glued_to_a_preceding_word ... ok
[INFO] [stdout] test hooks::decision::tests::bash_candidates_still_allows_ordinary_quoted_arguments_with_no_hidden_path ... ok
[INFO] [stdout] test hooks::decision::tests::bash_candidates_strips_a_glued_file_descriptor_redirection ... ok
[INFO] [stdout] test hooks::decision::tests::bash_candidates_strips_glued_redirection_operators ... ok
[INFO] [stdout] test hooks::decision::tests::decide_allows_a_compound_but_safe_command_with_no_cwd_changing_or_indirection ... ok
[INFO] [stdout] test hooks::decision::tests::decide_allows_an_ordinary_new_file_elsewhere ... ok
[INFO] [stdout] test hooks::decision::tests::decide_allows_an_unrelated_bash_command ... ok
[INFO] [stdout] test hooks::decision::tests::decide_allows_ordinary_quoted_prose_that_mentions_a_tracked_program_name ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_bash_command_reaching_bare_through_a_redirection_glued_to_a_word ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_bash_command_reaching_bare_through_a_glued_option_value ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_bash_command_reaching_bare_through_a_nested_quote ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_bash_command_reaching_bare_through_an_fd_redirection ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_dispatch_word_with_no_operator_evidence_hidden_in_quoted_content ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_bash_command_that_cats_bare_config ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_directory_changing_flag ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_protected_path_hidden_inside_a_quoted_interpreter_argument ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_git_alias_hiding_a_c_flag_behind_an_unrecognized_prefix ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_subshell_wrapping_the_cd_bypass ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_a_write_whose_new_leaf_lands_under_bare ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_alias_and_shopt_as_command_words ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_apply_patch_touching_bare_via_move_to ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_an_unrecognized_wrapper_hidden_inside_a_quoted_interpreter_argument ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_cd_hidden_inside_quoted_shell_code_passed_to_an_unnamed_interpreter ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_command_substitution_used_as_a_redirect_target ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_edit_of_the_exact_root_git_pointer ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_each_dispatch_reserved_word_and_unrecognized_prefix_bypass ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_env_dash_capital_c_but_still_allows_grep_and_diff_context_flags ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_eval_of_a_computed_string ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_the_short_c_flag_hidden_inside_quoted_content_with_no_other_evidence ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_the_reported_cd_bypass_because_it_refuses_to_reason_not_because_it_resolves ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_unquoted_brace_and_tilde_expansion ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_each_glued_separator_assignment_and_prefix_redirection_bypass ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_the_line_continuation_bypass ... ok
[INFO] [stdout] test hooks::decision::tests::looks_like_shell_code_flags_operator_evidence ... ok
[INFO] [stdout] test hooks::decision::tests::effective_argv_keeps_quoted_redirect_looking_text_but_strips_a_real_one ... ok
[INFO] [stdout] test hooks::decision::tests::looks_like_shell_code_does_not_flag_ordinary_quoted_data ... ok
[INFO] [stdout] test hooks::decision::tests::resolve_follows_a_symlink_in_the_existing_prefix ... ok
[INFO] [stdout] test hooks::decision::tests::resolve_makes_a_relative_nonexistent_path_absolute_against_base ... ok
[INFO] [stdout] test hooks::decision::tests::resolve_rejects_a_parent_dir_component_in_the_nonexistent_tail ... ok
[INFO] [stdout] test hooks::decision::tests::shell_tokens_joins_a_backslash_newline_line_continuation ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_allows_brace_and_tilde_when_quoted ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_allows_glob_metacharacters_when_quoted ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_allows_tilde_mid_word_but_still_denies_it_at_a_word_boundary ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_only_treats_colon_as_a_tilde_boundary_inside_an_assignment_word ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_requires_the_colon_itself_to_be_unquoted_in_an_assignment ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_treats_line_continuation_as_invisible_for_tilde_boundary ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_command_word_denies_dispatch_wrappers_reserved_words_and_unrecognized_prefixes ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_command_word_finds_cd_past_a_line_continuation_and_denies_new_reserved_words ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_character_allows_non_expanding_braces_but_still_denies_live_ones ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_command_word_finds_cd_past_glued_separators_assignments_and_prefix_redirections ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_command_word_skips_multiple_assignments_and_a_bare_redirect_operator ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_command_word_still_allows_ordinary_assignments_and_prefix_redirections ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_command_word_ignores_a_redirection_target_that_looks_like_a_command_word ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_construct_denies_cd_hidden_inside_quoted_shell_code ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_construct_flags_each_named_construct ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_construct_allows_ordinary_commands ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_construct_still_allows_ordinary_quoted_text_containing_dollar_and_parens ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_allows_an_unrecognized_program_that_mentions_nothing ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_allows_ordinary_clustered_options_with_no_c ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_accepts_envs_own_looser_assignment_shape ... ok
[INFO] [stdout] test hooks::decision::tests::option_grammar_oracle::git_global_option_grammar_has_no_undetected_value_taking_flags ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_covers_git_make_and_tar_short_c_form_too ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_covers_glued_values_and_paths_to_the_program ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_denies_an_unrecognized_option_on_env_or_timeout ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_denies_an_unrecognized_program_that_mentions_a_known_one ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_denies_env_split_string_unconditionally ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_denies_rather_than_skips_an_unrecognized_prefix_hiding_a_later_c ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_does_not_mistake_a_value_taking_flags_glued_value_for_c ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_does_not_swallow_c_after_bare_exec_path ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_fallback_does_not_see_its_own_resolved_wrapper_chain ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_finds_short_c_past_a_clustered_separate_value_option ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_is_unaffected_by_a_redirection_in_any_position_or_shape ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_covers_clustered_short_options_and_transparent_wrappers ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_recognizes_env_argv0_and_signal_options ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_sees_through_a_redirect_operator_glued_to_a_quoted_target ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_sees_through_a_redirect_with_a_separate_word_target ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_still_finds_short_c_past_a_separate_value_option ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_still_scans_tar_and_make_past_a_non_option_argument ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_treats_env_as_a_transparent_wrapper_too ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_treats_envs_lone_dash_as_a_no_value_flag ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_recognizes_every_bash_redirection_operator_spelling ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_treats_timeout_as_a_wrapper_with_a_duration_positional ... ok
[INFO] [stdout] test hooks::payload::tests::accepts_camel_case_edit ... ok
[INFO] [stdout] test hooks::payload::tests::accepts_snake_case_bash ... ok
[INFO] [stdout] test hooks::payload::tests::accepts_write_and_apply_patch ... ok
[INFO] [stdout] test hooks::decision::tests::unsafe_bash_directory_flag_respects_option_and_command_boundaries ... ok
[INFO] [stdout] test hooks::payload::tests::rejects_an_unsupported_tool_and_a_missing_required_field ... ok
[INFO] [stdout] test hooks::payload::tests::rejects_invalid_json_a_non_object_root_and_a_missing_tool_name ... ok
[INFO] [stdout] test hooks::response::tests::claude_compatible_deny_carries_both_dialects_composite ... ok
[INFO] [stdout] test hooks::response::tests::allow_is_an_empty_object_on_both_protocols ... ok
[INFO] [stdout] test hooks::response::tests::codex_deny_is_nested_only ... ok
[INFO] [stdout] test output::porcelain::tests::emits_exact_versioned_raw_nul_protocol ... ok
[INFO] [stdout] test output::porcelain::tests::emits_the_in_progress_status_value ... ok
[INFO] [stdout] test output::tests::human_output_reversibly_escapes_raw_path_and_ref_bytes ... ok
[INFO] [stdout] test output::tests::propagates_stdout_write_failures_as_failure ... ok
[INFO] [stdout] test policy::clone_options::tests::handles_long_and_short_values_without_accepting_operand_injection ... ok
[INFO] [stdout] test policy::clone_options::tests::computes_effective_narrowing_after_cancellations ... ok
[INFO] [stdout] test policy::clone_options::tests::classifies_every_git_2_47_long_option_and_negation ... ok
[INFO] [stdout] test policy::clone_options::tests::preserves_non_utf8_values_and_rejects_non_ascii_option_names_reversibly ... ok
[INFO] [stdout] test hooks::decision::tests::decide_denies_unquoted_glob_metacharacters ... ok
[INFO] [stdout] test policy::clone_options::tests::keeps_the_last_safe_remote_name_as_raw_bytes ... ok
[INFO] [stdout] test policy::clone_options::tests::requires_effective_dissociation_for_effective_references ... ok
[INFO] [stdout] test policy::clone_options::tests::resolves_exact_names_semantic_aliases_and_unique_abbreviations ... ok
[INFO] [stdout] test policy::clone_options::tests::validates_config_assignments_without_case_or_subsection_evasions ... ok
[INFO] [stdout] test policy::env::tests::finds_numbered_config_overlay_variables ... ok
[INFO] [stdout] test policy::env::tests::finds_repository_redirecting_variables ... ok
[INFO] [stdout] test policy::env::tests::leaves_transport_variables_alone ... ok
[INFO] [stdout] test policy::clone_options::tests::refuses_all_layout_spellings_even_when_negated_or_abbreviated ... ok
[INFO] [stdout] test policy::env::tests::returns_findings_in_stable_name_and_value_order ... ok
[INFO] [stdout] test policy::clone_options::tests::refuses_remote_names_that_can_be_reparsed_as_options ... ok
[INFO] [stdout] test policy::env::tests::scans_non_utf8_values_without_panicking_or_losing_bytes ... ok
[INFO] [stdout] test policy::platform::tests::compares_against_the_minimum ... ok
[INFO] [stdout] test policy::platform::tests::parses_glab_version_keyword_output ... ok
[INFO] [stdout] test policy::platform::tests::parses_measured_gh_version_output ... ok
[INFO] [stdout] test policy::platform::tests::parses_measured_glab_version_output ... ok
[INFO] [stdout] test policy::platform::tests::parses_ordinary_version_output ... ok
[INFO] [stdout] test policy::platform::tests::parses_provider_version_with_a_suffixed_patch ... ok
[INFO] [stdout] test policy::platform::tests::parses_vendor_suffixed_version ... ok
[INFO] [stdout] test policy::platform::tests::provider_version_at_least_compares_major_minor_only ... ok
[INFO] [stdout] test policy::platform::tests::rejects_an_unparsable_dotted_version_token_with_the_token_attached ... ok
[INFO] [stdout] test policy::platform::tests::rejects_an_unparsable_patch_with_the_token_attached ... ok
[INFO] [stdout] test policy::platform::tests::rejects_invalid_version_prefix ... ok
[INFO] [stdout] test policy::platform::tests::rejects_nonnumeric_patch ... ok
[INFO] [stdout] test policy::platform::tests::rejects_unparsable_gh_output ... ok
[INFO] [stdout] test policy::platform::tests::rejects_unparsable_glab_output ... ok
[INFO] [stdout] test policy::env::tests::sanitizes_when_an_unrelated_parent_variable_is_not_unicode ... ok
[INFO] [stdout] test policy::platform::tests::rejects_unparsable_output ... ok
[INFO] [stdout] test policy::tests::non_terminal_override_warns_and_checks_the_git_version ... ok
[INFO] [stdout] test policy::env::tests::removes_every_unsafe_variable_from_a_child_process ... ok
[INFO] [stdout] test policy::tests::terminal_override_requires_exact_lowercase_y_or_yes ... ok
[INFO] [stdout] test skill::tests::the_document_carries_no_version_stamp ... ok
[INFO] [stdout] test skill::tests::the_document_has_yaml_frontmatter_naming_the_tool ... ok
[INFO] [stdout] test skill::tests::the_document_protects_bare_and_never_smuggles_the_orchestration_convention ... ok
[INFO] [stdout] test skill::tests::write_emits_the_embedded_document_verbatim ... ok
[INFO] [stdout] test transaction::engine::tests::abort_direction_is_persisted_before_reverse_progress ... ok
[INFO] [stdout] test policy::tests::refuses_an_unsafe_environment_before_querying_git ... ok
[INFO] [stdout] test policy::tests::refuses_git_older_than_the_measured_minimum ... ok
[INFO] [stdout] test transaction::engine::tests::after_advances_without_reapplying_and_ambiguous_refuses ... ok
[INFO] [stdout] test transaction::engine::tests::before_applies_fsyncs_and_persists_done ... ok
[INFO] [stdout] test transaction::journal::tests::abort_direction_is_durable_and_only_then_allows_done_to_pending ... ok
[INFO] [stdout] test transaction::failpoint::tests::disabled_checkpoints_count_without_failing ... ok
[INFO] [stdout] test transaction::failpoint::tests::featureless_build_has_no_active_failpoint_mode ... ok
[INFO] [stdout] test transaction::journal::tests::next_generation_changes_exactly_one_legal_field ... ok
[INFO] [stdout] test transaction::journal::tests::is_legacy_shaped_distinguishes_native_from_legacy_bytes ... ok
[INFO] [stdout] test transaction::journal::tests::durable_replacement_uses_the_fixed_new_name_and_leaves_valid_current ... ok
[INFO] [stdout] test transaction::journal::tests::paths_reject_absolute_dot_parent_slash_and_nul_components ... ok
[INFO] [stdout] test transaction::journal::tests::raw_bytes_are_tagged_lowercase_hex_and_round_trip_non_utf8 ... ok
[INFO] [stdout] test transaction::journal::tests::strict_parser_rejects_unknown_schema_duplicates_hash_mismatch_and_trailing_bytes ... ok
[INFO] [stdout] test transaction::journal::tests::parse_strict_accepts_and_upgrades_a_schema_1_journal_with_guide_evidence ... ok
[INFO] [stdout] test policy::clone_options::tests::keeps_optional_pathspecs_attached_in_canonical_and_real_git_argv ... ok
[INFO] [stdout] test transaction::journal::tests::validate_legacy_pair_accepts_only_the_exact_pending_to_done_shape ... ok
[INFO] [stdout] test transaction::journal::tests::parse_strict_rejects_a_malformed_discarded_guide_region ... ok
[INFO] [stdout] test hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env ... FAILED
[INFO] [stdout] test commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec ... FAILED
[INFO] [stdout] test commands::clone::tests::malformed_clone_postconditions_stop_before_layout_writes ... ok
[INFO] [stdout] test hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env' (2331) panicked at src/hooks/decision.rs:3906:17:
[INFO] [stdout] env --help documents `--file`, which neither ENV_NO_VALUE_LONG_OPTIONS nor ENV_VALUE_LONG_OPTIONS recognizes in decision.rs — env's modeled option grammar is out of date
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c56d86477f1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5c56d86477f1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5c56d86477f1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5c56d86477f1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5c56d865ed8a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5c56d865ed8a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x5c56d864c07c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x5c56d864c07c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x5c56d861f8f6 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5c56d861f8f6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x5c56d863def9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5c56d8404940 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   12:     0x5c56d8404940 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5c56d863e0b2 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   14:     0x5c56d863e0b2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   15:     0x5c56d861f9a2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   16:     0x5c56d8618219 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5c56d862084d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   18:     0x5c56d865f62c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5c56d83e3f3c - git_grove[348c76bc2d5b3b5d]::hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hooks/decision.rs:3906:17
[INFO] [stdout]   20:     0x5c56d83c4007 - git_grove[348c76bc2d5b3b5d]::hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hooks/decision.rs:3878:49
[INFO] [stdout]   21:     0x5c56d827f4f6 - <git_grove[348c76bc2d5b3b5d]::hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5c56d83f7d8b - <fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5c56d83f7d8b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:701:18
[INFO] [stdout]   24:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:74
[INFO] [stdout]   25:     0x5c56d8404f65 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   27:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panicking::catch_unwind::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   28:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test_in_process
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:27
[INFO] [stdout]   30:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:645:43
[INFO] [stdout]   31:     0x5c56d83fe854 - test[aada8e7e76ba119b]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:675:41
[INFO] [stdout]   32:     0x5c56d83fe854 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5c56d8407ff2 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   36:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   37:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5c56d8407ff2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5c56d86467ff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   41:     0x5c56d86467ff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x7c10aea7fdfa - <unknown>
[INFO] [stdout]   43:     0x7c10aeb133d4 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec' (1669) panicked at src/commands/clone.rs:1005:10:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: GroveError { class: Failure, exit_code: None, message: "git symbolic-ref remote HEAD failed with exit status 128", detail: Some("fatal:\\x20Unable\\x20to\\x20read\\x20current\\x20working\\x20directory:\\x20No\\x20such\\x20file\\x20or\\x20directory\\n\n  partial clone retained at /tmp/.tmpNWqOMD/grove; inspect it and remove only confirmed invocation-created entries by hand before retrying") }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c56d86477f1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5c56d86477f1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5c56d86477f1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5c56d86477f1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5c56d865ed8a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5c56d865ed8a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x5c56d864c07c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x5c56d864c07c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x5c56d861f8f6 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5c56d861f8f6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x5c56d863def9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5c56d8404940 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   12:     0x5c56d8404940 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5c56d863e0b2 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   14:     0x5c56d863e0b2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   15:     0x5c56d861f9a2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   16:     0x5c56d8618219 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5c56d862084d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   18:     0x5c56d865f62c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5c56d865f382 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x5c56d835a7bf - <core[a373ad73a504971]::result::Result<git_grove[348c76bc2d5b3b5d]::grove::discover::Grove, git_grove[348c76bc2d5b3b5d]::error::GroveError>>::unwrap
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/result.rs:1232:23
[INFO] [stdout]   21:     0x5c56d835a7bf - git_grove[348c76bc2d5b3b5d]::commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec
[INFO] [stdout]                                at /opt/rustwide/workdir/src/commands/clone.rs:1005:10
[INFO] [stdout]   22:     0x5c56d8326cf7 - git_grove[348c76bc2d5b3b5d]::commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/commands/clone.rs:988:53
[INFO] [stdout]   23:     0x5c56d827e2f6 - <git_grove[348c76bc2d5b3b5d]::commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5c56d83f7d8b - <fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5c56d83f7d8b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:701:18
[INFO] [stdout]   26:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:74
[INFO] [stdout]   27:     0x5c56d8404f65 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   29:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panicking::catch_unwind::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   30:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test_in_process
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:27
[INFO] [stdout]   32:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:645:43
[INFO] [stdout]   33:     0x5c56d83fe854 - test[aada8e7e76ba119b]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:675:41
[INFO] [stdout]   34:     0x5c56d83fe854 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5c56d8407ff2 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   38:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   39:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5c56d8407ff2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5c56d86467ff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   43:     0x5c56d86467ff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7c10aea7fdfa - <unknown>
[INFO] [stdout]   45:     0x7c10aeb133d4 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout' (2334) panicked at src/hooks/decision.rs:3993:21:
[INFO] [stdout] timeout --help documents `-h` (`--help`), which neither TIMEOUT_NO_VALUE_SHORT_FLAGS nor TIMEOUT_VALUE_SHORT_FLAGS recognizes in decision.rs — timeout's modeled option grammar is out of date
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c56d86477f1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5c56d86477f1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5c56d86477f1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5c56d86477f1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5c56d865ed8a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5c56d865ed8a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x5c56d864c07c - core[a373ad73a504971]::io::write::default_write_fmt::<alloc[2e1b2a31b91974c5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x5c56d864c07c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x5c56d861f8f6 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5c56d861f8f6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x5c56d863def9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5c56d8404940 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   12:     0x5c56d8404940 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5c56d863e0b2 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
[INFO] [stdout]   14:     0x5c56d863e0b2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   15:     0x5c56d861f9a2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   16:     0x5c56d8618219 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5c56d862084d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   18:     0x5c56d865f62c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5c56d83e4c7c - git_grove[348c76bc2d5b3b5d]::hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hooks/decision.rs:3993:21
[INFO] [stdout]   20:     0x5c56d83c4037 - git_grove[348c76bc2d5b3b5d]::hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/hooks/decision.rs:3969:57
[INFO] [stdout]   21:     0x5c56d827f516 - <git_grove[348c76bc2d5b3b5d]::hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5c56d83f7d8b - <fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5c56d83f7d8b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:701:18
[INFO] [stdout]   24:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:74
[INFO] [stdout]   25:     0x5c56d8404f65 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   27:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panicking::catch_unwind::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   28:     0x5c56d8404f65 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<test[aada8e7e76ba119b]::run_test_in_process::{closure#0}>, core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test_in_process
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:27
[INFO] [stdout]   30:     0x5c56d8404f65 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:645:43
[INFO] [stdout]   31:     0x5c56d83fe854 - test[aada8e7e76ba119b]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:675:41
[INFO] [stdout]   32:     0x5c56d83fe854 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5c56d8407ff2 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   36:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   37:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5c56d8407ff2 - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5c56d8407ff2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5c56d86467ff - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
[INFO] [stdout]   41:     0x5c56d86467ff - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   42:     0x7c10aea7fdfa - <unknown>
[INFO] [stdout]   43:     0x7c10aeb133d4 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     commands::clone::tests::preserves_a_valid_preexisting_fetch_refspec
[INFO] [stdout]     hooks::decision::tests::option_grammar_oracle::env_option_grammar_matches_real_env
[INFO] [stdout]     hooks::decision::tests::option_grammar_oracle::timeout_option_grammar_matches_real_timeout
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 563 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.41s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169", kill_on_drop: false }`
[INFO] [stdout] 5f88b2a5db61862cdc5130c87f368c84b2fc6352a1a74eed70f80c60adfd6169
