[INFO] fetching crate treeboot-core 0.16.0...
[INFO] testing treeboot-core-0.16.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate treeboot-core 0.16.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate treeboot-core 0.16.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate treeboot-core 0.16.0
[INFO] tweaked toml for crates.io crate treeboot-core 0.16.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate treeboot-core 0.16.0 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 crates.io crate treeboot-core 0.16.0 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] [stderr] warning: Cargo.toml: `lints.rust.future-incompatible` is deprecated in favor of `lints.rust.future_incompatible` and will not work in a future edition
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 | homepage = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 | repository = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |              -----------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `treeboot-core` (manifest) generated 2 warnings
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca
[INFO] running `Command { std: "docker" "start" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", 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" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca" "/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" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", 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" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.rust.future-incompatible` is deprecated in favor of `lints.rust.future_incompatible` and will not work in a future edition
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 | homepage = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 | repository = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |              -----------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `treeboot-core` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling globset v0.4.20
[INFO] [stderr]    Compiling ignore v0.4.33
[INFO] [stderr]    Compiling treeboot-core v0.16.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.22s
[INFO] running `Command { std: "docker" "inspect" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", 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" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.rust.future-incompatible` is deprecated in favor of `lints.rust.future_incompatible` and will not work in a future edition
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 | homepage = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 | repository = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |              -----------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `treeboot-core` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling treeboot-core v0.16.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.89s
[INFO] running `Command { std: "docker" "inspect" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", 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" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.rust.future-incompatible` is deprecated in favor of `lints.rust.future_incompatible` and will not work in a future edition
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 | homepage = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 | repository = "https://github.com/jimeh/treeboot"
[INFO] [stderr]    |              -----------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `treeboot-core` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/treeboot-core/973ed938159a74c6/out/treeboot_core-973ed938159a74c6)
[INFO] [stdout] 
[INFO] [stdout] running 356 tests
[INFO] [stdout] test commands::tests::command_runtime_should_reject_worktree_root_replacement_in_both_phases ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_fail_when_start_reporting_fails ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_reject_cwd_symlink_retargeted_after_planning ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_report_each_dry_run_command_without_spawning ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_reject_live_cwd_symlink_escape_without_spawning ... ok
[INFO] [stdout] test commands::tests::command_label_should_format_direct_invocation ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_report_dry_run_without_spawning ... ok
[INFO] [stdout] test commands::tests::command_runtime_should_allow_root_replacement_failure_in_both_phases ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_fail_when_dry_run_reporting_fails ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_run_in_declared_in_worktree_symlink_cwd ... ok
[INFO] [stdout] test config::tests::config_default_should_be_empty ... ok
[INFO] [stdout] test config::tests::parse_config_should_accept_escaped_include_prefixes ... ok
[INFO] [stdout] test config::tests::parse_config_should_allow_program_without_args ... ok
[INFO] [stdout] test config::tests::parse_config_should_attribute_default_slug_constraint_to_declared_worktree_id ... ok
[INFO] [stdout] test commands::tests::command_label_should_include_name_and_invocation ... ok
[INFO] [stdout] test config::tests::parse_config_should_apply_runtime_options ... ok
[INFO] [stdout] test config::tests::parse_config_should_default_include_to_empty ... ok
[INFO] [stdout] test config::tests::parse_config_should_default_omitted_worktree_identity_fields ... ok
[INFO] [stdout] test config::tests::parse_config_should_keep_comment_and_blank_patterns_valid_in_ignore ... ok
[INFO] [stdout] test config::tests::parse_config_should_locate_invalid_worktree_slug_table_declaration ... ok
[INFO] [stdout] test config::tests::parse_config_should_accept_exact_worktree_slug_length_boundary ... ok
[INFO] [stdout] test config::tests::parse_config_should_apply_file_defaults ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_treat_dangling_cwd_symlink_as_start_failure ... ok
[INFO] [stdout] test config::tests::parse_config_should_allow_empty_include_with_sync_delete ... ok
[INFO] [stdout] test config::tests::parse_config_should_default_teardown_commands_to_empty ... ok
[INFO] [stdout] test config::tests::parse_config_should_normalize_command_forms ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_run_shell_command_with_merged_env_and_cwd ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_stop_after_fatal_spawn_failure ... ok
[INFO] [stdout] test config::tests::parse_config_should_normalize_ignored_metadata ... ok
[INFO] [stdout] test config::tests::parse_config_should_normalize_file_operations_in_spec_order ... ok
[INFO] [stdout] test config::tests::parse_config_should_prepend_default_ignore_to_copy_and_sync ... ok
[INFO] [stdout] test config::tests::parse_config_should_normalize_teardown_command_forms_in_order ... ok
[INFO] [stdout] test config::tests::parse_config_should_not_apply_default_ignore_to_symlink ... ok
[INFO] [stdout] test config::tests::parse_config_should_preserve_explicit_ignore_patterns ... ok
[INFO] [stdout] test config::tests::parse_config_should_normalize_relative_paths_through_existing_aliases ... ok
[INFO] [stdout] test config::tests::parse_config_should_preserve_explicit_include_patterns ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_use_in_worktree_cwd_created_after_planning ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_compare_on_copy_file_operations ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_ignore_on_symlink_file_operations ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_delete_on_symlink_file_operations ... ok
[INFO] [stdout] test config::tests::parse_config_should_preserve_explicit_sync_options ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_include_with_sync_delete ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_args_without_program ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_async_command_field ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_insufficient_worktree_slug_max_length ... ok
[INFO] [stdout] test config::tests::parse_config_should_prepend_default_ignore_to_mixed_file_entries ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_include_on_symlink_file_operations ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_legacy_delete_extra_field ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_invalid_worktree_slug_separators ... ok
[INFO] [stdout] test config::tests::parse_config_should_normalize_command_metadata_and_defaults ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_missing_command_invocation ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_run_commands_in_declaration_order ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_unknown_fields ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_missing_file_source ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_ignored_metadata_on_symlink_file_operations ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_missing_file_operation ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_stop_after_fatal_singleton_failure ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_unreleased_composite_worktree_id_fields ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_partial_identity_with_incompatible_defaults ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_inert_include_patterns ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_worktree_id_length_outside_digest ... ok
[INFO] [stdout] test config::tests::parse_config_should_report_invalid_toml_location ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_mutually_exclusive_command_fields ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_operation_in_specific_file_groups ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_nested_validation_options ... ok
[INFO] [stdout] test config::tests::parse_config_should_resolve_absolute_paths_without_rebasing ... ok
[INFO] [stdout] test config::tests::parse_config_should_reject_symlinks_on_symlink_file_operations ... ok
[INFO] [stdout] test config::tests::stable_command_constructors_should_apply_modifiers ... ok
[INFO] [stdout] test config::tests::parse_config_should_serialize_normalized_identity_settings ... ok
[INFO] [stdout] test config::tests::stable_operation_constructors_should_install_defaults ... ok
[INFO] [stdout] test context::tests::build_environment_should_set_codex_worktree_to_worktree_path ... ok
[INFO] [stdout] test context::tests::build_environment_should_set_default_worktree_identifier ... ok
[INFO] [stdout] test context::tests::environment_input_conductor_default_branch_should_ignore_empty_value ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_allow_spawn_failures_when_configured ... ok
[INFO] [stdout] test context::tests::resolve_worktree_path_should_join_relative_paths ... ok
[INFO] [stdout] test context::tests::environment_input_root_candidates_should_ignore_empty_values_in_order ... ok
[INFO] [stdout] test file_execution::tests::execute_file_operation_group_should_apply_verbose_file_actions ... ok
[INFO] [stdout] test context::tests::resolve_worktree_path_should_keep_absolute_paths ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_warn_and_continue_after_allowed_failure ... ok
[INFO] [stdout] test file_execution::tests::execute_file_operation_group_should_report_verbose_metadata_delete_skip_and_warning ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_delete_before_read_only_directory_metadata ... ok
[INFO] [stdout] test file_execution::tests::execute_file_operation_group_should_report_verbose_dry_run_actions ... ok
[INFO] [stdout] test file_execution::tests::execute_file_operation_group_should_reject_metadata_repair_through_symlink_parent ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_delete_nested_target_only_entries ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_copy_missing_directory_tree ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_copy_read_only_file ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_delete_inside_existing_read_only_directory ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_copy_file_without_owner_write ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_copy_child_inside_existing_read_only_directory ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_copy_missing_directory_files_only ... ok
[INFO] [stdout] test file_execution::tests::execute_file_operation_group_should_reject_canonical_target_with_context_alias ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_copy_read_only_directory_children_before_metadata ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_delete_target_only_entries_when_sync_delete_is_true ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_copy_file_over_existing_symlink ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_copy_directory_files_without_deleting_extras ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_ignore_sync_file_permissions_when_configured ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_copy_file_over_directory_symlink_without_touching_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_symlink_over_existing_file ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_symlink_over_existing_symlink ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_leave_dry_run_unmutated ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_leave_unchanged_metadata_sync_silent ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_leave_unchanged_checksum_sync_silent ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_force_sync_file_like_default ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_ignore_sync_directory_permissions_when_configured ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_preserve_sync_directory_extras_by_default ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_map_lifecycle_event_failures_to_output_errors ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_file_to_directory_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_file_to_directory_target_even_with_force ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_directory_to_symlink_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_leave_unchanged_sync_silent_in_dry_run ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_file_to_directory_target_in_dry_run ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_existing_symlink_target_in_strict ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_preserve_copied_source_symlinks ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_preserved_source_symlink_with_missing_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_preserved_source_symlink_that_changes_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_directory_to_file_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_preserve_ignored_sync_delete_targets ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_source_that_resolves_outside_root_at_apply ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_preserved_source_symlink_that_escapes_before_apply ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_unsupported_directory_target_file_type ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_symlink_target_parent_before_copy ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_symlink_to_existing_directory_even_with_force ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_preserved_source_that_stops_being_symlink ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_sync_source_symlink_change_before_replacing_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_sync_directory_to_file_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_sync_symlink_to_existing_directory ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_repair_sync_directory_permissions ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_sync_file_to_directory_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_repair_sync_file_permissions ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_unsupported_sync_file_target_type ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_unsupported_source_file_type ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_preserve_copied_file_modified_time ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_sync_create_in_dry_run_without_mutation ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_repair_write_only_target_file_metadata ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_sync_delete_in_dry_run_without_mutation ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_directory_create_in_dry_run_without_mutation ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_copy_skip_in_dry_run_without_mutation ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_metadata_repair_in_dry_run_without_mutation ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_symlink_create_in_dry_run ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_symlink_warning_in_dry_run ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_replace_target_symlink_with_sync_file ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_skip_existing_symlink_target_by_default ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_sync_directory_create_in_dry_run ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_skip_optional_missing_sources ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_repair_directory_metadata_after_child_updates ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_skip_optional_missing_sources_with_strict_or_force ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_sync_update_in_dry_run_without_mutation ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_restore_ignored_read_only_directory_permissions_after_sync ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_update_changed_sync_symlink_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_sync_missing_file ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_sync_top_level_source_symlink ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_sync_child_inside_existing_read_only_directory ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_update_changed_metadata_sync_file ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_not_force_copy_ignored_targets ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_warn_for_preserved_symlink_to_uncopied_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_skip_ignored_copy_source_paths ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_update_checksum_sync_when_size_differs ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_warn_for_sync_symlink_to_uncopied_target ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_verbose_should_report_concrete_directory_actions ... ok
[INFO] [stdout] test file_planning::tests::include_matched_but_ignored_files_should_not_materialize_parents ... ok
[INFO] [stdout] test file_planning::tests::include_should_create_included_empty_directory ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_report_optional_missing_source_in_dry_run ... ok
[INFO] [stdout] test file_planning::tests::include_and_ignore_should_gate_independently ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_repair_sync_file_modified_time ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_repair_read_only_target_file_metadata ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_reject_existing_directory_in_strict_before_children ... ok
[INFO] [stdout] test config::tests::parse_config_should_default_worktree_id_settings ... ok
[INFO] [stdout] test file_planning::tests::include_directory_match_should_include_whole_subtree ... ok
[INFO] [stdout] test commands::tests::execute_commands_should_allow_live_cwd_escape_failure_and_continue ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_sync_preserved_source_symlinks ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_reject_missing_parent_when_required ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_accept_existing_directory_chain ... ok
[INFO] [stdout] test file_planning::tests::include_should_not_filter_top_level_file_source ... ok
[INFO] [stdout] test file_operations::tests::apply_file_operations_should_update_checksum_sync_when_metadata_matches ... ok
[INFO] [stdout] test file_planning::tests::plan_file_operation_group_should_plan_forced_copy_replacement ... ok
[INFO] [stdout] test file_system::tests::read_full_chunk_should_fill_buffer_across_short_reads ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_reject_file_parent ... ok
[INFO] [stdout] test file_system::tests::read_full_chunk_should_retry_interrupted_reads ... ok
[INFO] [stdout] test file_planning::tests::include_should_narrow_directory_copy_to_matching_paths ... ok
[INFO] [stdout] test file_planning::tests::plan_file_operation_group_should_reject_invalid_ignore_pattern ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_reject_symlink_parent ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_reject_outside_worktree_path ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_accept_missing_parent_when_not_required ... ok
[INFO] [stdout] test file_system::tests::read_full_chunk_should_tag_errors_with_input_side ... ok
[INFO] [stdout] test file_system::tests::reader_contents_changed_should_detect_equal_size_differences ... ok
[INFO] [stdout] test file_system::tests::read_full_chunk_should_return_short_count_at_eof ... ok
[INFO] [stdout] test file_system::tests::inspect_target_ancestors_should_reject_worktree_root_file ... ok
[INFO] [stdout] test file_system::tests::reader_contents_changed_should_ignore_short_read_boundaries ... ok
[INFO] [stdout] test file_planning::tests::include_should_not_traverse_non_viable_ignored_directories_with_negation ... ok
[INFO] [stdout] test git::tests::parse_worktrees_should_preserve_spaces_newlines_and_unknown_fields ... ok
[INFO] [stdout] test file_system::tests::remove_any_should_reject_symlink_target_parent_before_delete ... ok
[INFO] [stdout] test file_system::tests::with_writable_parent_should_restore_parent_permissions_when_action_fails ... ok
[INFO] [stdout] test git::tests::parse_worktrees_should_parse_multiple_and_distinguish_bare_records ... ok
[INFO] [stdout] test init::tests::init_should_refuse_existing_file ... ok
[INFO] [stdout] test git::tests::path_from_git_bytes_should_preserve_non_utf8_bytes ... ok
[INFO] [stdout] test git::tests::strip_one_trailing_lf_should_remove_only_one_lf ... ok
[INFO] [stdout] test git::tests::strip_one_trailing_lf_should_preserve_boundary_whitespace ... ok
[INFO] [stdout] test init::tests::init_should_refuse_existing_symlink_without_writing_through_it ... ok
[INFO] [stdout] test file_planning::tests::sync_should_repair_drifted_ancestor_metadata_for_unchanged_included_descendant ... ok
[INFO] [stdout] test file_system::tests::preserved_source_link_should_track_directory_target_type ... ok
[INFO] [stdout] test file_planning::tests::include_should_reject_inert_patterns_during_planning ... ok
[INFO] [stdout] test file_system::tests::preserved_source_link_should_normalize_absolute_root_local_targets ... ok
[INFO] [stdout] test file_planning::tests::include_should_reject_invalid_glob_patterns ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_preserve_explicit_sync_options ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_map_multiple_sources_under_target_prefix ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_preserve_context_path_aliases ... ok
[INFO] [stdout] test manual::tests::source_candidates_should_not_escape_root_with_parent_segments ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_map_single_source_to_exact_target ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_compare_for_symlink ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_map_single_source_to_same_target ... ok
[INFO] [stdout] test manual::tests::source_candidates_should_fail_quietly_for_missing_prefix ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_delete_for_symlink ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_empty_sources ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_ignore_for_symlink ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_delete_for_copy ... ok
[INFO] [stdout] test manual::tests::strict_manual_sync_should_fail_before_side_effects ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_include_for_symlink ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_compare_for_copy ... ok
[INFO] [stdout] test file_planning::tests::plan_file_operation_group_should_plan_copy_skip_for_existing_target ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_allow_include_with_no_delete ... ok
[INFO] [stdout] test output::tests::message_should_format_config_detected ... ok
[INFO] [stdout] test output::tests::message_should_format_command_allowed_failure ... ok
[INFO] [stdout] test output::tests::message_should_format_expanded_file_operation_summary_with_counts ... ok
[INFO] [stdout] test output::tests::message_should_format_file_applied ... ok
[INFO] [stdout] test manual::tests::manual_target_should_reject_absolute_source_without_file_name ... ok
[INFO] [stdout] test output::tests::message_should_format_file_deleted ... ok
[INFO] [stdout] test output::tests::message_should_format_command_started ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_include_with_sync_delete ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_inert_include_patterns ... ok
[INFO] [stdout] test manual::tests::file_operation_source_candidates_should_fail_quietly_outside_git ... ok
[INFO] [stdout] test output::tests::message_should_format_file_metadata_would_apply ... ok
[INFO] [stdout] test output::tests::message_should_format_file_skipped ... ok
[INFO] [stdout] test output::tests::message_should_format_file_would_apply ... ok
[INFO] [stdout] test output::tests::message_should_format_file_metadata_applied ... ok
[INFO] [stdout] test output::tests::message_should_format_file_would_delete ... ok
[INFO] [stdout] test output::tests::message_should_format_file_would_skip ... ok
[INFO] [stdout] test output::tests::message_should_format_finished_file_operation_summary ... ok
[INFO] [stdout] test output::tests::message_should_format_root_worktree_detected ... ok
[INFO] [stdout] test output::tests::message_should_format_ownership_warning ... ok
[INFO] [stdout] test output::tests::message_should_format_single_file_operation_summary_without_counts ... ok
[INFO] [stdout] test output::tests::message_should_omit_empty_file_operation_summary_counts ... ok
[INFO] [stdout] test path_filter::tests::invalid_include_pattern_should_accept_effective_patterns ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_accept_comments_and_blank_patterns ... ok
[INFO] [stdout] test output::tests::message_should_format_single_dry_run_skip_summary ... ok
[INFO] [stdout] test output::tests::message_should_omit_file_operation_lifecycle_events ... ok
[INFO] [stdout] test path_filter::tests::invalid_include_pattern_should_reject_inert_entries ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_allow_later_ignore_after_negation ... ok
[INFO] [stdout] test output::tests::message_should_format_file_warning ... ok
[INFO] [stdout] test output::tests::message_should_format_validation_warning ... ok
[INFO] [stdout] test manual::tests::source_candidates_should_list_root_relative_files_and_dirs ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_reject_invalid_globs ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_respect_directory_only_patterns ... ok
[INFO] [stdout] test path_filter::tests::path_include_rules_should_reject_invalid_globs ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_allow_later_negation ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_map_multiple_absolute_sources_by_name ... ok
[INFO] [stdout] test path_filter::tests::path_include_rules_should_match_as_plain_union ... ok
[INFO] [stdout] test path_filter::tests::viability_should_over_approximate_after_double_star ... ok
[INFO] [stdout] test path_filter::tests::path_include_rules_should_match_escaped_prefixes ... ok
[INFO] [stdout] test path_filter::tests::path_include_rules_should_respect_directory_only_patterns ... ok
[INFO] [stdout] test path_filter::tests::viability_should_treat_trailing_slash_only_patterns_as_unanchored ... ok
[INFO] [stdout] test path_filter::tests::viability_should_stop_below_pattern_depth ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_match_escaped_comment_and_negation_prefixes ... ok
[INFO] [stdout] test path_filter::tests::viability_should_treat_wildcard_segments_conservatively ... ok
[INFO] [stdout] test path_filter::tests::viability_should_treat_brace_segments_conservatively ... ok
[INFO] [stdout] test paths::tests::normalize_lexical_should_resolve_parent_components ... ok
[INFO] [stdout] test path_filter::tests::path_ignore_rules_should_match_nested_vendor_descendants ... ok
[INFO] [stdout] test manual::tests::source_candidates_should_fail_quietly_for_absolute_current_value ... ok
[INFO] [stdout] test manual::tests::manual_validation_error_should_not_look_like_config_error ... ok
[INFO] [stdout] test path_filter::tests::viability_should_treat_slash_free_patterns_as_always_viable ... ok
[INFO] [stdout] test runtime::tests::parse_bool_should_accept_supported_false_values ... ok
[INFO] [stdout] test path_filter::tests::viability_should_walk_anchored_literal_prefixes ... ok
[INFO] [stdout] test manual::tests::manual_operations_should_map_multiple_sources_to_default_targets ... ok
[INFO] [stdout] test paths::tests::normalize_maybe_existing_should_preserve_missing_parent_components ... ok
[INFO] [stdout] test plan::tests::detailed_execute_report_should_include_injected_execution_warning ... ok
[INFO] [stdout] test plan::tests::preflight_group_paths_should_reject_non_utf8_action_paths ... ok
[INFO] [stdout] test runtime::tests::resolved_runtime_policy_should_convert_into_action_plan_options ... ok
[INFO] [stdout] test runtime::tests::runtime_option_overrides_should_parse_explicit_environment_input ... ok
[INFO] [stdout] test runtime::tests::runtime_policy_should_apply_cli_strict_after_environment ... ok
[INFO] [stdout] test runtime::tests::runtime_option_overrides_should_reject_non_utf8_explicit_environment_input ... ok
[INFO] [stdout] test runtime::tests::runtime_policy_should_resolve_config_defaults ... ok
[INFO] [stdout] test runtime::tests::runtime_policy_should_enable_pre_config_strict_from_cli_or_environment ... ok
[INFO] [stdout] test teardown::tests::execute_teardown_should_emit_only_teardown_dry_run_events ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_allow_safe_source_symlink ... ok
[INFO] [stdout] test runtime::tests::parse_bool_should_accept_supported_true_values ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_allow_final_symlink_target_to_root_source ... ok
[INFO] [stdout] test runtime::tests::runtime_option_overrides_should_reject_invalid_explicit_environment_input ... ok
[INFO] [stdout] test runtime::tests::parse_bool_should_reject_unsupported_values ... ok
[INFO] [stdout] test runtime::tests::runtime_policy_should_apply_environment_overrides_after_config ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_allow_strict_when_no_sync_exists ... ok
[INFO] [stdout] test teardown::tests::execute_teardown_should_revalidate_live_cwd_before_spawn ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_build_command_metadata ... ok
[INFO] [stdout] test teardown::tests::teardown_plan_should_reject_owned_environment_override ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_allow_missing_target_parents_for_all_file_operations ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_mark_optional_missing_sources_skipped ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_allow_explicit_boundary_escapes ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_build_ready_file_operation ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_canonical_absolute_target_parent_symlink ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_keep_input_context_for_worktree_alias ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_broken_source_symlink ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_preserve_sync_options ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_default_command_cwd_to_worktree ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_target_parent_file_with_worktree_alias ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_target_parent_symlink_for_all_file_operations ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_missing_worktree_path ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manual_operations_should_reject_overlapping_targets ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_target_parent_symlink_with_worktree_alias ... ok
[INFO] [stdout] test validation::tests::is_within_should_not_match_partial_component_prefixes ... ok
[INFO] [stdout] test validation::tests::manifest_plans_should_reject_programmatic_incompatible_identity_settings ... ok
[INFO] [stdout] test validation::tests::complete_phase_validation_should_preserve_both_errors_in_order ... ok
[INFO] [stdout] test validation::tests::manifest_plans_should_refine_empty_from_parts_environment_for_both_phases ... ok
[INFO] [stdout] test validation::tests::manual_action_plan_should_canonicalize_aliased_worktree_boundary ... ok
[INFO] [stdout] test validation::tests::plan_should_not_warn_for_symlink_directory_sources_with_include ... ok
[INFO] [stdout] test teardown::tests::execute_teardown_should_run_commands_without_bootstrap_work ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_missing_root_path ... ok
[INFO] [stdout] test validation::tests::plan_should_reject_inert_include_patterns_for_direct_file_operations ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_target_parent_file_for_all_file_operations ... ok
[INFO] [stdout] test validation::tests::teardown_plan_should_ignore_bootstrap_operations_and_commands ... ok
[INFO] [stdout] test worktree::tests::identifier_resolution_should_error_when_managed_value_is_missing ... ok
[INFO] [stdout] test validation::tests::plan_should_reject_include_with_sync_delete_for_direct_file_operations ... ok
[INFO] [stdout] test validation::tests::manifest_plans_should_reject_worktree_identity_overrides_from_empty_context ... ok
[INFO] [stdout] test validation::tests::plan_should_not_warn_for_missing_or_file_sources_with_include ... ok
[INFO] [stdout] test validation::tests::plan_should_warn_when_include_matches_no_source_paths ... ok
[INFO] [stdout] test validation::tests::plan_should_not_warn_when_include_matches_before_ignore_filtering ... ok
[INFO] [stdout] test validation::tests::unchecked_action_plan_should_canonicalize_aliased_worktree_boundary ... ok
[INFO] [stdout] test worktree::tests::candidate_disappearance_should_require_a_missing_candidate_path ... ok
[INFO] [stdout] test worktree_id::tests::encode_digest_should_emit_52_crockford_characters ... ok
[INFO] [stdout] test worktree_id::tests::id_should_ignore_readable_fallback_separator_and_slug_maximum ... ok
[INFO] [stdout] test worktree::tests::not_found_classification_should_only_skip_not_found_io_errors ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_ignored_metadata_for_symlink ... ok
[INFO] [stdout] test manual::tests::validate_manual_options_should_reject_symlink_mode_for_symlink ... ok
[INFO] [stdout] test path_filter::tests::viability_should_union_across_patterns ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_absolute_alias_target_parent_symlink ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_reject_overlapping_file_targets ... ok
[INFO] [stdout] test worktree::tests::identity_resolution_should_error_when_managed_slug_is_missing ... ok
[INFO] [stdout] test validation::tests::action_plan_from_manifest_should_walk_source_directories ... ok
[INFO] [stdout] test validation::tests::plan_should_skip_unsafe_symlinks_excluded_by_include ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_collapse_unsupported_runs ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_keep_digest_prefix_across_presentation_settings ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_hash_non_utf8_native_path_bytes ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_match_fixed_unix_path_vector ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_fall_back_for_unknown_mechanical_basenames ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_recognize_codex_uuid_parent_and_superset_simple_workspace ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_recognize_manager_layouts ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_use_earlier_complete_superset_marker ... ok
[INFO] [stdout] test worktree_id::tests::slug_should_use_deterministic_non_git_fallbacks ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_use_generic_name_for_recognizer_near_miss ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_support_underscore_separator_and_exact_minimum_length ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_fall_back_for_mechanical_single_component ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_expose_full_fixed_digest_through_checked_config ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_use_final_fallback_when_names_sanitize_empty ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_hash_native_path_spelling_without_case_folding ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_truncate_without_trailing_separator ... ok
[INFO] [stdout] test worktree_id::tests::identifier_default_should_match_dns_label_contract ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_use_main_worktree_when_selected_name_sanitizes_empty ... ok
[INFO] [stdout] test worktree_id::tests::identifier_should_distinguish_same_names_under_different_parents ... ok
[INFO] [stdout] test file_planning::tests::include_should_not_read_pruned_directories ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- file_planning::tests::include_should_not_read_pruned_directories stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'file_planning::tests::include_should_not_read_pruned_directories' (827) panicked at src/file_planning/tests.rs:399:23:
[INFO] [stdout] unfiltered plan should fail reading the directory: PlannedFileOperationActions { operation: Copy, source: "shared", target: "shared", expanded: true, actions: [CreateDirectory { operation: Copy, source: "shared", target: "shared", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared" }, CreateDirectory { operation: Copy, source: "shared/secret", target: "shared/secret", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared/secret" }, RepairMetadata { operation: Copy, source: "shared/secret", target: "shared/secret", source_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/root/shared/secret", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared/secret", metadata_policy: MetadataPolicy { permissions: true, owner: true, group: true }, target_kind: Directory, report: false }, CreateDirectory { operation: Copy, source: "shared/docs", target: "shared/docs", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared/docs" }, CopyFile { operation: Copy, source: "shared/docs/guide.md", target: "shared/docs/guide.md", source_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/root/shared/docs/guide.md", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared/docs/guide.md", metadata_policy: MetadataPolicy { permissions: true, owner: true, group: true }, replace: false }, RepairMetadata { operation: Copy, source: "shared/docs", target: "shared/docs", source_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/root/shared/docs", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared/docs", metadata_policy: MetadataPolicy { permissions: true, owner: true, group: true }, target_kind: Directory, report: false }, RepairMetadata { operation: Copy, source: "shared", target: "shared", source_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/root/shared", target_path: "/tmp/treeboot-file-planning-include-pruned-unreadable-1791317501281215528/worktree/shared", metadata_policy: MetadataPolicy { permissions: true, owner: true, group: true }, target_kind: Directory, report: false }] }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5f740cc8fef1 - 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:     0x5f740cc8fef1 - 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:     0x5f740cc8fef1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5f740cc8fef1 - <<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:     0x5f740cca68ba - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5f740cca68ba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x5f740cc9478c - 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:     0x5f740cc9478c - <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:     0x5f740cc68636 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5f740cc68636 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x5f740cc86789 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:313:9
[INFO] [stdout]   11:     0x5f740c9078a0 - <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:     0x5f740c9078a0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5f740cc86942 - <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:     0x5f740cc86942 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
[INFO] [stdout]   15:     0x5f740cc686e2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   16:     0x5f740cc60e79 - 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:     0x5f740cc695fd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   18:     0x5f740cca715c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5f740cca6eb2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x5f740c7dcf74 - <core[a373ad73a504971]::result::Result<treeboot_core[bb7d6a018a579398]::file_actions::PlannedFileOperationActions, treeboot_core[bb7d6a018a579398]::error::Error>>::expect_err
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/result.rs:1297:22
[INFO] [stdout]   21:     0x5f740c830e87 - treeboot_core[bb7d6a018a579398]::file_planning::tests::include_should_not_read_pruned_directories
[INFO] [stdout]                                at /opt/rustwide/workdir/src/file_planning/tests.rs:399:23
[INFO] [stdout]   22:     0x5f740c8291b7 - treeboot_core[bb7d6a018a579398]::file_planning::tests::include_should_not_read_pruned_directories::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/file_planning/tests.rs:352:48
[INFO] [stdout]   23:     0x5f740c899366 - <treeboot_core[bb7d6a018a579398]::file_planning::tests::include_should_not_read_pruned_directories::{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:     0x5f740c8faceb - <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:     0x5f740c8faceb - 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:     0x5f740c907ec5 - test[aada8e7e76ba119b]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:74
[INFO] [stdout]   27:     0x5f740c907ec5 - <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:     0x5f740c907ec5 - 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:     0x5f740c907ec5 - 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:     0x5f740c907ec5 - 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:     0x5f740c907ec5 - test[aada8e7e76ba119b]::run_test_in_process
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:724:27
[INFO] [stdout]   32:     0x5f740c907ec5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:645:43
[INFO] [stdout]   33:     0x5f740c9017b4 - test[aada8e7e76ba119b]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/test/src/lib.rs:675:41
[INFO] [stdout]   34:     0x5f740c9017b4 - 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:     0x5f740c90af52 - 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:     0x5f740c90af52 - <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:     0x5f740c90af52 - 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:     0x5f740c90af52 - 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:     0x5f740c90af52 - 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:     0x5f740c90af52 - 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:     0x5f740c90af52 - <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:     0x5f740cc8f14f - <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:     0x5f740cc8f14f - <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:     0x700c57e39dfa - <unknown>
[INFO] [stdout]   45:     0x700c57ecd3d4 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     file_planning::tests::include_should_not_read_pruned_directories
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 355 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca", kill_on_drop: false }`
[INFO] [stdout] 1a5124993fb5c3dcab909ef3c462902b058347e6aea6262dc3d966f97caf86ca
