[INFO] cloning repository https://github.com/jdblackstar/relay
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jdblackstar/relay" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjdblackstar%2Frelay", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjdblackstar%2Frelay'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 808b5f7ae9afb8f4bdf7c558a7d8a1a7ccab67f2
[INFO] testing jdblackstar/relay against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjdblackstar%2Frelay" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jdblackstar/relay
[INFO] finished tweaking git repo https://github.com/jdblackstar/relay
[INFO] tweaked toml for git repo https://github.com/jdblackstar/relay written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jdblackstar/relay 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/jdblackstar/relay 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-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] c0c9edd896061ca673ba68c90b22820c87968f8621bba7436f99c14bfddb639b
[INFO] running `Command { std: "docker" "start" "-a" "c0c9edd896061ca673ba68c90b22820c87968f8621bba7436f99c14bfddb639b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c0c9edd896061ca673ba68c90b22820c87968f8621bba7436f99c14bfddb639b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0c9edd896061ca673ba68c90b22820c87968f8621bba7436f99c14bfddb639b", kill_on_drop: false }`
[INFO] [stdout] c0c9edd896061ca673ba68c90b22820c87968f8621bba7436f99c14bfddb639b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] c5c238b75c2c08d2ecca7148c97df306932213698f202cdc97e0eb6188c2197c
[INFO] running `Command { std: "docker" "start" "-a" "c5c238b75c2c08d2ecca7148c97df306932213698f202cdc97e0eb6188c2197c", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling clap_builder v4.5.54
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling filetime v0.2.26
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling notify v6.1.1
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling clap v4.5.54
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling relay v0.2.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.49s
[INFO] running `Command { std: "docker" "inspect" "c5c238b75c2c08d2ecca7148c97df306932213698f202cdc97e0eb6188c2197c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c5c238b75c2c08d2ecca7148c97df306932213698f202cdc97e0eb6188c2197c", kill_on_drop: false }`
[INFO] [stdout] c5c238b75c2c08d2ecca7148c97df306932213698f202cdc97e0eb6188c2197c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 21509b4d2d5b222fa8699f4a716841470e17f9c95643867d8e9321e76f20863b
[INFO] running `Command { std: "docker" "start" "-a" "21509b4d2d5b222fa8699f4a716841470e17f9c95643867d8e9321e76f20863b", kill_on_drop: false }`
[INFO] [stderr]    Compiling relay v0.2.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.08s
[INFO] running `Command { std: "docker" "inspect" "21509b4d2d5b222fa8699f4a716841470e17f9c95643867d8e9321e76f20863b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21509b4d2d5b222fa8699f4a716841470e17f9c95643867d8e9321e76f20863b", kill_on_drop: false }`
[INFO] [stdout] 21509b4d2d5b222fa8699f4a716841470e17f9c95643867d8e9321e76f20863b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 5d342b81283ad15ae47dd9db92d4fb995bc2e76e7b8d15cbb2cfa9b4b294b52a
[INFO] running `Command { std: "docker" "start" "-a" "5d342b81283ad15ae47dd9db92d4fb995bc2e76e7b8d15cbb2cfa9b4b294b52a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/relay-0fb1e5334e3b207b)
[INFO] [stdout] 
[INFO] [stdout] running 163 tests
[INFO] [stdout] test blacklist::tests::collect_tool_flags_all ... ok
[INFO] [stdout] test blacklist::tests::collect_tool_flags_empty_when_none ... ok
[INFO] [stdout] test blacklist::tests::collect_tool_flags_gathers_selected ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_agents_require_canonical_keys ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_agents ... ok
[INFO] [stdout] test blacklist::tests::validate_blacklist_path_rejects_noncanonical_agents_and_rules ... ok
[INFO] [stdout] test config::tests::config_path_errors_when_config_dir_empty ... ok
[INFO] [stdout] test config::tests::config_path_errors_when_missing_dirs ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_rejects_malformed_command_suffixes ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_commands_valid_inputs_unchanged ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_rejects_malformed_skill_suffixes ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_rejects_noncanonical_agents_and_rules_paths ... ok
[INFO] [stdout] test blacklist::tests::retroactive_delete_malformed_skill_path_keeps_tool_root ... ok
[INFO] [stdout] test blacklist::tests::retroactive_delete_malformed_command_path_keeps_tool_root ... ok
[INFO] [stdout] test blacklist::tests::retroactive_delete_noop_for_missing ... ok
[INFO] [stdout] test blacklist::tests::retroactive_delete_removes_legacy_codex_prompt_file ... ok
[INFO] [stdout] test blacklist::tests::retroactive_delete_removes_files ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_codex_prompt_name_does_not_duplicate_candidate ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_codex_commands_include_legacy_prompt_candidate ... ok
[INFO] [stdout] test blacklist::tests::add_and_remove_blacklist_updates_config ... ok
[INFO] [stdout] test config::tests::config_path_expands_xdg_config_home_with_os_home ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_skills_valid_inputs_unchanged ... ok
[INFO] [stdout] test blacklist::tests::resolve_tool_paths_rules ... ok
[INFO] [stdout] test config::tests::config_path_prefers_xdg_config_home ... ok
[INFO] [stdout] test config::tests::config_path_uses_config_dir_when_home_empty ... ok
[INFO] [stdout] test config::tests::is_initialized_ignores_legacy_when_relay_home_explicit ... ok
[INFO] [stdout] test config::tests::is_initialized_true_with_legacy_config ... ok
[INFO] [stdout] test config::tests::default_paths_expands_shell_style_tool_paths ... ok
[INFO] [stdout] test config::tests::default_paths_error_without_home ... ok
[INFO] [stdout] test config::tests::is_blacklisted_checks_tool ... ok
[INFO] [stdout] test config::tests::default_paths_uses_absolute_codex_home ... ok
[INFO] [stdout] test config::tests::default_paths_expands_xdg_config_home_with_os_home ... ok
[INFO] [stdout] test config::tests::default_paths_respects_env_overrides ... ok
[INFO] [stdout] test config::tests::expand_tilde_allows_dollar_in_os_home ... ok
[INFO] [stdout] test config::tests::expand_tilde_errors_without_home ... ok
[INFO] [stdout] test config::tests::expand_tilde_no_prefix ... ok
[INFO] [stdout] test config::tests::expand_tilde_uses_relay_home ... ok
[INFO] [stdout] test config::tests::home_expansion_allows_dollar_in_os_home ... ok
[INFO] [stdout] test config::tests::config_path_uses_home_or_config_dir ... ok
[INFO] [stdout] test config::tests::is_initialized_true_after_save ... ok
[INFO] [stdout] test config::tests::legacy_config_path_errors_when_config_missing ... ok
[INFO] [stdout] test config::tests::load_or_default_defaults_when_missing_config ... ok
[INFO] [stdout] test config::tests::normalize_tools_and_versions ... ok
[INFO] [stdout] test config::tests::load_or_default_errors_on_invalid_toml ... ok
[INFO] [stdout] test config::tests::load_or_default_errors_on_unsupported_shell_variable ... ok
[INFO] [stdout] test config::tests::load_or_default_ignores_legacy_when_relay_home_is_explicit ... ok
[INFO] [stdout] test daemon::tests::runtime_dir_uses_expanded_config_expression ... ok
[INFO] [stdout] test config::tests::load_or_default_expands_xdg_config_home_with_os_home ... ok
[INFO] [stdout] test daemon::tests::service_env_vars_include_xdg_config_home_and_home ... ok
[INFO] [stdout] test daemon::tests::systemd_unit_escapes_execstart_dollar_but_preserves_environment_dollar ... ok
[INFO] [stdout] test daemon::tests::systemd_unit_renders_execstart ... ok
[INFO] [stdout] test daemon::tests::systemd_user_dir_ignores_relay_home_when_xdg_config_home_unset ... ok
[INFO] [stdout] test daemon::tests::watch_args_include_requested_flags ... ok
[INFO] [stdout] test daemon::tests::runtime_dir_uses_central_parent ... ok
[INFO] [stdout] test init::tests::central_root_checks_parents ... ok
[INFO] [stdout] test config::tests::load_or_default_reads_and_merges_config ... ok
[INFO] [stdout] test init::tests::central_root_default_and_prompt ... ok
[INFO] [stdout] test config::tests::resolve_config_dir_falls_back_to_dirs ... ok
[INFO] [stdout] test init::tests::dialoguer_error_wrapped ... ok
[INFO] [stdout] test config::tests::resolve_home_dir_expands_relay_home_with_xdg_config_home ... ok
[INFO] [stdout] test config::tests::resolve_home_dir_falls_back_to_dirs ... ok
[INFO] [stdout] test config::tests::resolve_home_dir_returns_invalid_config_error ... ok
[INFO] [stdout] test history::tests::list_recent_returns_entries ... ok
[INFO] [stdout] test config::tests::load_or_default_ignores_unrecognized_opencode_dir ... ok
[INFO] [stdout] test config::tests::load_or_default_uses_home_config_fallback_when_xdg_missing ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_errors_without_home ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_skips_when_missing ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_skips_when_symlink_matches ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_creates_symlink ... ok
[INFO] [stdout] test config::tests::serialize_error_maps_to_invalid_data ... ok
[INFO] [stdout] test daemon::tests::launchd_plist_renders_expected_fields ... ok
[INFO] [stdout] test init::tests::print_notes_for_all_tools ... ok
[INFO] [stdout] test init::tests::print_notes_paths ... ok
[INFO] [stdout] test init::tests::print_tool_detection_note_empty ... ok
[INFO] [stdout] test history::tests::recorder_and_rollback_for_file ... ok
[INFO] [stdout] test init::tests::ensure_tool_bases_creates_parents ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_replaces_mismatched_symlink ... ok
[INFO] [stdout] test init::tests::tool_detection_and_labels ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_moves_existing_central_dir ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_skips_when_central_root_missing ... ok
[INFO] [stdout] test init::tests::dotfiles_backup_skips_when_existing_non_symlink ... ok
[INFO] [stdout] test logging::tests::resolve_log_path_prefers_cli ... ok
[INFO] [stdout] test report::tests::print_sync_summary_variants ... ok
[INFO] [stdout] test report::tests::print_conflict_summary_smoke ... ok
[INFO] [stdout] test config::tests::load_or_default_expands_xdg_expression_paths ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_blacklist_codex_key_skips_codex_only ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_skips_disabled_tool ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_last_write_wins ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_collects_conflict_details ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_blacklist_skips_tool_but_syncs_others ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_updates_opencode_when_codex_wins ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_central_wins_and_syncs_required_frontmatter ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_cursor_wins ... ok
[INFO] [stdout] test config::tests::is_initialized_false_when_no_config_file ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_last_write_wins_and_syncs_required_frontmatter ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_opencode_wins ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_skips_update_when_body_same ... ok
[INFO] [stdout] test sync::rules::tests::sync_rules_blacklist_skips_codex ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_supports_codex_prompt_prefix ... ok
[INFO] [stdout] test sync::rules::tests::sync_rules_central_wins ... ok
[INFO] [stdout] test sync::rules::tests::sync_rules_mirrors_codex_rules ... ok
[INFO] [stdout] test sync::shared::tests::list_visible_files_includes_symlink ... ok
[INFO] [stdout] test sync::shared::tests::list_files_and_codex_files_filter_entries ... ok
[INFO] [stdout] test sync::shared::tests::misc_helpers_cover_branches ... ok
[INFO] [stdout] test sync::shared::tests::select_frontmatter_for_new_target_uses_required_fields ... ok
[INFO] [stdout] test sync::rules::tests::sync_rules_collects_conflict_details ... ok
[INFO] [stdout] test sync::shared::tests::update_markdown_target_plan_create_does_not_write_file ... ok
[INFO] [stdout] test sync::shared::tests::update_markdown_target_plan_update_does_not_write_file ... ok
[INFO] [stdout] test sync::shared::tests::update_markdown_target_respects_source_frontmatter_when_requested ... ok
[INFO] [stdout] test sync::shared::tests::update_markdown_target_syncs_required_frontmatter ... ok
[INFO] [stdout] test sync::shared::tests::update_markdown_target_warn_path_keeps_existing_when_source_missing_required_keys ... ok
[INFO] [stdout] test sync::shared::tests::write_file_handles_dirs ... ok
[INFO] [stdout] test sync::shared::tests::write_raw_if_changed_skips_when_same ... ok
[INFO] [stdout] test sync::skills::tests::collect_skill_entries_skips_hidden ... ok
[INFO] [stdout] test sync::skills::tests::copy_dir_all_skips_hidden ... ok
[INFO] [stdout] test sync::skills::tests::list_skill_dirs_filters_missing_skill_md ... ok
[INFO] [stdout] test sync::skills::tests::merge_skill_frontmatter_skips_missing_source ... ok
[INFO] [stdout] test sync::skills::tests::skill_temp_path_without_parent_uses_fallback ... ok
[INFO] [stdout] test sync::skills::tests::sync_skill_target_merges_frontmatter_and_replaces_existing ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_blacklist_opencode_key_skips_opencode_only ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_central_wins_and_syncs_required_frontmatter ... ok
[INFO] [stdout] test sync::agents::tests::sync_agents_blacklist_skips_tool ... ok
[INFO] [stdout] test config::tests::save_writes_config ... ok
[INFO] [stdout] test sync::shared::tests::update_markdown_target_creates_new_file ... ok
[INFO] [stdout] test sync::skills::tests::sync_skill_target_skips_when_unchanged ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_collects_conflict_details ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_blacklist_skips_tool_but_syncs_others ... ok
[INFO] [stdout] test init::tests::init_without_claude ... ok
[INFO] [stdout] test init::tests::init_with_subset_tools ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_central_wins_and_syncs_required_frontmatter ... ok
[INFO] [stdout] test init::tests::prompt_helpers_use_defaults ... ok
[INFO] [stdout] test init::tests::init_writes_config_and_notes ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_central_roundtrip_is_stable ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_handles_existing_central_dir ... ok
[INFO] [stdout] test init::tests::select_tools_uses_env_override ... ok
[INFO] [stdout] test tests::cli_rejects_conflicting_sync_flags_with_fail_on_conflict ... ok
[INFO] [stdout] test tests::fail_on_conflict_plan_verbose_replays_plan_with_actions_logging ... ok
[INFO] [stdout] test tests::require_tool_flags_accepts_non_empty_input ... ok
[INFO] [stdout] test tests::require_tool_flags_rejects_empty_input ... ok
[INFO] [stdout] test sync::tests::sync_all_with_mode_collects_conflicts_across_categories ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_skips_missing_tool_dir ... ok
[INFO] [stdout] test sync::tests::sync_all_with_mode_preflight_conflicts_do_not_create_outputs_or_history ... ok
[INFO] [stdout] test sync::tests::sync_all_with_mode_records_history_event ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_copies_dir_and_syncs_required_frontmatter ... ok
[INFO] [stdout] test tests::rollback_target_event_id_errors_when_history_is_empty ... ok
[INFO] [stdout] test tests::cli_parses_sync_plan_fail_on_conflict ... ok
[INFO] [stdout] test init::tests::prompt_path_ignores_blank_env_value ... ok
[INFO] [stdout] test init::tests::prompt_path_uses_env_value ... ok
[INFO] [stdout] test tests::cli_parses_sync_fail_on_conflict ... ok
[INFO] [stdout] test tests::main_stub_runs ... ok
[INFO] [stdout] test tests::rollback_target_event_id_prefers_explicit_event_id ... ok
[INFO] [stdout] test versions::tests::check_versions_runs ... ok
[INFO] [stdout] test versions::tests::version_parsing_and_color ... ok
[INFO] [stdout] test watch::tests::build_watch_list_includes_expected_paths ... ok
[INFO] [stdout] test watch::tests::watch_origin_marks_codex_path ... ok
[INFO] [stdout] test watch::tests::watch_test_mode_runs ... ok
[INFO] [stdout] test watch::tests::watch_origin_falls_back_when_unrecognized ... ok
[INFO] [stdout] test sync::skills::tests::sync_skills_opencode_wins ... ok
[INFO] [stdout] test watch::tests::to_io_wraps_error ... ok
[INFO] [stdout] test tests::rollback_target_event_id_uses_latest_history_event ... ok
[INFO] [stdout] test daemon::tests::launch_agents_dir_ignores_relay_home ... ok
[INFO] [stdout] test sync::shared::tests::merge_and_split_frontmatter ... ok
[INFO] [stdout] test sync::commands::tests::sync_commands_collects_conflict_details ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 163 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5d342b81283ad15ae47dd9db92d4fb995bc2e76e7b8d15cbb2cfa9b4b294b52a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d342b81283ad15ae47dd9db92d4fb995bc2e76e7b8d15cbb2cfa9b4b294b52a", kill_on_drop: false }`
[INFO] [stdout] 5d342b81283ad15ae47dd9db92d4fb995bc2e76e7b8d15cbb2cfa9b4b294b52a
