[INFO] cloning repository https://github.com/block/lefthookmerge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/block/lefthookmerge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fblock%2Flefthookmerge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fblock%2Flefthookmerge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8221f76293c87042a3a511bcac601d3216d0577f [INFO] testing block/lefthookmerge against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fblock%2Flefthookmerge" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/block/lefthookmerge [INFO] finished tweaking git repo https://github.com/block/lefthookmerge [INFO] tweaked toml for git repo https://github.com/block/lefthookmerge written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/block/lefthookmerge on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/block/lefthookmerge 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5e3ddc2bb8af13ed6e304b3eba9a56f00310d4b39e78efb850509cf390d60ac2 [INFO] running `Command { std: "docker" "start" "-a" "5e3ddc2bb8af13ed6e304b3eba9a56f00310d4b39e78efb850509cf390d60ac2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5e3ddc2bb8af13ed6e304b3eba9a56f00310d4b39e78efb850509cf390d60ac2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e3ddc2bb8af13ed6e304b3eba9a56f00310d4b39e78efb850509cf390d60ac2", kill_on_drop: false }` [INFO] [stdout] 5e3ddc2bb8af13ed6e304b3eba9a56f00310d4b39e78efb850509cf390d60ac2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e4af08dac14bbcba47d83712727cb9d109e0663a7e7de5e5a193cba079c2129d [INFO] running `Command { std: "docker" "start" "-a" "e4af08dac14bbcba47d83712727cb9d109e0663a7e7de5e5a193cba079c2129d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling libc v0.2.185 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling jiff v0.2.23 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling env_filter v1.0.0 [INFO] [stderr] Compiling env_logger v0.11.10 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling lhm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.10s [INFO] running `Command { std: "docker" "inspect" "e4af08dac14bbcba47d83712727cb9d109e0663a7e7de5e5a193cba079c2129d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e4af08dac14bbcba47d83712727cb9d109e0663a7e7de5e5a193cba079c2129d", kill_on_drop: false }` [INFO] [stdout] e4af08dac14bbcba47d83712727cb9d109e0663a7e7de5e5a193cba079c2129d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ccf1e9e9e5ea05493b287355637e0abbab1949911809ba51f1284a0999043bdb [INFO] running `Command { std: "docker" "start" "-a" "ccf1e9e9e5ea05493b287355637e0abbab1949911809ba51f1284a0999043bdb", kill_on_drop: false }` [INFO] [stderr] Compiling lhm v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.83s [INFO] running `Command { std: "docker" "inspect" "ccf1e9e9e5ea05493b287355637e0abbab1949911809ba51f1284a0999043bdb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ccf1e9e9e5ea05493b287355637e0abbab1949911809ba51f1284a0999043bdb", kill_on_drop: false }` [INFO] [stdout] ccf1e9e9e5ea05493b287355637e0abbab1949911809ba51f1284a0999043bdb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] dc2d89d09bcd47921b5adc4c0664751df1595edd53f0ff0998dd854ce795ff7e [INFO] running `Command { std: "docker" "start" "-a" "dc2d89d09bcd47921b5adc4c0664751df1595edd53f0ff0998dd854ce795ff7e", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lhm-2bc7acac5f3b8831) [INFO] [stdout] [INFO] [stdout] running 103 tests [INFO] [stdout] test adapters::hooks_dir::tests::test_detect_file_not_dir ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_detect_with_dot_hooks ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_detect_with_git_hooks ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_detect_without_hooks_dir ... ok [INFO] [stdout] test adapters::husky::tests::test_detect_with_husky_dir ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_matching_scripts_ignores_non_executable ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_different_hooks ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_prefixed_only_no_exact_match ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_matching_scripts_sorted ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_git_hooks_dir ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_skips_non_executable_hooks ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_prefixed_scripts_in_git_hooks ... ok [INFO] [stdout] test adapters::husky::tests::test_detect_file_not_dir ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_without_hook_script ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_with_hook_script ... ok [INFO] [stdout] test adapters::husky::tests::test_generate_config_different_hooks ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_delegates_to_pre_commit ... ok [INFO] [stdout] test adapters::husky::tests::test_detect_without_husky_dir ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_matching_scripts_ignores_directories ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_detect_without_config ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_detect_directory_not_file ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_hook_stages_override_default ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_includes_remote_repos ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_detect_ignores_dot_git_hooks ... ok [INFO] [stdout] test adapters::husky::tests::test_generate_config_without_hook_script ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_no_stages_defaults_to_pre_commit ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_empty_repos ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_detect_with_config ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_hook_matches_stage_default_stages ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_multiple_stages ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_respects_stages ... ok [INFO] [stdout] test adapters::tests::test_detect_adapter_husky ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_hook_stages_override_default ... ok [INFO] [stdout] test adapters::tests::test_detect_adapter_pre_commit ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_hook_matches_stage_explicit ... ok [INFO] [stdout] test adapters::tests::test_detect_adapter_none ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_generate_respects_default_stages ... ok [INFO] [stdout] test adapters::husky::tests::test_generate_config_with_hook_script ... ok [INFO] [stdout] test config::tests::test_cli_flags_override_env_vars ... ok [INFO] [stdout] test config::tests::test_find_config_none ... ok [INFO] [stdout] test config::tests::test_find_config_yml ... ok [INFO] [stdout] test config::tests::test_global_config_override ... ok [INFO] [stdout] test config::tests::test_find_config_yaml ... ok [INFO] [stdout] test adapters::tests::test_detect_adapter_priority_pre_commit_over_husky ... ok [INFO] [stdout] test config::tests::test_find_config_dot_config_subdir ... ok [INFO] [stdout] test config::tests::test_find_config_prefers_yml_over_yaml ... ok [INFO] [stdout] test config::tests::test_find_config_toml ... ok [INFO] [stdout] test config::tests::test_find_config_dotted ... ok [INFO] [stdout] test config::tests::test_install_default_global_config_creates_when_missing ... ok [INFO] [stdout] test config::tests::test_install_default_global_config_skips_when_exists ... ok [INFO] [stdout] test config::tests::test_load_global_config_returns_none_when_missing ... ok [INFO] [stdout] test config::tests::test_repo_config_override ... ok [INFO] [stdout] test config::tests::test_overrides_from_env ... ok [INFO] [stdout] test hooks::tests::test_annotate_hooks_no_stage_fixed_on_pre_push ... ok [INFO] [stdout] test hooks::tests::test_annotate_hooks_parallel_on_safe_hooks ... ok [INFO] [stdout] test hooks::tests::test_annotate_hooks_stage_fixed_on_pre_commit_hooks ... ok [INFO] [stdout] test hooks::tests::test_annotate_hooks_no_parallel_on_serial_hooks ... ok [INFO] [stdout] test config::tests::test_load_global_config_returns_some_when_exists ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_dot_hooks_takes_priority_over_git_hooks ... ok [INFO] [stdout] test adapters::pre_commit::tests::test_hook_matches_stage_no_stages_defaults_to_pre_commit ... ok [INFO] [stdout] test adapters::tests::test_detect_adapter_hooks_dir ... ok [INFO] [stdout] test hooks::tests::test_is_hook_name ... ok [INFO] [stdout] test hooks::tests::test_create_hook_scripts_removes_stale_hooks ... ok [INFO] [stdout] test hooks::tests::test_annotate_hooks_skips_non_hook_keys ... ok [INFO] [stdout] test hooks::tests::test_create_hook_scripts_overwrites_existing ... ok [INFO] [stdout] test merge::tests::test_merge_configs_repo_overrides_scalars ... ok [INFO] [stdout] test merge::tests::test_merge_jobs_unnamed_appended ... ok [INFO] [stdout] test merge::tests::test_merge_configs_global_only_hook_preserved ... ok [INFO] [stdout] test merge::tests::test_merge_configs_cross_format_commands_vs_jobs ... ok [INFO] [stdout] test merge::tests::test_merge_jobs_named_dedup ... ok [INFO] [stdout] test merge::tests::test_merge_real_configs ... ok [INFO] [stdout] test hooks::tests::test_create_hook_scripts_replaces_symlinks ... ok [INFO] [stdout] test hooks::tests::test_hook_script_content ... ok [INFO] [stdout] test hooks::tests::test_hook_script_embeds_hook_name_not_filename ... ok [INFO] [stdout] test merge::tests::test_merge_configs_commands_dedup ... ok [INFO] [stdout] test tests::test_install_scope_system_config_dir ... ok [INFO] [stdout] test tests::test_install_scope_system_git_flag ... ok [INFO] [stdout] test tests::test_install_scope_system_hooks_dir ... ok [INFO] [stdout] test tests::test_install_scope_user_config_dir ... ok [INFO] [stdout] test tests::test_install_scope_user_git_flag ... ok [INFO] [stdout] test hooks::tests::test_create_hook_scripts ... ok [INFO] [stdout] test tests::test_install_scope_user_hooks_dir_under_local ... ok [INFO] [stdout] test tests::test_merge_layers_empty ... ok [INFO] [stdout] test tests::test_merge_layers_single ... ok [INFO] [stdout] test tests::test_resolve_config_adapter_used_when_no_repo ... ok [INFO] [stdout] test tests::test_merge_layers_later_overrides_earlier ... ok [INFO] [stdout] test tests::test_install_scope_base_dir_shared_structure ... ok [INFO] [stdout] test tests::test_resolve_config_none ... ok [INFO] [stdout] test tests::test_resolve_config_no_tty_in_repo_preserved ... ok [INFO] [stdout] test tests::test_run_git_hook_missing_hook_succeeds ... ok [INFO] [stdout] test tests::test_strip_no_tty_absent ... ok [INFO] [stdout] test tests::test_strip_no_tty ... ok [INFO] [stdout] test tests::test_resolve_config_all_three_layers ... ok [INFO] [stdout] test tests::test_resolve_config_strips_no_tty_from_global_when_local_present ... ok [INFO] [stdout] test tests::test_resolve_config_system_only ... ok [INFO] [stdout] test tests::test_merge_layers_three_layers ... ok [INFO] [stdout] test tests::test_require_root_fails_for_non_root ... ok [INFO] [stdout] test tests::test_resolve_config_keeps_no_tty_in_global_when_no_local ... ok [INFO] [stdout] test tests::test_run_git_hook_executes_script ... ok [INFO] [stdout] test tests::test_run_git_hook_failing_script ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_generate_config_with_prefixed_scripts ... ok [INFO] [stdout] test tests::test_resolve_config_repo_beats_adapter ... ok [INFO] [stdout] test adapters::hooks_dir::tests::test_dot_hooks_follows_symlinks ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 103 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "dc2d89d09bcd47921b5adc4c0664751df1595edd53f0ff0998dd854ce795ff7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc2d89d09bcd47921b5adc4c0664751df1595edd53f0ff0998dd854ce795ff7e", kill_on_drop: false }` [INFO] [stdout] dc2d89d09bcd47921b5adc4c0664751df1595edd53f0ff0998dd854ce795ff7e