[INFO] fetching crate dotagents 0.1.3...
[INFO] testing dotagents-0.1.3 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate dotagents 0.1.3 into /workspace/builds/worker-0-tc1/source
[INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate dotagents 0.1.3
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate dotagents 0.1.3
[INFO] tweaked toml for crates.io crate dotagents 0.1.3 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate dotagents 0.1.3 on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate dotagents 0.1.3 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_generator v2.8.3
[INFO] [stderr]   Downloaded pest_derive v2.8.3
[INFO] [stderr]   Downloaded serde_json5 v0.2.1
[INFO] [stderr]   Downloaded mockall v0.13.1
[INFO] [stderr]   Downloaded hybrid-array v0.4.11
[INFO] [stderr]   Downloaded num-order v1.2.0
[INFO] [stderr]   Downloaded num-modular v0.6.1
[INFO] [stderr]   Downloaded gray_matter v0.3.2
[INFO] [stderr]   Downloaded mockall_derive v0.13.1
[INFO] [stderr]   Downloaded pest_meta v2.8.3
[INFO] [stderr]   Downloaded cliclack v0.5.4
[INFO] [stderr]   Downloaded handlebars v6.3.2
[INFO] [stderr]   Downloaded pest v2.8.3
[INFO] [stderr]   Downloaded clap_complete v4.5.58
[INFO] [stderr]   Downloaded clap v4.5.48
[INFO] [stderr]   Downloaded rustls v0.23.39
[INFO] [stderr]   Downloaded clap_builder v4.5.48
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85
[INFO] running `Command { std: "docker" "start" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", 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" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", 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" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling cfg-if v1.0.3
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling hybrid-array v0.4.11
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling rustls v0.23.39
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling deranged v0.5.4
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling clap_builder v4.5.48
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling litrs v0.4.2
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling num-modular v0.6.1
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling arraydeque v0.5.1
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling num-order v1.2.0
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling yaml-rust2 v0.10.4
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]    Compiling derive_more v2.0.1
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling serde_spanned v1.0.3
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling clap v4.5.48
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling simplelog v0.12.2
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling cliclack v0.5.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling clap_complete v4.5.58
[INFO] [stderr]    Compiling handlebars v6.3.2
[INFO] [stderr]    Compiling serde_json5 v0.2.1
[INFO] [stderr]    Compiling gray_matter v0.3.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling toml v0.9.8
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling jsonc-parser v0.32.4
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling dotagents v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 04s
[INFO] running `Command { std: "docker" "inspect" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", 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" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mockall_derive v0.13.1
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]    Compiling derive_builder v0.20.2
[INFO] [stderr]    Compiling handlebars v6.3.2
[INFO] [stderr]    Compiling mockall v0.13.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling dotagents v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling mockito v1.7.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] running `Command { std: "docker" "inspect" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", 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" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dotagents-c1565bea77645593)
[INFO] [stdout] 
[INFO] [stdout] running 353 tests
[INFO] [stdout] test cli::commands::tests::maybe_prompt_deploy_no_deploy_true_skips_deploy ... ok
[INFO] [stdout] test cli::commands::tests::load_commands_empty_dir_returns_empty_vec ... ok
[INFO] [stdout] test cli::config::tests::app_display_features_sorted ... ok
[INFO] [stdout] test cli::commands::tests::load_commands_returns_full_frontmatter ... ok
[INFO] [stdout] test cli::commands::tests::to_json_array_without_content_omits_content_key ... ok
[INFO] [stdout] test cli::commands::tests::to_json_array_handles_non_object_frontmatter ... ok
[INFO] [stdout] test cli::config::tests::app_display_from_empty_config ... ok
[INFO] [stdout] test cli::commands::tests::load_commands_reads_md_frontmatter ... ok
[INFO] [stdout] test cli::config::tests::validate_edit_accepts_global_tty ... ok
[INFO] [stdout] test cli::config::tests::app_display_provider_detail ... ok
[INFO] [stdout] test cli::config::tests::app_display_json_serializes ... ok
[INFO] [stdout] test cli::config::tests::app_display_providers_sorted ... ok
[INFO] [stdout] test cli::config::tests::validate_edit_accepts_local_tty ... ok
[INFO] [stdout] test cli::config::tests::validate_edit_ok_when_not_editing ... ok
[INFO] [stdout] test cli::init::tests::build_config_content_blank_skips_local_config ... ok
[INFO] [stdout] test cli::config::tests::validate_edit_rejects_app_target ... ok
[INFO] [stdout] test cli::config::tests::validate_edit_rejects_non_tty ... ok
[INFO] [stdout] test cli::init::tests::build_config_content_defaults_to_empty_features ... ok
[INFO] [stdout] test cli::init::tests::build_config_content_writes_selected_features ... ok
[INFO] [stdout] Nothing deployed
[INFO] [stdout] test cli::init::tests::init_file_should_not_skip_without_condition ... ok
[INFO] [stdout] test cli::init::tests::build_config_content_advanced_appends_provider_block ... ok
[INFO] [stdout] test cli::commands::tests::maybe_prompt_deploy_ci_calls_deploy_when_no_deploy_false ... ok
[INFO] [stdout] test cli::commands::tests::load_commands_includes_body_content ... ok
[INFO] [stdout] test cli::commands::tests::to_json_array_with_content_includes_content_key ... ok
[INFO] [stdout] test cli::init::tests::initialize_agents_dir_no_dir_uses_cwd ... ok
[INFO] [stdout] test cli::init::tests::init_file_should_skip_when_feature_disabled ... ok
[INFO] [stdout] test cli::init::tests::init_file_should_skip_when_features_absent ... ok
[INFO] [stdout] test cli::options::tests::config_options_default ... ok
[INFO] [stdout] test cli::options::tests::config_target_default_is_app ... ok
[INFO] [stdout] test cli::init::tests::initialize_agents_dir_creates_missing_workspace ... ok
[INFO] [stdout] test cli::init::tests::is_tui_enabled_false_when_ci_mode_set ... ok
[INFO] [stdout] test cli::options::tests::has_feature_returns_false_for_unlisted_feature ... ok
[INFO] [stdout] test cli::options::tests::has_feature_returns_false_when_features_absent ... ok
[INFO] [stdout] test cli::options::tests::has_feature_returns_true_for_all_listed ... ok
[INFO] [stdout] test cli::options::tests::config_target_value_enum_variants ... ok
[INFO] [stdout] test cli::options::tests::test_init_options_defaults ... ok
[INFO] [stdout] test cli::options::tests::test_options_default ... ok
[INFO] [stdout] test cli::providers::tests::collect_providers_returns_sorted ... ok
[INFO] [stdout] test cli::providers::tests::collect_providers_preserves_name_and_url ... ok
[INFO] [stdout] test cli::init::tests::build_config_content_starter_global_and_local_are_identical ... ok
[INFO] [stdout] test cli::providers::tests::print_json_includes_all_fields ... ok
[INFO] [stdout] test cli::init::tests::initialize_agents_dir_with_explicit_dir ... ok
[INFO] [stdout] test cli::options::tests::test_init_template_variants ... ok
[INFO] [stdout] test cli::options::tests::test_verbosity_clamping ... ok
[INFO] [stdout] test cli::skills::tests::maybe_prompt_deploy_ci_calls_deploy_when_no_deploy_false ... ok
[INFO] [stdout] test cli::skills::tests::load_skills_reads_skill_md_frontmatter ... ok
[INFO] [stdout] test cli::skills::tests::load_skills_includes_body_content ... ok
[INFO] [stdout] test cli::providers::tests::collect_providers_handles_missing_name_url ... ok
[INFO] [stdout] test cli::providers::tests::print_text_does_not_panic ... ok
[INFO] [stdout] test cli::skills::tests::to_json_array_with_content_includes_body_for_skills ... ok
[INFO] [stdout] test cli::skills::tests::load_skills_returns_full_frontmatter ... ok
[INFO] [stdout] test cli::ui::common::tests::truncate_long_string_appends_ellipsis ... ok
[INFO] [stdout] test cli::ui::common::tests::truncate_short_string_unchanged ... ok
[INFO] [stdout] test cli::ui::common::tests::truncate_zero_width_returns_empty ... ok
[INFO] [stdout] test cli::ui::common::tests::wrap_long_text_breaks_at_width ... ok
[INFO] [stdout] test cli::ui::deploy::tests::non_tty_summary_with_nothing_deployed ... ok
[INFO] [stdout] test cli::ui::deploy::tests::non_tty_summary_with_written_and_skipped ... ok
[INFO] [stdout] test cli::skills::tests::to_json_array_includes_frontmatter_fields ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::deploy_summary_empty ... ok
[INFO] [stdout] test cli::skills::tests::maybe_prompt_deploy_no_deploy_true_skips_deploy ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::deploy_summary_mixed ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::undeploy_summary_all_delete ... ok
[INFO] [stdout] test cli::ui::common::tests::wrap_short_text_unchanged ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::undeploy_summary_empty ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::deploy_summary_all_new ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::deploy_summary_all_modified ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::undeploy_summary_all_edited ... ok
[INFO] [stdout] test constants::mocks::tests::command_mock_has_frontmatter ... ok
[INFO] [stdout] test constants::mocks::tests::default_config_empty_slices ... ok
[INFO] [stdout] test constants::mocks::tests::default_config_produces_valid_toml ... ok
[INFO] [stdout] test cli::ui::dry_run::tests::undeploy_summary_mixed ... ok
[INFO] [stdout] test cli::undeploy::tests::undeploy_item_warns_when_no_cache_entries ... ok
[INFO] [stdout] test constants::templates::tests::render_starter_substitutes_name_in_command_template ... ok
[INFO] [stdout] test constants::templates::tests::render_starter_substitutes_name_in_skill_template ... ok
[INFO] [stdout] test cli::undeploy::tests::undeploy_item_continues_when_file_already_deleted ... ok
[INFO] [stdout] test cli::undeploy::tests::undeploy_item_deletes_deployed_file_and_clears_cache ... ok
[INFO] [stdout] test constants::mocks::tests::skill_mock_has_frontmatter ... ok
[INFO] [stdout] test core::config::app::mode_tests::resolve_mode_item_override_wins ... ok
[INFO] [stdout] test core::config::app::mode_tests::resolve_mode_defaults_to_link ... ok
[INFO] [stdout] test core::config::app::mode_tests::resolve_mode_none_item_returns_feature_level ... ok
[INFO] [stdout] test core::config::app::mode_tests::resolve_mode_unknown_feature_defaults_to_template ... ok
[INFO] [stdout] test core::config::app::mode_tests::resolve_mode_falls_back_to_feature_level ... ok
[INFO] [stdout] test core::config::app::mode_tests::resolve_mode_uses_feature_level ... ok
[INFO] [stdout] test core::config::cache::tests::cache_remove_returns_entry_and_deletes_it ... ok
[INFO] [stdout] test core::config::cache::tests::cache_remove_returns_none_when_absent ... ok
[INFO] [stdout] test core::config::cache::tests::test_get_missing_returns_none ... ok
[INFO] [stdout] test core::config::cache::tests::test_iter_entries_empty ... ok
[INFO] [stdout] test core::config::cache::tests::test_iter_entries_yields_all ... ok
[INFO] [stdout] test core::config::cache::tests::test_load_corrupt_toml_returns_default ... ok
[INFO] [stdout] test core::config::cache::tests::test_load_missing_file_returns_default ... ok
[INFO] [stdout] test core::config::cache::tests::test_clear_empties_cache ... ok
[INFO] [stdout] test core::config::cache::tests::test_set_and_get ... ok
[INFO] [stdout] test core::config::common::tests::test_config_agent_ability_settings_get_config ... ok
[INFO] [stdout] test core::config::cache::tests::test_set_overwrites_existing ... ok
[INFO] [stdout] test core::config::common::tests::test_config_agent_settings_merge ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_config_merge_local_absent_preserves_global ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_config_toml_rejects_invalid_mode ... ok
[INFO] [stdout] test core::config::common::tests::test_features_has_configured_overrides_true_when_any_override_present ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_config_merge_local_wins ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_deserialize_invalid ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_config_toml_rejects_invalid_override ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_deserialize_link ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_config_toml_deserialize ... ok
[INFO] [stdout] test core::config::common::tests::test_features_has_configured_overrides_false_when_empty ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_display_link ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_display_template ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_deserialize_template ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_serialize_link ... ok
[INFO] [stdout] test core::config::traits::tests::test_from_toml_invalid ... ok
[INFO] [stdout] test core::config::traits::tests::test_from_toml ... ok
[INFO] [stdout] test core::config::mode::tests::feature_mode_serialize_template ... ok
[INFO] [stdout] test core::config::traits::tests::test_roundtrip ... ok
[INFO] [stdout] test core::config::traits::tests::test_to_toml ... ok
[INFO] [stdout] test core::features::command::tests::test_from_markdown ... ok
[INFO] [stdout] test core::features::command::tests::test_roundtrip ... ok
[INFO] [stdout] test core::features::command::tests::test_scaffold_empty_optional_fields_omitted ... ok
[INFO] [stdout] test core::features::command::tests::test_to_string ... ok
[INFO] [stdout] test core::features::command::tests::test_scaffold_returns_markdown_with_body ... ok
[INFO] [stdout] test core::features::command::tests::test_to_value ... ok
[INFO] [stdout] test core::features::ignore::tests::from_string_handles_empty_input ... ok
[INFO] [stdout] test core::features::command::tests::test_to_value_with_category_and_tags ... ok
[INFO] [stdout] test core::features::ignore::tests::from_string_parses_newline_separated_patterns ... ok
[INFO] [stdout] test core::features::ignore::tests::get_file_name_returns_none ... ok
[INFO] [stdout] test core::features::ignore::tests::to_string_empty_patterns_produces_empty_string ... ok
[INFO] [stdout] test core::features::ignore::tests::from_string_skips_empty_lines ... ok
[INFO] [stdout] test core::features::ignore::tests::roundtrip_preserves_patterns ... ok
[INFO] [stdout] test core::features::command::tests::test_from_string ... ok
[INFO] [stdout] test core::features::ignore::tests::to_value_returns_correct_json_structure ... ok
[INFO] [stdout] test core::features::instruction::tests::test_from_string ... ok
[INFO] [stdout] test core::features::command::tests::test_get_file_name ... ok
[INFO] [stdout] test core::features::ignore::tests::to_string_produces_newline_separated_patterns ... ok
[INFO] [stdout] test core::features::instruction::tests::test_roundtrip ... ok
[INFO] [stdout] test core::features::instruction::tests::test_to_string ... ok
[INFO] [stdout] test core::features::command::tests::test_to_markdown ... ok
[INFO] [stdout] test core::features::instruction::tests::test_to_value ... ok
[INFO] [stdout] test core::features::mcp::tests::test_disabled_tools ... ok
[INFO] [stdout] test core::features::instruction::tests::test_empty_content ... ok
[INFO] [stdout] test core::features::mcp::tests::test_expanded_common_fields_roundtrip_as_camel_case ... ok
[INFO] [stdout] test core::features::mcp::tests::test_from_json_http ... ok
[INFO] [stdout] test core::features::mcp::tests::test_from_json_stdio ... ok
[INFO] [stdout] test core::features::mcp::tests::test_from_json_sse ... ok
[INFO] [stdout] test core::features::mcp::tests::test_to_json ... ok
[INFO] [stdout] test core::features::mcp::tests::test_to_string ... ok
[INFO] [stdout] test core::features::mcp::tests::test_from_string ... ok
[INFO] [stdout] test core::features::mcp::tests::test_from_json_with_env ... ok
[INFO] [stdout] test core::features::skill::tests::test_get_file_name ... ok
[INFO] [stdout] test core::features::mcp::tests::test_public_schema_includes_expanded_mcp_fields ... ok
[INFO] [stdout] test core::features::skill::tests::test_get_name_variable_uses_skill_namespace ... ok
[INFO] [stdout] test core::features::mcp::tests::test_roundtrip ... ok
[INFO] [stdout] test core::features::mcp::tests::test_rejects_invalid_transport_specific_configs ... ok
[INFO] [stdout] test core::features::skill::tests::test_parse_all_fields ... ok
[INFO] [stdout] test core::features::skill::tests::test_from_string ... ok
[INFO] [stdout] test core::features::skill::tests::test_parse_paths ... ok
[INFO] [stdout] test core::features::skill::tests::test_parse_required_only ... ok
[INFO] [stdout] test core::features::mcp::tests::test_unset_optional_fields_are_omitted ... ok
[INFO] [stdout] test core::features::skill::tests::test_parse_all_extension_fields_together ... ok
[INFO] [stdout] test core::features::skill::tests::test_parse_disable_model_invocation ... ok
[INFO] [stdout] test core::features::skill::tests::test_allowed_tools_rename ... ok
[INFO] [stdout] test core::features::skill::tests::test_scaffold_produces_valid_markdown ... ok
[INFO] [stdout] test core::features::skill::tests::test_scaffold_empty_optional_fields_omitted ... ok
[INFO] [stdout] test core::features::skill::tests::test_to_value_omits_absent_optional_fields ... ok
[INFO] [stdout] test core::features::skill::tests::test_to_value_includes_all_metadata_fields ... ok
[INFO] [stdout] test schema::list_item::tests::to_json_array_empty_body_omits_content ... ok
[INFO] [stdout] test core::features::skill::tests::test_parse_user_invocable ... ok
[INFO] [stdout] test schema::list_item::tests::to_json_array_no_body_ok ... ok
[INFO] [stdout] test core::features::skill::tests::test_to_string ... ok
[INFO] [stdout] test core::features::skill::tests::test_serialize_new_fields_when_present ... ok
[INFO] [stdout] test schema::list_item::tests::to_json_array_with_content_returns_content_field ... ok
[INFO] [stdout] test core::features::skill::tests::test_serialize_omits_absent_optionals ... ok
[INFO] [stdout] test schema::list_item::tests::to_json_array_non_object_frontmatter_handled ... ok
[INFO] [stdout] test core::features::skill::tests::test_roundtrip ... ok
[INFO] [stdout] test schema::list_item::tests::to_json_array_without_content_omits_content ... ok
[INFO] [stdout] test schema::registry::tests::deserialise_entry_without_name_and_url ... ok
[INFO] [stdout] test schema::registry::tests::deserialise_entry_without_checksums ... ok
[INFO] [stdout] test schema::registry::tests::deserialise_mixed_entries ... ok
[INFO] [stdout] test schema::registry::tests::deserialise_ignores_unknown_fields ... ok
[INFO] [stdout] test schema::registry::tests::deserialise_entry_with_name_and_url ... ok
[INFO] [stdout] test schema::registry::tests::deserialise_entry_with_checksums ... ok
[INFO] [stdout] test templates::cache::tests::checksum_matches_returns_false_on_missing_file ... ok
[INFO] [stdout] test templates::cache::tests::write_creates_parent_directories ... ok
[INFO] [stdout] test templates::cache::tests::checksum_matches_returns_false_on_mismatch ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_defined_helper_empty_string ... ok
[INFO] [stdout] test templates::cache::tests::checksum_matches_returns_true_on_match ... ok
[INFO] [stdout] test templates::cache::tests::read_returns_none_on_cache_miss ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_defined_helper_null ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_defined_helper_true_value ... ok
[INFO] [stdout] test templates::cache::tests::write_then_read_roundtrips ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_defined_helper_undefined ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_defined_helper_false_value ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_defined_helper_zero ... ok
[INFO] [stdout] test templates::helpers::tests::test_json_helper_number ... ok
[INFO] [stdout] test templates::helpers::tests::test_json_helper_string ... ok
[INFO] [stdout] test templates::helpers::tests::test_json_helper_array ... ok
[INFO] [stdout] test templates::helpers::tests::test_json_helper_object ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_eq_helper_not_equal ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_eq_helper_equal_strings ... ok
[INFO] [stdout] test templates::helpers::tests::test_snake_case_helper_camel_case ... ok
[INFO] [stdout] test templates::helpers::tests::test_snake_case_helper_pascal_case ... ok
[INFO] [stdout] test templates::helpers::tests::test_snake_case_helper_errors_on_non_string ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_eq_helper_equal_numbers ... ok
[INFO] [stdout] test templates::helpers::tests::test_if_eq_helper_no_else_branch ... ok
[INFO] [stdout] test templates::helpers::tests::test_snake_case_helper_preserves_snake_case ... ok
[INFO] [stdout] test templates::helpers::tests::test_toml_helper_errors_on_array ... ok
[INFO] [stdout] test templates::helpers::tests::test_toml_helper_errors_on_string ... ok
[INFO] [stdout] test templates::helpers::tests::test_toml_inline_helper_errors_on_null ... ok
[INFO] [stdout] test templates::helpers::tests::test_yaml_helper_string ... ok
[INFO] [stdout] test templates::helpers::tests::test_toml_helper_object ... ok
[INFO] [stdout] test templates::helpers::tests::test_yaml_helper_array ... ok
[INFO] [stdout] test templates::remote::tests::fetch_or_cache_file_uses_cache_on_checksum_match ... ok
[INFO] [stdout] test templates::helpers::tests::test_yaml_helper_object ... ok
[INFO] [stdout] test templates::remote::tests::parse_provider_toml_returns_settings_for_known_feature ... ok
[INFO] [stdout] test templates::helpers::tests::test_toml_inline_helper_object ... ok
[INFO] [stdout] test templates::remote::tests::parse_provider_toml_returns_none_for_missing_feature ... ok
[INFO] [stdout] test templates::remote::tests::resolve_provider_defaults_offline_cold_cache_errors ... ok
[INFO] [stdout] test templates::remote::tests::resolve_provider_defaults_skips_fully_configured_provider ... ok
[INFO] [stdout] test templates::remote::tests::resolve_provider_defaults_unknown_provider_skips ... ok
[INFO] [stdout] test templates::renderer::tests::render_feature_broken_target_path_emits_phase_context ... ok
[INFO] [stdout] test templates::renderer::tests::resolve_target_path_with_variables ... ok
[INFO] [stdout] test templates::renderer::tests::resolve_target_path_plain_string ... ok
[INFO] [stdout] test templates::variables::tests::load_env_from_paths_empty_slice_returns_empty_map ... ok
[INFO] [stdout] test templates::variables::tests::load_env_from_paths_missing_file_returns_error ... ok
[INFO] [stdout] test templates::remote::tests::resolve_provider_defaults_registry_unavailable_falls_back_to_cache ... ok
[INFO] [stdout] test templates::variables::tests::test_get_command_name_variable ... ok
[INFO] [stdout] test templates::renderer::tests::render_feature_broken_template_content_emits_phase_context ... ok
[INFO] [stdout] test templates::variables::tests::load_env_from_paths_single_file_lowercases_keys ... ok
[INFO] [stdout] test templates::variables::tests::test_get_command_name_variable_empty ... ok
[INFO] [stdout] test templates::variables::tests::test_get_env_variables_structure ... ok
[INFO] [stdout] test templates::templater::tests::render_template_error_does_not_contain_generic_message ... ok
[INFO] [stdout] test templates::variables::tests::test_get_skill_name_variable_empty ... ok
[INFO] [stdout] test templates::variables::tests::load_env_from_paths_two_files_later_wins_on_duplicate ... ok
[INFO] [stdout] test templates::variables::tests::test_get_skill_name_variable ... ok
[INFO] [stdout] test templates::variables::tests::test_get_user_defined_variables_empty_object ... ok
[INFO] [stdout] test templates::variables::tests::test_get_user_defined_variables_nested ... ok
[INFO] [stdout] test templates::variables::tests::test_get_user_defined_variables_none ... ok
[INFO] [stdout] test templates::variables::tests::test_get_user_defined_variables_some ... ok
[INFO] [stdout] test utils::dedup::tests::dedup_alphabetical_winner_three_providers ... ok
[INFO] [stdout] test utils::dedup::tests::dedup_mixed_some_collide ... ok
[INFO] [stdout] test utils::dedup::tests::dedup_no_collision_different_paths ... ok
[INFO] [stdout] test utils::error::tests::format_error_chain_single_message_no_double_prefix ... ok
[INFO] [stdout] test utils::error::tests::format_error_chain_two_level_shows_outer_and_inner ... ok
[INFO] [stdout] test utils::error::tests::test_display_error_io_error ... ok
[INFO] [stdout] test utils::error::tests::test_display_error_with_context ... ok
[INFO] [stdout] test utils::error::tests::test_display_error_single_error ... ok
[INFO] [stdout] test utils::format::tests::test_case_insensitive ... ok
[INFO] [stdout] test utils::format::tests::test_json_extension ... ok
[INFO] [stdout] test utils::format::tests::test_no_extension ... ok
[INFO] [stdout] test utils::format::tests::test_jsonc_extension ... ok
[INFO] [stdout] test utils::format::tests::test_toml_extension ... ok
[INFO] [stdout] test utils::format::tests::test_yml_extension ... ok
[INFO] [stdout] test utils::format::tests::test_yaml_extension ... ok
[INFO] [stdout] test utils::fs::tests::test_delete_file_missing_returns_error ... ok
[INFO] [stdout] test utils::format::tests::test_unknown_extension ... ok
[INFO] [stdout] test utils::fs::tests::test_delete_file_existing ... ok
[INFO] [stdout] test utils::fs::tests::test_prune_empty_dir_leaves_non_empty_parent ... ok
[INFO] [stdout] test utils::fs::tests::test_write_empty_content ... ok
[INFO] [stdout] test utils::fs::tests::test_prune_empty_dir_removes_empty_parent ... ok
[INFO] [stdout] test utils::fs::tests::test_read_nonexistent_file ... ok
[INFO] [stdout] test utils::fs::tests::test_write_multiline_content ... ok
[INFO] [stdout] test utils::gitignore::tests::collapse_paths_empty_input ... ok
[INFO] [stdout] test utils::fs::tests::test_write_file_creates_parent_dirs ... ok
[INFO] [stdout] test utils::fs::tests::test_write_and_read_file ... ok
[INFO] [stdout] test utils::gitignore::tests::collapse_paths_all_files_in_dir_collapses ... ok
[INFO] [stdout] test utils::gitignore::tests::collapse_paths_non_generated_file_prevents_collapse ... ok
[INFO] [stdout] test utils::gitignore::tests::collapse_paths_mixed_collapsible_and_non_generated ... ok
[INFO] [stdout] test utils::gitignore::tests::collapse_paths_root_files_stay_individual ... ok
[INFO] [stdout] test utils::gitignore::tests::collapse_paths_nested_collapse ... ok
[INFO] [stdout] test utils::gitignore::tests::rebuild_fence_skips_write_when_unchanged ... ok
[INFO] [stdout] test utils::gitignore::tests::rewrite_fence_appends_to_existing_content ... ok
[INFO] [stdout] test utils::gitignore::tests::rewrite_fence_creates_fence_in_empty_content ... ok
[INFO] [stdout] test utils::gitignore::tests::rewrite_fence_replaces_existing_fence ... ok
[INFO] [stdout] test utils::gitignore::tests::rewrite_fence_preserves_user_content_around_fence ... ok
[INFO] [stdout] test utils::gitignore::tests::rebuild_fence_preserves_user_content ... ok
[INFO] [stdout] test utils::gitignore::tests::test_clear_gitignore_fence_missing_file_is_noop ... ok
[INFO] [stdout] test utils::gitignore::tests::test_clear_gitignore_fence_no_fence ... ok
[INFO] [stdout] test utils::gitignore::tests::test_clear_gitignore_fence_only_fence_writes_empty ... ok
[INFO] [stdout] test utils::gitignore::tests::test_remove_fence_only_fence ... ok
[INFO] [stdout] test utils::gitignore::tests::rebuild_fence_clears_fence_when_no_targets ... ok
[INFO] [stdout] test utils::gitignore::tests::test_remove_fence_with_preceding_content ... ok
[INFO] [stdout] test utils::gitignore::tests::test_remove_fence_no_fence_unchanged ... ok
[INFO] [stdout] test utils::gitignore::tests::test_remove_fence_preserves_content_after_fence ... ok
[INFO] [stdout] test utils::hash::tests::test_hash_content ... ok
[INFO] [stdout] test utils::gitignore::tests::rebuild_fence_handles_missing_gitignore ... ok
[INFO] [stdout] test utils::gitignore::tests::rebuild_fence_creates_fence_for_new_gitignore ... ok
[INFO] [stdout] test utils::gitignore::tests::rebuild_fence_rewrites_existing_fence_with_collapsed_patterns ... ok
[INFO] [stdout] test utils::hash::tests::test_hash_file_empty ... ok
[INFO] [stdout] test utils::hash::tests::test_hash_file_not_found ... ok
[INFO] [stdout] test utils::http::tests::http_url_returns_error ... ok
[INFO] [stdout] test utils::fs::tests::test_write_overwrite_file ... ok
[INFO] [stdout] test utils::hash::tests::test_hash_file_exists ... ok
[INFO] [stdout] test utils::gitignore::tests::test_clear_gitignore_fence_removes_fence ... ok
[INFO] [stdout] test utils::http::tests::missing_protocol_returns_error ... ok
[INFO] [stdout] test utils::http::tests::untrusted_https_domain_returns_error ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_both_objects ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_b_overwrites_non_object ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_both_none ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_nested_objects ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_non_object_values ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_only_a ... ok
[INFO] [stdout] test utils::http::tests::do_get_404_returns_error_with_status ... ok
[INFO] [stdout] test utils::json::tests::test_merge_json_only_b ... ok
[INFO] [stdout] test utils::json::tests::test_merge_many_json_empty ... ok
[INFO] [stdout] test utils::logs::tests::test_log_config_fields ... ok
[INFO] [stdout] test utils::json::tests::test_merge_many_json_multiple ... ok
[INFO] [stdout] test utils::json::tests::test_merge_many_json_nested ... ok
[INFO] [stdout] test utils::json::tests::test_merge_many_json_single ... ok
[INFO] [stdout] test utils::logs::tests::test_log_config_accessor_returns_option ... ok
[INFO] [stdout] test utils::logs::tests::test_log_level_selection_quiet ... ok
[INFO] [stdout] test utils::logs::tests::test_log_level_selection_verbosity_0 ... ok
[INFO] [stdout] test utils::logs::tests::test_log_level_selection_verbosity_1 ... ok
[INFO] [stdout] test utils::merge::tests::merge_into_existing_unsupported_format ... ok
[INFO] [stdout] test utils::logs::tests::test_log_level_selection_verbosity_2 ... ok
[INFO] [stdout] test utils::merge::tests::merge_json_arrays_replaced ... ok
[INFO] [stdout] test utils::merge::tests::merge_json_preserves_existing_keys ... ok
[INFO] [stdout] test utils::merge::tests::merge_json_empty_existing ... ok
[INFO] [stdout] test utils::merge::tests::merge_json_rejects_non_object_top_level_values ... ok
[INFO] [stdout] test utils::merge::tests::merge_json_rendered_wins_on_conflict ... ok
[INFO] [stdout] test utils::merge::tests::merge_jsonc_existing_keys_untouched ... ok
[INFO] [stdout] test utils::merge::tests::merge_json_top_level_key_replaced ... ok
[INFO] [stdout] test utils::merge::tests::merge_jsonc_preserves_comments ... ok
[INFO] [stdout] test utils::merge::tests::merge_toml_preserves_comments ... ok
[INFO] [stdout] test utils::merge::tests::merge_jsonc_adds_new_keys ... ok
[INFO] [stdout] test utils::merge::tests::merge_toml_rendered_wins_on_conflict ... ok
[INFO] [stdout] test utils::merge::tests::merge_yaml_empty_existing ... ok
[INFO] [stdout] test utils::merge::tests::test_merge_optional_both_none ... ok
[INFO] [stdout] test utils::merge::tests::merge_yaml_nested_objects ... ok
[INFO] [stdout] test utils::http::tests::do_get_500_returns_error_with_status ... ok
[INFO] [stdout] test utils::merge::tests::merge_toml_preserves_sections ... ok
[INFO] [stdout] test utils::merge::tests::merge_yaml_preserves_existing_keys ... ok
[INFO] [stdout] test utils::merge::tests::test_merge_optional_both_present ... ok
[INFO] [stdout] test utils::merge::tests::test_merge_optional_only_base ... ok
[INFO] [stdout] test utils::merge::tests::merge_yaml_rendered_wins_on_conflict ... ok
[INFO] [stdout] test utils::merge::tests::test_merge_optional_only_override ... ok
[INFO] [stdout] test utils::path::tests::override_workspace_dir_err_when_no_root_dir ... ok
[INFO] [stdout] test utils::merge::tests::merge_yaml_arrays_replaced ... ok
[INFO] [stdout] test utils::path::tests::resolve_and_override_workspace_none_is_noop ... ok
[INFO] [stdout] test utils::http::tests::do_get_200_returns_body ... ok
[INFO] [stdout] test utils::path::tests::override_workspace_dir_ok_when_root_dir_present ... ok
[INFO] [stdout] test utils::path::tests::resolve_and_override_workspace_resolves_relative_path ... ok
[INFO] [stdout] test utils::path::tests::resolve_and_override_workspace_errors_when_no_root_dir ... ok
[INFO] [stdout] test utils::path::tests::test_get_dir_or_die_file_not_dir ... ok
[INFO] [stdout] test utils::path::tests::test_get_dir_or_die_nonexistent ... ok
[INFO] [stdout] test utils::path::tests::resolve_and_override_workspace_ok_when_root_dir_present ... ok
[INFO] [stdout] test utils::path::tests::test_find_workspace_dir_finds_marker_in_parent ... ok
[INFO] [stdout] test utils::path::tests::test_find_workspace_dir_returns_err_when_no_marker ... ok
[INFO] [stdout] test utils::path::tests::test_make_workspace_relative_outside_workspace ... ok
[INFO] [stdout] test utils::path::tests::test_get_config_dir ... ok
[INFO] [stdout] test utils::path::tests::test_make_workspace_relative_root_file ... ok
[INFO] [stdout] test utils::path::tests::test_find_workspace_dir_finds_marker_at_start ... ok
[INFO] [stdout] test utils::tui::tests::is_tui_enabled_returns_false_when_ci_mode_set ... ok
[INFO] [stdout] test utils::path::tests::test_get_global_template_cache_dir_ends_with_expected_suffix ... ok
[INFO] [stdout] test utils::path::tests::test_get_dir_or_die_valid_dir ... ok
[INFO] [stderr]      Running tests/integration/main.rs (/opt/rustwide/target/debug/deps/integration-3256700b1c0d8f83)
[INFO] [stdout] test utils::tui::tests::is_tty_returns_bool_without_panicking ... ok
[INFO] [stdout] test utils::path::tests::test_make_workspace_relative_subdirectory ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 353 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 50 tests
[INFO] [stdout] test config::feature_subset_limits_deployed_artifacts ... ok
[INFO] [stdout] test cache::no_cache_flag_still_writes_cache_toml ... ok
[INFO] [stdout] test config::empty_targets_deploys_only_inline_providers ... ok
[INFO] [stdout] test cache::cache_toml_written_after_first_deploy ... ok
[INFO] [stdout] test cache::modifying_source_is_reflected_in_subsequent_deploy ... ok
[INFO] [stdout] test cache::two_consecutive_deploys_produce_identical_output ... ok
[INFO] [stdout] test cache::no_cache_deploy_twice_produces_identical_output ... ok
[INFO] [stdout] test dedup::dedup_undeploy_removes_file_once ... ok
[INFO] [stdout] test dedup::dedup_cache_has_one_entry_per_unique_path ... ok
[INFO] [stdout] test features::add_command_with_category_and_tags_includes_them_in_source ... ok
[INFO] [stdout] test features::add_command_source_has_yaml_frontmatter ... ok
[INFO] [stdout] test config::provider_disabled_true_skips_that_feature_output ... ok
[INFO] [stdout] test config::features_all_enabled_deploys_all_artifacts ... ok
[INFO] [stdout] test dedup::dedup_single_path_multiple_providers_only_winner_writes ... ok
[INFO] [stdout] test cache::force_flag_overwrites_user_modified_output ... ok
[INFO] [stdout] test features::mcp_source_file_is_non_empty ... ok
[INFO] [stdout] test config::local_provider_variables_override_global_variables ... ok
[INFO] [stdout] test features::add_skill_source_has_expected_metadata ... ok
[INFO] [stdout] test config::global_variable_used_when_no_provider_override ... ok
[INFO] [stdout] test features::deploy_creates_one_output_file_per_command ... ok
[INFO] [stdout] test gitignore::deploy_gitignore_flag_adds_output_paths_to_fence ... ok
[INFO] [stdout] test features::mcp_source_supports_expanded_server_fields ... ok
[INFO] [stdout] test features::deploy_creates_skill_output_under_skill_name_directory ... ok
[INFO] [stdout] test gitignore::user_content_in_workspace_gitignore_preserved_after_deploy ... ok
[INFO] [stdout] test gitignore::second_deploy_does_not_duplicate_fence_entries ... ok
[INFO] [stdout] test gitignore::deploy_gitignore_flag_creates_managed_fence_in_workspace_gitignore ... ok
[INFO] [stdout] test merge::deploy_mcp_to_existing_jsonc_preserves_comments ... ok
[INFO] [stdout] test gitignore::deploy_no_gitignore_flag_skips_fence_creation ... ok
[INFO] [stdout] test merge::deploy_mcp_to_existing_json_preserves_non_mcp_keys ... ok
[INFO] [stdout] test merge::deploy_mcp_to_existing_yaml_preserves_other_sections ... ok
[INFO] [stdout] test merge::deploy_mcp_to_existing_toml_preserves_other_sections ... ok
[INFO] [stdout] test features::deployed_command_output_name_matches_source_name ... ok
[INFO] [stdout] test merge::deploy_to_nonexistent_file_writes_directly ... ok
[INFO] [stdout] test render::deployed_command_has_no_yaml_frontmatter_delimiter ... ok
[INFO] [stdout] test merge::deploy_to_malformed_existing_file_skips_with_warning ... ok
[INFO] [stdout] test render::env_variable_interpolated_in_instructions_output ... ok
[INFO] [stdout] test gitignore::second_deploy_does_not_duplicate_path_entries_in_fence ... ok
[INFO] [stdout] test render::command_content_body_preserved_in_deployed_output ... ok
[INFO] [stdout] test undeploy::no_cache_deploy_then_undeploy_works ... ok
[INFO] [stdout] test render::provider_variable_interpolated_in_instructions_output ... ok
[INFO] [stdout] test render::mcp_output_is_valid_json_with_servers_key ... ok
[INFO] [stdout] test render::deployed_skill_output_retains_frontmatter_from_template ... ok
[INFO] [stdout] test undeploy::undeploy_with_no_cache_exits_cleanly ... ok
[INFO] [stdout] test undeploy::undeploy_removes_gitignore_fence ... ok
[INFO] [stdout] test undeploy::undeploy_force_deletes_user_edited_file ... ok
[INFO] [stdout] test undeploy::undeploy_prunes_empty_parent_directory ... ok
[INFO] [stdout] test undeploy::undeploy_twice_is_safe ... ok
[INFO] [stdout] test undeploy::undeploy_removes_deployed_files_and_clears_cache ... ok
[INFO] [stdout] test render::mcp_expanded_fields_render_to_toml_and_json_providers ... ok
[INFO] [stdout] test undeploy::undeploy_skips_user_edited_file_in_non_tty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.84s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85", kill_on_drop: false }`
[INFO] [stdout] 7ec0949b8700b4342be3090e4a6aa5993a75a9905979b0a099d327938a4baf85
