[INFO] fetching crate libaipm 0.14.6... [INFO] testing libaipm-0.14.6 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate libaipm 0.14.6 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate libaipm 0.14.6 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate libaipm 0.14.6 [INFO] tweaked toml for crates.io crate libaipm 0.14.6 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate libaipm 0.14.6 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate libaipm 0.14.6 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded lazy-regex-proc_macros v3.6.0 [INFO] [stderr] Downloaded lazy-regex v3.6.0 [INFO] [stderr] Downloaded smart-default v0.7.1 [INFO] [stderr] Downloaded junction v1.4.2 [INFO] [stderr] Downloaded predicates-tree v1.0.13 [INFO] [stderr] Downloaded terminal_size v0.4.3 [INFO] [stderr] Downloaded synthez v0.3.1 [INFO] [stderr] Downloaded predicates-core v1.0.10 [INFO] [stderr] Downloaded synthez-codegen v0.3.1 [INFO] [stderr] Downloaded peg-runtime v0.6.3 [INFO] [stderr] Downloaded globwalk v0.9.1 [INFO] [stderr] Downloaded assert_cmd v2.2.0 [INFO] [stderr] Downloaded predicates v3.1.4 [INFO] [stderr] Downloaded synthez-core v0.3.1 [INFO] [stderr] Downloaded insta v1.46.3 [INFO] [stderr] Downloaded winnow v0.7.15 [INFO] [stderr] Downloaded cucumber-codegen v0.21.1 [INFO] [stderr] Downloaded nom_locate v4.2.0 [INFO] [stderr] Downloaded cucumber v0.21.1 [INFO] [stderr] Downloaded cucumber-expressions v0.3.0 [INFO] [stderr] Downloaded peg-macros v0.6.3 [INFO] [stderr] Downloaded typed-builder v0.15.2 [INFO] [stderr] Downloaded git2 v0.19.0 [INFO] [stderr] Downloaded gherkin v0.14.0 [INFO] [stderr] Downloaded inventory v0.3.22 [INFO] [stderr] Downloaded peg v0.6.3 [INFO] [stderr] Downloaded typed-builder-macro v0.15.2 [INFO] [stderr] Downloaded libgit2-sys v0.17.0+1.8.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e69e7adcb9ef83400fbe8290094aecf5cda9fe47c097a892777e970ae79c32ec [INFO] running `Command { std: "docker" "start" "-a" "e69e7adcb9ef83400fbe8290094aecf5cda9fe47c097a892777e970ae79c32ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e69e7adcb9ef83400fbe8290094aecf5cda9fe47c097a892777e970ae79c32ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e69e7adcb9ef83400fbe8290094aecf5cda9fe47c097a892777e970ae79c32ec", kill_on_drop: false }` [INFO] [stdout] e69e7adcb9ef83400fbe8290094aecf5cda9fe47c097a892777e970ae79c32ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5d6b11f28f55013e5b29702ce846d3265662d067928b11ea42bf07ef05cc83b0 [INFO] running `Command { std: "docker" "start" "-a" "5d6b11f28f55013e5b29702ce846d3265662d067928b11ea42bf07ef05cc83b0", kill_on_drop: false }` [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling utf8-zero v0.8.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling ureq-proto v0.6.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Compiling libz-sys v1.1.25 [INFO] [stderr] Compiling libgit2-sys v0.17.0+1.8.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling xattr v1.6.1 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling tar v0.4.44 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling git2 v0.19.0 [INFO] [stderr] Compiling ureq v3.3.0 [INFO] [stderr] Compiling libaipm v0.14.6 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s [INFO] running `Command { std: "docker" "inspect" "5d6b11f28f55013e5b29702ce846d3265662d067928b11ea42bf07ef05cc83b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d6b11f28f55013e5b29702ce846d3265662d067928b11ea42bf07ef05cc83b0", kill_on_drop: false }` [INFO] [stdout] 5d6b11f28f55013e5b29702ce846d3265662d067928b11ea42bf07ef05cc83b0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] de81d8e0eff78f5b9209198f4484ac75176d2f13d978813defc7f54564e7c733 [INFO] running `Command { std: "docker" "start" "-a" "de81d8e0eff78f5b9209198f4484ac75176d2f13d978813defc7f54564e7c733", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling sealed v0.5.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling regex-syntax v0.7.5 [INFO] [stderr] Compiling peg-runtime v0.6.3 [INFO] [stderr] Compiling typed-builder-macro v0.15.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling synthez-core v0.3.1 [INFO] [stderr] Compiling peg-macros v0.6.3 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling synthez-codegen v0.3.1 [INFO] [stderr] Compiling typed-builder v0.15.2 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling inflections v1.1.1 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling synthez v0.3.1 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling pin-project v1.1.11 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling peg v0.6.3 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling nom_locate v4.2.0 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling xattr v1.6.1 [INFO] [stderr] Compiling gherkin v0.14.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling tar v0.4.44 [INFO] [stderr] Compiling smart-default v0.7.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling drain_filter_polyfill v0.1.3 [INFO] [stderr] Compiling inventory v0.3.22 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling insta v1.46.3 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling cucumber-expressions v0.3.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling lazy-regex-proc_macros v3.6.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling cucumber-codegen v0.21.1 [INFO] [stderr] Compiling lazy-regex v3.6.0 [INFO] [stderr] Compiling globwalk v0.9.1 [INFO] [stderr] Compiling libaipm v0.14.6 (/opt/rustwide/workdir) [INFO] [stderr] Compiling cucumber v0.21.1 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 49.84s [INFO] running `Command { std: "docker" "inspect" "de81d8e0eff78f5b9209198f4484ac75176d2f13d978813defc7f54564e7c733", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "de81d8e0eff78f5b9209198f4484ac75176d2f13d978813defc7f54564e7c733", kill_on_drop: false }` [INFO] [stdout] de81d8e0eff78f5b9209198f4484ac75176d2f13d978813defc7f54564e7c733 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0ab2fe39a13fec3d7801d8e04719c90b33df0577ff28394990c7779e0c036ce1 [INFO] running `Command { std: "docker" "start" "-a" "0ab2fe39a13fec3d7801d8e04719c90b33df0577ff28394990c7779e0c036ce1", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/libaipm-5324ffc693acb856) [INFO] [stdout] [INFO] [stdout] running 844 tests [INFO] [stdout] test fs::tests::real_read_dir_nonexistent ... ok [INFO] [stdout] test fs::tests::real_remove_file ... ok [INFO] [stdout] test init::tests::init_composite_write_fails_on_gitkeep ... ok [INFO] [stdout] test init::tests::init_agent_layout_dir_fails ... ok [INFO] [stdout] test init::tests::init_creates_manifest_and_dirs ... ok [INFO] [stdout] test fs::tests::real_hard_link ... ok [INFO] [stdout] test fs::tests::real_symlink_dir_and_read_link ... ok [INFO] [stdout] test init::tests::init_hook_layout_write_fails ... ok [INFO] [stdout] test init::tests::init_fails_on_create_dir_error ... ok [INFO] [stdout] test fs::tests::real_copy_file ... ok [INFO] [stdout] test fs::tests::real_is_symlink_returns_false_for_regular ... ok [INFO] [stdout] test init::tests::init_fails_on_write_file_error ... ok [INFO] [stdout] test init::tests::init_mcp_layout_write_fails ... ok [INFO] [stdout] test fs::tests::real_atomic_write ... ok [INFO] [stdout] test init::tests::init_skill_write_fails_on_template ... ok [INFO] [stdout] test init::tests::init_skill_layout_fails_on_second_create_dir ... ok [INFO] [stdout] test init::tests::valid_names ... ok [INFO] [stdout] test fs::tests::real_read_dir_lists_entries ... ok [INFO] [stdout] test init::tests::invalid_names ... ok [INFO] [stdout] test init::tests::is_valid_segment_rejects_empty_string ... ok [INFO] [stdout] test installer::manifest_editor::tests::parse_package_spec_exact_version ... ok [INFO] [stdout] test installer::manifest_editor::tests::parse_package_spec_with_version ... ok [INFO] [stdout] test init::tests::init_no_directory_name_from_root_path ... ok [INFO] [stdout] test installer::manifest_editor::tests::parse_package_spec_without_version ... ok [INFO] [stdout] test init::tests::init_uses_directory_name_as_default ... ok [INFO] [stdout] test fs::tests::real_read_dir_empty_dir ... ok [INFO] [stdout] test installer::pipeline::tests::build_lockfile_from_resolution ... ok [INFO] [stdout] test installer::manifest_editor::tests::remove_dependency_no_deps_table_is_noop ... ok [INFO] [stdout] test installer::manifest_editor::tests::remove_dependency_removes_entry ... ok [INFO] [stdout] test installer::pipeline::tests::build_lockfile_path_source ... ok [INFO] [stdout] test installer::pipeline::tests::build_lockfile_workspace_source ... ok [INFO] [stdout] test installer::pipeline::tests::build_pins_from_packages ... ok [INFO] [stdout] test init::tests::generated_manifest_is_parseable ... ok [INFO] [stdout] test installer::pipeline::tests::build_pins_skips_invalid_version_entries ... ok [INFO] [stdout] test installer::manifest_editor::tests::add_dependency_fails_when_dependencies_is_scalar ... ok [INFO] [stdout] test init::tests::init_agent_layout_write_fails ... ok [INFO] [stdout] test installer::manifest_editor::tests::remove_nonexistent_is_noop ... ok [INFO] [stdout] test installer::pipeline::tests::build_resolution_from_lockfile_invalid_version_errors ... ok [INFO] [stdout] test installer::pipeline::tests::build_resolution_from_lockfile_path_source ... ok [INFO] [stdout] test installer::pipeline::tests::build_resolution_from_lockfile_round_trip ... ok [INFO] [stdout] test installer::pipeline::tests::build_resolution_from_lockfile_unknown_source_fallback ... ok [INFO] [stdout] test installer::pipeline::tests::clear_dev_links_when_no_state_file ... ok [INFO] [stdout] test installer::pipeline::tests::collect_transitive_registry_deps_from_workspace_members ... ok [INFO] [stdout] test installer::pipeline::tests::collect_transitive_skips_member_with_no_deps ... ok [INFO] [stdout] test installer::pipeline::tests::collect_transitive_registry_deps_with_detailed ... ok [INFO] [stdout] test installer::pipeline::tests::collect_transitive_skips_missing_member ... ok [INFO] [stdout] test installer::pipeline::tests::discover_workspace_members_no_workspace_context ... ok [INFO] [stdout] test init::tests::init_fails_for_invalid_name ... ok [INFO] [stdout] test installer::pipeline::tests::discover_workspace_members_workspace_root_no_manifest_file ... ok [INFO] [stdout] test installer::pipeline::tests::discover_workspace_members_via_workspace_root ... ok [INFO] [stdout] test installer::pipeline::tests::clear_dev_links_with_existing_entries ... ok [INFO] [stdout] test init::tests::init_skill_type_creates_template ... ok [INFO] [stdout] test installer::pipeline::tests::discover_workspace_members_from_manifest ... ok [INFO] [stdout] test init::tests::init_fails_if_already_initialized ... ok [INFO] [stdout] test installer::pipeline::tests::extract_dep_names_no_dependencies ... ok [INFO] [stdout] test installer::pipeline::tests::extract_dep_names_from_manifest ... ok [INFO] [stdout] test installer::pipeline::tests::discover_workspace_members_workspace_root_no_workspace_section ... ok [INFO] [stdout] test installer::manifest_editor::tests::add_dependency_creates_table_if_missing ... ok [INFO] [stdout] test installer::manifest_editor::tests::add_dependency_to_existing_table ... ok [INFO] [stdout] test installer::pipeline::tests::handle_removals_no_existing_lockfile ... ok [INFO] [stdout] test fs::tests::real_read_dir_distinguishes_files_and_dirs ... ok [INFO] [stdout] test fs::tests::real_remove_dir_all ... ok [INFO] [stdout] test installer::manifest_editor::tests::add_dependency_updates_existing ... ok [INFO] [stdout] test init::tests::init_each_type_sets_correct_manifest ... ok [INFO] [stdout] test installer::pipeline::tests::install_locked_fails_without_lockfile ... ok [INFO] [stdout] test installer::pipeline::tests::handle_removals_with_stale_package_increments_removed ... ok [INFO] [stdout] test installer::pipeline::tests::install_locked_fails_on_drift ... ok [INFO] [stdout] test installer::pipeline::tests::handle_removals_no_stale_packages_returns_zero ... ok [INFO] [stdout] test installer::pipeline::tests::install_fails_when_package_not_in_registry ... ok [INFO] [stdout] test installer::pipeline::tests::install_locked_without_lockfile_returns_drift_error ... ok [INFO] [stdout] test installer::pipeline::tests::install_second_run_counts_up_to_date ... ok [INFO] [stdout] test installer::pipeline::tests::link_resolved_packages_skips_path_source ... ok [INFO] [stdout] test installer::pipeline::tests::install_workspace_dep_already_in_plugins_dir ... ok [INFO] [stdout] test installer::pipeline::tests::install_transitive_workspace_deps_in_place ... ok [INFO] [stdout] test installer::pipeline::tests::install_with_manifest_having_overrides ... ok [INFO] [stdout] test installer::pipeline::tests::manifest_to_resolver_deps_no_dependencies ... ok [INFO] [stdout] test installer::pipeline::tests::manifest_to_resolver_deps_detailed ... ok [INFO] [stdout] test installer::pipeline::tests::manifest_to_resolver_deps_simple ... ok [INFO] [stdout] test installer::pipeline::tests::needs_update_false_when_found_and_both_match ... ok [INFO] [stdout] test installer::pipeline::tests::needs_update_detects_version_change ... ok [INFO] [stdout] test installer::pipeline::tests::needs_update_false_when_same ... ok [INFO] [stdout] test installer::pipeline::tests::needs_update_true_when_checksum_differs ... ok [INFO] [stdout] test installer::pipeline::tests::needs_update_true_when_no_lockfile ... ok [INFO] [stdout] test installer::pipeline::tests::clear_dev_links_with_existing_entries_clears_them ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_circular_deps ... ok [INFO] [stdout] test installer::pipeline::tests::manifest_to_resolver_deps_detailed_no_version ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_collects_transitive_dep_strings ... ok [INFO] [stdout] test installer::pipeline::tests::needs_update_true_when_package_not_in_lockfile ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_error_unknown_member ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_registry_deps_empty ... ok [INFO] [stdout] test installer::pipeline::tests::install_creates_lockfile ... ok [INFO] [stdout] test installer::pipeline::tests::link_resolved_packages_workspace_source ... ok [INFO] [stdout] test installer::pipeline::tests::install_workspace_deps_end_to_end ... ok [INFO] [stdout] test installer::pipeline::tests::install_locked_clears_dev_links ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_workspace_dep_with_detailed_non_ws_transitive ... ok [INFO] [stdout] test installer::pipeline::tests::split_deps_empty ... ok [INFO] [stdout] test installer::pipeline::tests::split_deps_all_registry ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_link_overrides_keep_workspace_source ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_registry_deps_locked_with_no_lockfile_falls_through ... ok [INFO] [stdout] test installer::pipeline::tests::split_deps_detailed_non_workspace ... ok [INFO] [stdout] test installer::pipeline::tests::split_deps_all_workspace ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_direct_workspace_dep ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_transitive_workspace_deps ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_workspace_dep_invalid_version ... ok [INFO] [stdout] test installer::pipeline::tests::split_deps_workspace_and_registry ... ok [INFO] [stdout] test installer::pipeline::tests::split_deps_detailed_no_version ... ok [INFO] [stdout] test installer::pipeline::tests::update_all_without_lockfile ... ok [INFO] [stdout] test installer::pipeline::tests::update_targeted_with_existing_lockfile ... ok [INFO] [stdout] test installer::pipeline::tests::install_with_existing_lockfile_reconciles ... ok [INFO] [stdout] test installer::pipeline::tests::update_full_re_resolves_all ... ok [INFO] [stdout] test linker::directory_link::tests::is_link_returns_false_for_nonexistent ... ok [INFO] [stdout] test installer::pipeline::tests::update_targeted_package ... ok [INFO] [stdout] test linker::directory_link::tests::is_link_returns_false_for_regular_dir ... ok [INFO] [stdout] test installer::pipeline::tests::install_with_add_package ... ok [INFO] [stdout] test linker::gitignore::tests::add_entry_creates_file_with_markers ... ok [INFO] [stdout] test linker::gitignore::tests::add_entry_at_sign_without_slash_is_not_scoped ... ok [INFO] [stdout] test linker::directory_link::tests::remove_symlink ... ok [INFO] [stdout] test linker::directory_link::tests::create_makes_parent_dirs ... ok [INFO] [stdout] test linker::directory_link::tests::create_fails_if_source_missing ... ok [INFO] [stdout] test linker::directory_link::tests::create_fails_if_target_is_regular_dir ... ok [INFO] [stdout] test installer::pipeline::tests::install_with_changed_manifest_forces_re_resolution ... ok [INFO] [stdout] test linker::gitignore::tests::add_scoped_entry_adds_scope_dir ... ok [INFO] [stdout] test linker::gitignore::tests::add_entry_preserves_existing_manual_entries ... ok [INFO] [stdout] test linker::gitignore::tests::managed_section_ignores_comment_lines_within_markers ... ok [INFO] [stdout] test linker::directory_link::tests::create_replaces_existing_symlink ... ok [INFO] [stdout] test linker::gitignore::tests::build_content_trailing_newline_not_doubled_when_after_empty_line ... ok [INFO] [stdout] test linker::gitignore::tests::add_scoped_entry_scope_dir_already_present_is_idempotent ... ok [INFO] [stdout] test linker::gitignore::tests::preserves_content_after_markers ... ok [INFO] [stdout] test linker::gitignore::tests::remove_scoped_entry_removes_scope_when_last ... ok [INFO] [stdout] test linker::gitignore::tests::remove_scoped_entry_keeps_scope_when_others_exist ... ok [INFO] [stdout] test linker::gitignore::tests::split_sections_reversed_markers_treated_as_no_markers ... ok [INFO] [stdout] test linker::gitignore::tests::split_sections_only_start_marker_no_end ... ok [INFO] [stdout] test linker::hard_link::tests::assemble_cleans_existing_directory ... ok [INFO] [stdout] test installer::pipeline::tests::update_second_run_counts_up_to_date ... ok [INFO] [stdout] test linker::hard_link::tests::assemble_empty_package ... ok [INFO] [stdout] test linker::gitignore::tests::split_sections_empty_line_in_managed_section_is_skipped ... ok [INFO] [stdout] test linker::gitignore::tests::add_entry_idempotent ... ok [INFO] [stdout] test linker::hard_link::tests::assemble_creates_directory_tree ... ok [INFO] [stdout] test linker::hard_link::tests::assemble_deeply_nested_files ... ok [INFO] [stdout] test linker::gitignore::tests::remove_nonexistent_is_noop ... ok [INFO] [stdout] test linker::directory_link::tests::create_and_read_symlink ... ok [INFO] [stdout] test installer::pipeline::tests::resolve_dependencies_locked_with_lockfile_uses_it ... ok [INFO] [stdout] test linker::gitignore::tests::remove_entry_removes_package ... ok [INFO] [stdout] test linker::hard_link::tests::assemble_file_content_matches ... ok [INFO] [stdout] test linker::gitignore::tests::read_entries_empty_file ... ok [INFO] [stdout] test linker::gitignore::tests::read_or_default_returns_error_on_permission_denied ... ok [INFO] [stdout] test linker::link_state::tests::remove_entry ... ok [INFO] [stdout] test linker::link_state::tests::add_replaces_existing ... ok [INFO] [stdout] test installer::pipeline::tests::update_full_with_existing_lockfile ... ok [INFO] [stdout] test linker::link_state::tests::written_file_has_header_comment ... ok [INFO] [stdout] test linker::link_state::tests::remove_nonexistent_is_noop ... ok [INFO] [stdout] test linker::link_state::tests::write_path_without_parent_skips_create_dir_all ... ok [INFO] [stdout] test linker::link_state::tests::read_other_io_error_propagates ... ok [INFO] [stdout] test linker::gitignore::tests::remove_scoped_entry_with_another_scoped_package_keeps_scope ... ok [INFO] [stdout] test linker::link_state::tests::read_invalid_toml_returns_error ... ok [INFO] [stdout] test linker::gitignore::tests::remove_scoped_entry_scope_removed_when_non_scoped_packages_also_present ... ok [INFO] [stdout] test linker::security::tests::blocked_scripts_filters_correctly ... ok [INFO] [stdout] test linker::security::tests::no_scripts_no_verdicts ... ok [INFO] [stdout] test linker::link_state::tests::write_and_read_roundtrip ... ok [INFO] [stdout] test linker::security::tests::all_allowed_when_all_in_allowlist ... ok [INFO] [stdout] test linker::link_state::tests::read_nonexistent_returns_default ... ok [INFO] [stdout] test linker::security::tests::allowed_packages_pass ... ok [INFO] [stdout] test linker::link_state::tests::add_creates_entry ... ok [INFO] [stdout] test linker::pipeline::tests::unlink_nonexistent_is_noop ... ok [INFO] [stdout] test lockfile::reconcile::tests::both_added_and_removed ... ok [INFO] [stdout] test linker::security::tests::all_blocked_with_empty_allowlist ... ok [INFO] [stdout] test lockfile::reconcile::tests::empty_manifest_all_removed ... ok [INFO] [stdout] test lockfile::reconcile::tests::no_changes ... ok [INFO] [stdout] test linker::link_state::tests::clear_all_removes_everything ... ok [INFO] [stdout] test lockfile::reconcile::tests::workspace_packages_excluded_from_carried_forward ... ok [INFO] [stdout] test lockfile::tests::read_nonexistent_file_errors ... ok [INFO] [stdout] test lockfile::reconcile::tests::prune_orphans_empty_reachable ... ok [INFO] [stdout] test lockfile::reconcile::tests::registry_packages_still_carried_forward ... ok [INFO] [stdout] test lockfile::tests::read_invalid_toml_errors ... ok [INFO] [stdout] test lockfile::tests::read_unsupported_version_errors ... ok [INFO] [stdout] test lockfile::reconcile::tests::new_dep_added ... ok [INFO] [stdout] test linker::pipeline::tests::unlink_package_removes_both_tiers ... ok [INFO] [stdout] test lockfile::reconcile::tests::empty_lockfile_all_new ... ok [INFO] [stdout] test lockfile::tests::validate_matches_manifest_all_present ... ok [INFO] [stdout] test lockfile::reconcile::tests::prune_orphans_keeps_reachable ... ok [INFO] [stdout] test lockfile::tests::validate_matches_manifest_detects_removed_dep ... ok [INFO] [stdout] test lockfile::reconcile::tests::dep_removed ... ok [INFO] [stdout] test lockfile::tests::validate_matches_manifest_extra_lockfile_ok ... ok [INFO] [stdout] test lockfile::tests::validate_matches_manifest_multiple_missing ... ok [INFO] [stdout] test lockfile::tests::written_file_contains_header ... ok [INFO] [stdout] test lockfile::tests::validate_matches_manifest_missing_dep ... ok [INFO] [stdout] test lockfile::types::tests::deserialize_from_spec_format ... ok [INFO] [stdout] test lockfile::types::tests::deserialize_missing_dependencies_defaults_empty ... ok [INFO] [stdout] test lockfile::tests::write_creates_parent_directories ... ok [INFO] [stdout] test lockfile::types::tests::deserialize_no_packages_defaults_empty ... ok [INFO] [stdout] test lockfile::types::tests::new_lockfile_has_correct_version ... ok [INFO] [stdout] test lockfile::tests::validate_matches_manifest_empty_both ... ok [INFO] [stdout] test lockfile::tests::write_and_read_round_trip ... ok [INFO] [stdout] test linker::pipeline::tests::link_package_replaces_existing ... ok [INFO] [stdout] test lockfile::types::tests::round_trip_serialization_empty ... ok [INFO] [stdout] test manifest::tests::invalid_name_fails ... ok [INFO] [stdout] test manifest::tests::environment_section_parses ... ok [INFO] [stdout] test manifest::tests::features_section_parses ... ok [INFO] [stdout] test lockfile::types::tests::round_trip_serialization_with_packages ... ok [INFO] [stdout] test lockfile::tests::read_empty_lockfile ... ok [INFO] [stdout] test manifest::tests::full_components_with_lsp_and_scripts ... ok [INFO] [stdout] test manifest::tests::catalogs_parse ... ok [INFO] [stdout] test lockfile::tests::write_to_path_without_parent_returns_io_error ... ok [INFO] [stdout] test manifest::tests::invalid_plugin_type_fails ... ok [INFO] [stdout] test lockfile::types::tests::package_source_types ... ok [INFO] [stdout] test manifest::tests::invalid_version_fails ... ok [INFO] [stdout] test manifest::tests::all_plugin_types_valid ... ok [INFO] [stdout] test manifest::tests::load_nonexistent_file_returns_io_error ... ok [INFO] [stdout] test manifest::tests::component_path_not_found ... ok [INFO] [stdout] test manifest::tests::edition_field_rejected ... ok [INFO] [stdout] test manifest::tests::load_valid_manifest_file_succeeds ... ok [INFO] [stdout] test manifest::tests::lsp_plugin_type_valid ... ok [INFO] [stdout] test manifest::tests::install_section_parses ... ok [INFO] [stdout] test manifest::tests::invalid_dependency_version_fails ... ok [INFO] [stdout] test manifest::tests::missing_name_fails ... ok [INFO] [stdout] test manifest::tests::empty_manifest_is_valid ... ok [INFO] [stdout] test manifest::tests::workspace_ref_dependency_valid ... ok [INFO] [stdout] test manifest::tests::missing_version_fails ... ok [INFO] [stdout] test manifest::tests::valid_dependency_versions ... ok [INFO] [stdout] test manifest::validate::tests::catalog_refs_valid ... ok [INFO] [stdout] test manifest::tests::overrides_section_parses ... ok [INFO] [stdout] test manifest::tests::parse_full_member_manifest ... ok [INFO] [stdout] test linker::pipeline::tests::link_package_creates_both_tiers ... ok [INFO] [stdout] test manifest::tests::parse_minimal_manifest ... ok [INFO] [stdout] test manifest::tests::parse_workspace_root_manifest ... ok [INFO] [stdout] test manifest::tests::prerelease_version_valid ... ok [INFO] [stdout] test manifest::tests::multiple_errors_format_with_separator ... ok [INFO] [stdout] test manifest::tests::scoped_package_name_valid ... ok [INFO] [stdout] test manifest::tests::version_with_build_metadata_valid ... ok [INFO] [stdout] test manifest::tests::workspace_caret_protocol_rejected ... ok [INFO] [stdout] test manifest::tests::workspace_equals_protocol_rejected ... ok [INFO] [stdout] test manifest::validate::tests::dependency_with_no_version_is_accepted ... ok [INFO] [stdout] test manifest::validate::tests::invalid_names ... ok [INFO] [stdout] test manifest::validate::tests::invalid_version_reqs ... ok [INFO] [stdout] test manifest::validate::tests::valid_scoped_name ... ok [INFO] [stdout] test manifest::validate::tests::valid_simple_name ... ok [INFO] [stdout] test manifest::validate::tests::valid_version_reqs ... ok [INFO] [stdout] test manifest::validate::tests::workspace_protocol_valid ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_empty_dir ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_malformed_frontmatter ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_md_file ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_no_agents_dir ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_no_frontmatter_uses_filename ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_skips_directories ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_skips_non_md_files ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_multiple_agents ... ok [INFO] [stdout] test migrate::agent_detector::tests::detect_agent_strips_quoted_description ... ok [INFO] [stdout] test migrate::agent_detector::tests::frontmatter_name_fallback_to_filename_stem ... ok [INFO] [stdout] test migrate::cleanup::tests::command_file_is_removed_via_remove_file ... ok [INFO] [stdout] test migrate::cleanup::tests::empty_outcome_produces_no_actions ... ok [INFO] [stdout] test migrate::cleanup::tests::empty_parent_directory_is_pruned ... ok [INFO] [stdout] test migrate::cleanup::tests::mcp_json_is_skipped ... ok [INFO] [stdout] test migrate::cleanup::tests::mixed_artifacts_with_skip ... ok [INFO] [stdout] test migrate::cleanup::tests::non_empty_parent_directory_is_not_pruned ... ok [INFO] [stdout] test migrate::cleanup::tests::parent_dir_read_error_is_silently_skipped ... ok [INFO] [stdout] test migrate::cleanup::tests::remove_file_error_propagates ... ok [INFO] [stdout] test migrate::cleanup::tests::settings_json_is_skipped ... ok [INFO] [stdout] test migrate::cleanup::tests::should_skip_for_report_does_not_match_regular_file ... ok [INFO] [stdout] test migrate::cleanup::tests::should_skip_for_report_matches_mcp_json ... ok [INFO] [stdout] test migrate::cleanup::tests::should_skip_for_report_matches_settings_json ... ok [INFO] [stdout] test migrate::cleanup::tests::skill_directory_is_removed_via_remove_dir_all ... ok [INFO] [stdout] test migrate::cleanup::tests::source_at_root_path_has_no_parent_dir_to_check ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_adds_disable_model_invocation ... ok [INFO] [stdout] test migrate::cleanup::tests::should_skip_for_report_does_not_match_root_path ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_ignores_directories ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_ignores_non_md ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_strips_quoted_description ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_md_file ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_with_frontmatter ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_command_without_frontmatter ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::agent_md_takes_precedence_over_plain_md ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::detect_agent_stores_raw_content ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::detect_agent_md_file ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::has_agent_md_suffix_edge_cases ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::no_agents_dir_returns_empty ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::malformed_frontmatter_returns_error ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::no_frontmatter_uses_filename_stem ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::multiple_agents_detected ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::quoted_frontmatter_values_stripped ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::skips_directories_and_non_md_files ... ok [INFO] [stdout] test migrate::copilot_extension_detector::tests::detect_extension_subdirectory_with_config ... ok [INFO] [stdout] test migrate::copilot_extension_detector::tests::no_extensions_dir_returns_empty ... ok [INFO] [stdout] test migrate::copilot_extension_detector::tests::detect_multiple_extensions ... ok [INFO] [stdout] test migrate::copilot_extension_detector::tests::skips_non_directory_entries ... ok [INFO] [stdout] test migrate::copilot_extension_detector::tests::empty_extensions_dir_returns_empty ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::detect_plain_md_when_no_agent_md ... ok [INFO] [stdout] test migrate::copilot_agent_detector::tests::empty_agents_dir_returns_empty ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::malformed_json_returns_error ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::canonical_names_pass_through ... ok [INFO] [stdout] test migrate::command_detector::tests::detect_no_commands_dir ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::normalize_non_object_passes_through ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::detect_hooks_in_subdirectory ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::normalize_remaining_legacy_names ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::detect_github_lsp_json_fallback ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::detect_valid_lsp_json_at_source_dir ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::detect_hooks_json_is_array_returns_empty ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::script_references_extracted_from_command_hooks ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::detect_standalone_hooks_json_at_root ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::empty_hooks_object_returns_empty ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::hooks_json_at_root_takes_priority ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::legacy_session_start_normalized ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::legacy_stop_normalized ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::legacy_user_prompt_submit_normalized ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::malformed_json_returns_config_parse_error ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::empty_object_returns_empty ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::non_object_json_returns_empty ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::root_source_dir_no_parent_returns_empty ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::multiple_lsp_servers_counted ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::empty_mcp_servers_returns_empty ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::no_copilot_mcp_config_returns_empty ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::no_mcp_servers_key_returns_empty ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_empty_skills_dir ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_claude_skill_dir_refs_also_extracted ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::project_root_derivation ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::detect_valid_copilot_mcp_config_stdio_transport ... ok [INFO] [stdout] test migrate::copilot_lsp_detector::tests::no_lsp_json_returns_empty ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::no_hooks_files_returns_empty ... ok [INFO] [stdout] test migrate::copilot_hook_detector::tests::normalize_merges_duplicate_canonical_keys ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::detect_valid_copilot_mcp_config_local_transport ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_no_skills_dir ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_skill_from_github_skills ... ok [INFO] [stdout] test migrate::copilot_mcp_detector::tests::malformed_json_returns_error ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_skill_dir_refs_extracted ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_skill_skips_dir_without_skill_md ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_skill_frontmatter_name_overrides_dir ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_skill_without_frontmatter_uses_dir_name ... ok [INFO] [stdout] test migrate::detector::tests::claude_detectors_returns_six ... ok [INFO] [stdout] test migrate::detector::tests::copilot_detector_names ... ok [INFO] [stdout] test migrate::detector::tests::copilot_detectors_returns_six ... ok [INFO] [stdout] test migrate::detector::tests::detectors_for_github_source ... ok [INFO] [stdout] test migrate::detector::tests::detectors_for_unknown_source ... ok [INFO] [stdout] test migrate::detector::tests::detectors_for_claude_source ... ok [INFO] [stdout] test migrate::copilot_skill_detector::tests::detect_skill_skips_non_dir_entries ... ok [INFO] [stdout] test migrate::discovery::tests::discover_source_dirs_root_github_has_none_package_name ... ok [INFO] [stdout] test migrate::discovery::tests::discover_finds_root_claude_dir ... ok [INFO] [stdout] test migrate::discovery::tests::discover_excludes_ai_directory ... ok [INFO] [stdout] test migrate::discovery::tests::discover_returns_empty_when_no_claude_dirs ... ok [INFO] [stdout] test migrate::discovery::tests::discover_assigns_correct_package_name ... ok [INFO] [stdout] test migrate::discovery::tests::discover_source_dirs_finds_both_claude_and_github ... ok [INFO] [stdout] test migrate::discovery::tests::discover_returns_none_package_for_root ... ok [INFO] [stdout] test migrate::discovery::tests::discover_respects_max_depth ... ok [INFO] [stdout] test migrate::discovery::tests::discover_finds_nested_claude_dirs ... ok [INFO] [stdout] test migrate::discovery::tests::discover_returns_sorted_results ... ok [INFO] [stdout] test migrate::discovery::tests::discover_source_dirs_sets_correct_source_type ... ok [INFO] [stdout] test migrate::discovery::tests::discover_with_gitignore_skips_ignored ... ok [INFO] [stdout] test migrate::dry_run::tests::component_path_all_kinds ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_agents_section ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_all_types ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_commands_section ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_destructive_command_listed_as_file ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_destructive_only_skipped_shows_no_files_to_remove ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_destructive_skill_listed_as_directory ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_destructive_skips_mcp_json ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_destructive_skips_shared_config ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_empty_artifacts ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_hooks_section ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_lists_all_artifacts ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_mcp_section ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_no_manifest_shows_hint ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_output_styles_section ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_shows_conflict_renames ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_summary_table ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_with_manifest_shows_aipm_toml ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_with_hooks ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_with_destructive_has_cleanup_section ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_with_script_references ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_without_destructive_has_no_cleanup_section ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_composite_with_new_types ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_empty_discovery ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_new_type_counts ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_shows_discovery_table ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_shows_name_conflicts ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_single_artifact_plan ... ok [INFO] [stdout] test migrate::dry_run::tests::recursive_report_with_destructive_has_cleanup_section ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_indented_line_without_key ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_empty ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_basic ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_indented_continuation ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_key_with_empty_value_then_non_indented ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_multiline ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_no_colon ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_tab_indented ... ok [INFO] [stdout] test migrate::emitter::tests::convert_hooks_yaml_with_blank_lines ... ok [INFO] [stdout] test migrate::emitter::tests::emit_agent_creates_agents_dir ... ok [INFO] [stdout] test migrate::emitter::tests::emit_command_as_skill ... ok [INFO] [stdout] test migrate::emitter::tests::emit_agent_plugin_json_has_agents_field ... ok [INFO] [stdout] test migrate::emitter::tests::emit_command_wraps_with_frontmatter ... ok [INFO] [stdout] test migrate::emitter::tests::emit_copies_referenced_scripts ... ok [INFO] [stdout] test migrate::emitter::tests::emit_copies_skill_files ... ok [INFO] [stdout] test migrate::emitter::tests::emit_creates_plugin_directory_structure ... ok [INFO] [stdout] test migrate::emitter::tests::emit_extension_files_no_raw_content_copies_all_files ... ok [INFO] [stdout] test migrate::emitter::tests::emit_generates_plugin_json ... ok [INFO] [stdout] test migrate::emitter::tests::emit_extracts_hooks_to_json ... ok [INFO] [stdout] test migrate::emitter::tests::emit_generates_valid_aipm_toml ... ok [INFO] [stdout] test migrate::emitter::tests::emit_hook_with_script_references ... ok [INFO] [stdout] test migrate::emitter::tests::emit_hooks_no_raw_content_falls_back_to_source ... ok [INFO] [stdout] test migrate::emitter::tests::emit_hooks_plugin_json_has_hooks_field ... ok [INFO] [stdout] test migrate::emitter::tests::emit_lsp_config_no_raw_content_falls_back_to_source ... ok [INFO] [stdout] test migrate::emitter::tests::emit_hooks_writes_hooks_json ... ok [INFO] [stdout] test migrate::emitter::tests::emit_mcp_no_raw_content_falls_back_to_source ... ok [INFO] [stdout] test migrate::emitter::tests::emit_mcp_no_raw_content_no_source_errors ... ok [INFO] [stdout] test migrate::emitter::tests::emit_mcp_plugin_json_has_mcp_servers_field ... ok [INFO] [stdout] test migrate::emitter::tests::emit_mcp_writes_mcp_json ... ok [INFO] [stdout] test migrate::emitter::tests::emit_command_with_existing_frontmatter ... ok [INFO] [stdout] test migrate::emitter::tests::emit_output_style_copies_to_plugin_root ... ok [INFO] [stdout] test migrate::emitter::tests::emit_output_style_plugin_json_has_output_styles_field ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_command_only ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_empty_artifacts ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_hook_and_mcp ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_lsp_and_extension ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_mcp_only ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_merges_hooks ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_missing_script ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_mixed_agent_and_skill ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_multiple_artifacts_composite ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_no_manifest_skips_aipm_toml ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_output_style_only ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_single_skill ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_unsafe_artifact_name ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_unsafe_plugin_name ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_extension_writes_config_and_files ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_no_manifest_skips_aipm_toml ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_lsp_server_writes_lsp_json ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_agent ... ok [INFO] [stdout] test migrate::emitter::tests::emit_package_plugin_with_scripts ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_command_artifact ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_creates_structure ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_extension ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_hook ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_lsp_server ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_missing_script_skipped ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_mcp ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_no_manifest_skips_aipm_toml ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_output_style ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_unsafe_artifact_name ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_unsafe_plugin_name ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_with_hooks ... ok [INFO] [stdout] test migrate::emitter::tests::emit_plugin_with_name_with_scripts ... ok [INFO] [stdout] test migrate::emitter::tests::emit_preserves_nested_script_paths ... ok [INFO] [stdout] test migrate::emitter::tests::emit_rejects_unsafe_name_with_separator ... ok [INFO] [stdout] test migrate::emitter::tests::emit_rejects_unsafe_name_with_traversal ... ok [INFO] [stdout] test migrate::emitter::tests::emit_rewrites_claude_skill_dir ... ok [INFO] [stdout] test migrate::emitter::tests::emit_skill_keeps_unreferenced_scripts_in_skill_dir ... ok [INFO] [stdout] test migrate::emitter::tests::emit_skill_skips_referenced_scripts_from_file_copy ... ok [INFO] [stdout] test migrate::emitter::tests::emit_skill_with_missing_script ... ok [INFO] [stdout] test migrate::emitter::tests::emit_skill_with_non_skill_md_files ... ok [INFO] [stdout] test migrate::emitter::tests::file_is_skill_md_true ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_agent_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_description_with_special_chars ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_hook_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_mcp_kind ... ok [INFO] [stdout] test migrate::emitter::tests::file_is_skill_md_false ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_no_description ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_output_style_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_valid_toml_roundtrip ... ok [INFO] [stdout] test migrate::emitter::tests::generate_manifest_with_scripts_and_hooks ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_agent_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_description_with_special_chars ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_extension_kind ... ok [INFO] [stdout] test migrate::dry_run::tests::dry_run_report_shows_file_list ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_hook_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_lsp_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_mcp_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_multi_composite ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_no_description ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_multi_all_kinds ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_output_style_kind ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_valid_json_roundtrip ... ok [INFO] [stdout] test migrate::emitter::tests::inject_disable_no_closing_delimiter ... ok [INFO] [stdout] test migrate::emitter::tests::inject_disable_deduplicates_existing_key ... ok [INFO] [stdout] test migrate::emitter::tests::inject_disable_no_frontmatter ... ok [INFO] [stdout] test migrate::emitter::tests::inject_disable_with_frontmatter ... ok [INFO] [stdout] test migrate::emitter::tests::generate_plugin_json_with_description ... ok [INFO] [stdout] test migrate::emitter::tests::is_safe_path_segment_accepts_valid ... ok [INFO] [stdout] test migrate::emitter::tests::is_safe_path_segment_rejects_backslash ... ok [INFO] [stdout] test migrate::emitter::tests::is_safe_path_segment_rejects_dot ... ok [INFO] [stdout] test migrate::emitter::tests::is_safe_path_segment_rejects_dotdot ... ok [INFO] [stdout] test migrate::emitter::tests::is_safe_path_segment_rejects_empty ... ok [INFO] [stdout] test migrate::emitter::tests::resolve_name_conflict_renames ... ok [INFO] [stdout] test migrate::emitter::tests::resolve_name_multiple_conflicts ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_hook_command_paths_invalid_json ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_hook_command_paths_leaves_absolute_alone ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_hook_command_paths_no_args ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_hook_command_paths_nested_arrays ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_hook_command_paths_rewrites_relative ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_paths_no_scripts ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_paths_with_scripts ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_single_command_bare_command_unchanged ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_single_command_with_slash_path ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_absolute_path_command_not_extracted ... ok [INFO] [stdout] test migrate::hook_detector::tests::collect_command_scripts_with_missing_command_field ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_empty_hooks_object ... ok [INFO] [stdout] test migrate::emitter::tests::resolve_name_no_conflict ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_hooks_from_settings ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_hooks_value_not_object ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_ignores_bare_command_names ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_nested_script_in_array_handler ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_malformed_json ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_no_hooks_key ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_no_settings_json ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_non_command_type_ignored ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_script_references_from_command_hooks ... ok [INFO] [stdout] test migrate::hook_detector::tests::has_windows_drive_prefix_detects_drive_letters ... ok [INFO] [stdout] test migrate::hook_detector::tests::detect_script_with_extension_in_command ... ok [INFO] [stdout] test migrate::hook_detector::tests::is_relative_script_windows_backslash_path_is_relative ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_empty_mcp_servers ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_no_mcp_json ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_malformed_json ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_root_source_dir_no_parent ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_project_root_derivation ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_no_mcp_servers_key ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_empty_output_styles_dir ... ok [INFO] [stdout] test migrate::mcp_detector::tests::detect_valid_mcp_json ... ok [INFO] [stdout] test migrate::hook_detector::tests::is_relative_script_detects_paths ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_multiple_output_styles ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_name_fallback_to_filename ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_no_output_styles_dir ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_output_style_md_file ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_output_style_strips_quoted_description ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_skips_directories ... ok [INFO] [stdout] test migrate::output_style_detector::tests::detect_skips_non_md_files ... ok [INFO] [stdout] test migrate::output_style_detector::tests::frontmatter_with_no_name_uses_description_only ... ok [INFO] [stdout] test migrate::registrar::tests::register_appends_alongside_existing ... ok [INFO] [stdout] test migrate::registrar::tests::register_appends_to_empty_plugins_array ... ok [INFO] [stdout] test migrate::registrar::tests::register_mixed_descriptions ... ok [INFO] [stdout] test migrate::registrar::tests::register_preserves_marketplace_metadata ... ok [INFO] [stdout] test migrate::registrar::tests::register_skips_already_registered ... ok [INFO] [stdout] test migrate::registrar::tests::register_uses_entry_description ... ok [INFO] [stdout] test migrate::skill_common::tests::collect_files_flat_dir ... ok [INFO] [stdout] test migrate::skill_common::tests::collect_files_nested_dir ... ok [INFO] [stdout] test migrate::registrar::tests::register_uses_fallback_when_no_description ... ok [INFO] [stdout] test migrate::skill_common::tests::collect_files_skips_entries_not_under_base ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_multiple ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_no_match ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_non_script_path_ignored ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_terminated_by_closing_paren ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_terminated_by_double_quote ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_terminated_by_single_quote ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_with_skill_dir_prefix ... ok [INFO] [stdout] test migrate::skill_common::tests::extract_scripts_with_claude_prefix ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_disable_model_invocation ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_disable_model_invocation_false ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_empty_name ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_extracts_name_and_description ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_hooks_block_exits_on_non_indented_line ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_hooks_inline_value ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_no_closing ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_hooks_single_space_indent_falls_back_to_raw_line ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_unknown_key_ignored ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_with_hooks_tab_indent ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_multiple_skills ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_empty_skills_dir ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_extracts_frontmatter ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_no_skills_dir ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_nested_files ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_skips_non_dir_entries ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_with_hooks ... ok [INFO] [stdout] test migrate::skill_common::tests::parse_frontmatter_no_frontmatter ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_uses_dir_name_when_no_frontmatter_name ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_with_scripts ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_strips_quoted_description ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_with_skill_md ... ok [INFO] [stdout] test migrate::skill_detector::tests::detect_skill_without_skill_md ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_backtick_terminated ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_end_of_line ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_multiple ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_non_script_path ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_none ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_paren_terminated ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_single_quote_terminated ... ok [INFO] [stdout] test migrate::skill_detector::tests::extract_scripts_with_quotes ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_disable_model_invocation_false ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_empty_name ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_hooks_with_inline_value ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_hooks_with_tab_indent ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_no_closing ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_no_frontmatter ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_unknown_key ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_with_disable_model_invocation ... ok [INFO] [stdout] test migrate::skill_detector::tests::parse_frontmatter_with_hooks_multiline ... ok [INFO] [stdout] test migrate::tests::has_migrated_artifacts_empty ... ok [INFO] [stdout] test migrate::tests::has_migrated_artifacts_only_skipped ... ok [INFO] [stdout] test migrate::tests::has_migrated_artifacts_with_plugin_created ... ok [INFO] [stdout] test migrate::tests::migrate_dry_run_writes_report ... ok [INFO] [stdout] test migrate::tests::migrate_empty_source ... ok [INFO] [stdout] test migrate::tests::migrate_errors_if_no_ai_dir ... ok [INFO] [stdout] test migrate::tests::migrate_errors_if_no_source_dir ... ok [INFO] [stdout] test migrate::tests::migrate_github_source_accepted ... ok [INFO] [stdout] test migrate::tests::migrate_unknown_source_runs_all_detectors ... ok [INFO] [stdout] test migrate::tests::migrated_sources_empty ... ok [INFO] [stdout] test migrate::tests::migrate_full_flow ... ok [INFO] [stdout] test migrate::tests::migrated_sources_filters_correctly ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_double ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_empty ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_empty_quoted ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_lone_quote_char_unchanged ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_mismatched ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_no_quotes ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_single ... ok [INFO] [stdout] test migrate::tests::strip_yaml_quotes_single_char ... ok [INFO] [stdout] test registry::config::tests::extract_scope_scoped ... ok [INFO] [stdout] test registry::config::tests::extract_scope_unscoped ... ok [INFO] [stdout] test registry::config::tests::get_index_url ... ok [INFO] [stdout] test migrate::emitter::tests::rewrite_hook_command_paths_leaves_bare_commands ... ok [INFO] [stdout] test registry::config::tests::index_config_download_url ... ok [INFO] [stdout] test registry::config::tests::index_config_parse ... ok [INFO] [stdout] test registry::config::tests::parse_registry_config_toml ... ok [INFO] [stdout] test registry::config::tests::registry_for_scoped_package ... ok [INFO] [stdout] test registry::config::tests::registry_for_unknown_scope_uses_default ... ok [INFO] [stdout] test registry::git::tests::checksum_empty_data ... ok [INFO] [stdout] test registry::git::tests::checksum_matches ... ok [INFO] [stdout] test registry::git::tests::find_version_found ... ok [INFO] [stdout] test registry::git::tests::find_version_not_found ... ok [INFO] [stdout] test registry::git::tests::checksum_mismatch ... ok [INFO] [stdout] test registry::config::tests::empty_config_defaults ... ok [INFO] [stdout] test registry::config::tests::extract_scope_no_slash ... ok [INFO] [stdout] test registry::config::tests::registry_for_unscoped_package ... ok [INFO] [stdout] test registry::git::tests::checksum_with_sha512_prefix_matches ... ok [INFO] [stdout] test registry::git::tests::http_get_connection_refused_returns_err ... ok [INFO] [stdout] test registry::git::tests::checksum_with_sha512_prefix_mismatch ... ok [INFO] [stdout] test registry::git::tests::download_url_from_config ... ok [INFO] [stdout] test registry::git::tests::get_metadata_from_local_index ... ok [INFO] [stdout] test registry::git::tests::get_metadata_scoped_package ... ok [INFO] [stdout] test registry::git::tests::get_metadata_package_not_found ... ok [INFO] [stdout] test registry::index::tests::index_path_empty_errors ... ok [INFO] [stdout] test registry::index::tests::index_path_scoped_no_name_errors ... ok [INFO] [stdout] test registry::git::tests::new_creates_cache_dir ... ok [INFO] [stdout] test registry::index::tests::index_path_exactly_four_char ... ok [INFO] [stdout] test registry::index::tests::index_path_four_plus_char ... ok [INFO] [stdout] test registry::index::tests::index_path_scoped_short_scope ... ok [INFO] [stdout] test registry::index::tests::index_path_three_char ... ok [INFO] [stdout] test registry::git::tests::load_config_invalid_json ... ok [INFO] [stdout] test registry::index::tests::index_path_two_char ... ok [INFO] [stdout] test registry::git::tests::load_config_valid ... ok [INFO] [stdout] test registry::git::tests::load_config_missing ... ok [INFO] [stdout] test registry::index::tests::index_path_scoped ... ok [INFO] [stdout] test registry::index::tests::parse_index_file_blank_lines_skipped ... ok [INFO] [stdout] test registry::index::tests::parse_index_file_empty ... ok [INFO] [stdout] test registry::index::tests::parse_index_file_single_line ... ok [INFO] [stdout] test registry::index::tests::parse_index_file_multiple_lines ... ok [INFO] [stdout] test registry::tests::dep_entry_default_features_defaults_true ... ok [INFO] [stdout] test registry::index::tests::parse_index_file_invalid_json_errors ... ok [INFO] [stdout] test registry::tests::version_entry_deserialize_json ... ok [INFO] [stdout] test registry::tests::version_entry_deserialize_minimal ... ok [INFO] [stdout] test registry::tests::package_metadata_construction ... ok [INFO] [stdout] test registry::tests::version_entry_round_trip_json ... ok [INFO] [stdout] test registry::index::tests::read_package_index_not_found ... ok [INFO] [stdout] test registry::tests::version_entry_json_lines_parsing ... ok [INFO] [stdout] test registry::git::tests::http_get_404_returns_err ... ok [INFO] [stdout] test registry::index::tests::index_path_one_char ... ok [INFO] [stdout] test registry::index::tests::index_path_scoped_no_scope_errors ... ok [INFO] [stdout] test registry::index::tests::read_package_index_from_disk ... ok [INFO] [stdout] test resolver::error::tests::build_chain_deep ... ok [INFO] [stdout] test resolver::error::tests::build_chain_simple ... ok [INFO] [stdout] test resolver::error::tests::build_chain_missing_source_breaks ... ok [INFO] [stdout] test resolver::error::tests::conflict_error_only_new_chain ... ok [INFO] [stdout] test resolver::error::tests::conflict_error_basic_format ... ok [INFO] [stdout] test resolver::error::tests::conflict_error_only_existing_chain ... ok [INFO] [stdout] test resolver::error::tests::registry_error_format ... ok [INFO] [stdout] test resolver::error::tests::version_error_format ... ok [INFO] [stdout] test resolver::overrides::tests::apply_global_no_match ... ok [INFO] [stdout] test resolver::overrides::tests::apply_empty ... ok [INFO] [stdout] test resolver::overrides::tests::apply_global_override ... ok [INFO] [stdout] test resolver::overrides::tests::apply_global_updates_multiple_matching_deps ... ok [INFO] [stdout] test resolver::overrides::tests::apply_replacement_no_match ... ok [INFO] [stdout] test resolver::overrides::tests::apply_replacement_override ... ok [INFO] [stdout] test resolver::overrides::tests::apply_scoped_no_match_wrong_child ... ok [INFO] [stdout] test resolver::error::tests::conflict_error_with_chains ... ok [INFO] [stdout] test resolver::overrides::tests::apply_scoped_no_match_wrong_parent ... ok [INFO] [stdout] test resolver::error::tests::build_chain_lockfile_source_breaks_early ... ok [INFO] [stdout] test resolver::overrides::tests::apply_scoped_override ... ok [INFO] [stdout] test resolver::error::tests::format_chain_single_element ... ok [INFO] [stdout] test resolver::overrides::tests::apply_with_empty_deps ... ok [INFO] [stdout] test resolver::overrides::tests::parse_empty_overrides ... ok [INFO] [stdout] test resolver::tests::backtrack_exhausts_all_candidates ... ok [INFO] [stdout] test resolver::overrides::tests::parse_multiple_overrides ... ok [INFO] [stdout] test resolver::overrides::tests::parse_scoped_override ... ok [INFO] [stdout] test resolver::overrides::tests::parse_scoped_with_replacement_value ... ok [INFO] [stdout] test resolver::overrides::tests::parse_global_override ... ok [INFO] [stdout] test resolver::overrides::tests::parse_replacement_override ... ok [INFO] [stdout] test resolver::tests::activate_feature_recursive_with_dep_prefix_skipped ... ok [INFO] [stdout] test resolver::tests::collect_dep_features ... ok [INFO] [stdout] test resolver::tests::collect_feature_deps_active_feature_not_in_defs ... ok [INFO] [stdout] test resolver::tests::backtrack_on_conflict ... ok [INFO] [stdout] test resolver::overrides::tests::replacement_value_without_at_is_global ... ok [INFO] [stdout] test resolver::tests::cross_major_deps_coexist ... ok [INFO] [stdout] test resolver::tests::compute_active_features_no_default_feature_defined ... ok [INFO] [stdout] test resolver::tests::feature_computation_basics ... ok [INFO] [stdout] test resolver::tests::cross_major_framework_coexistence ... ok [INFO] [stdout] test resolver::error::tests::no_match_error_format ... ok [INFO] [stdout] test resolver::tests::activate_feature_recursive_already_active_no_infinite_loop ... ok [INFO] [stdout] test registry::git::tests::http_get_success_returns_body ... ok [INFO] [stdout] test resolver::tests::optional_dep_not_included_without_feature ... ok [INFO] [stdout] test resolver::tests::enable_specific_feature ... ok [INFO] [stdout] test resolver::tests::report_unsolvable_conflicts ... ok [INFO] [stdout] test resolver::tests::default_features_enabled ... ok [INFO] [stdout] test resolver::tests::resolve_empty_deps ... ok [INFO] [stdout] test resolver::tests::resolve_conflict_error ... ok [INFO] [stdout] test resolver::tests::optional_dep_included_with_feature ... ok [INFO] [stdout] test resolver::tests::resolve_no_matching_version ... ok [INFO] [stdout] test resolver::tests::opt_out_of_default_features ... ok [INFO] [stdout] test resolver::tests::resolve_diamond_dependency ... ok [INFO] [stdout] test resolver::tests::global_override_forces_version ... ok [INFO] [stdout] test resolver::tests::resolve_package_not_found ... ok [INFO] [stdout] test resolver::tests::prefer_highest_compatible_version ... ok [INFO] [stdout] test resolver::tests::replacement_override_swaps_package ... ok [INFO] [stdout] test resolver::tests::resolve_respects_lockfile_pins ... ok [INFO] [stdout] test resolver::tests::resolve_picks_highest_matching_version ... ok [INFO] [stdout] test resolver::tests::resolve_single_dep ... ok [INFO] [stdout] test resolver::tests::resolve_with_lockfile_pins_unified ... ok [INFO] [stdout] test resolver::tests::resolve_skips_yanked_versions ... ok [INFO] [stdout] test resolver::tests::resolve_transitive_deps ... ok [INFO] [stdout] test resolver::tests::same_major_deps_unified_to_one_version ... ok [INFO] [stdout] test resolver::tests::scoped_override_only_affects_parent ... ok [INFO] [stdout] test resolver::tests::three_level_cross_major ... ok [INFO] [stdout] test resolver::tests::resolve_simple_dependency_tree ... ok [INFO] [stdout] test store::hash::tests::sha512_different_inputs_produce_different_hashes ... ok [INFO] [stdout] test resolver::tests::resolve_unifies_same_major_from_two_parents ... ok [INFO] [stdout] test resolver::tests::select_sorted_candidates_excludes_yanked ... ok [INFO] [stdout] test resolver::tests::transitive_conflict_same_major_reported ... ok [INFO] [stdout] test resolver::tests::resolve_with_unknown_feature ... ok [INFO] [stdout] test store::hash::tests::validate_empty_string ... ok [INFO] [stdout] test store::hash::tests::validate_non_hex_rejected ... ok [INFO] [stdout] test store::hash::tests::sha512_hello_world ... ok [INFO] [stdout] test store::hash::tests::sha512_empty_input ... ok [INFO] [stdout] test store::hash::tests::validate_too_long ... ok [INFO] [stdout] test store::hash::tests::validate_too_short ... ok [INFO] [stdout] test store::hash::tests::sha512_binary_data ... ok [INFO] [stdout] test store::layout::tests::hash_prefix_dir_rejects_too_short ... ok [INFO] [stdout] test store::hash::tests::validate_valid ... ok [INFO] [stdout] test store::hash::tests::validate_uppercase_rejected ... ok [INFO] [stdout] test store::hash::tests::sha512_deterministic ... ok [INFO] [stdout] test resolver::tests::unify_shared_deps_to_single_version ... ok [INFO] [stdout] test store::layout::tests::hash_to_path_rejects_short_hash ... ok [INFO] [stdout] test store::layout::tests::hash_prefix_dir_works ... ok [INFO] [stdout] test store::layout::tests::hash_to_path_rejects_uppercase ... ok [INFO] [stdout] test store::layout::tests::hash_to_path_rejects_non_hex ... ok [INFO] [stdout] test store::layout::tests::hash_to_path_splits_correctly ... ok [INFO] [stdout] test store::tests::empty_content_can_be_stored ... ok [INFO] [stdout] test store::tests::different_content_produces_different_entries ... ok [INFO] [stdout] test store::tests::get_path_returns_some_for_existing ... ok [INFO] [stdout] test store::tests::has_content_returns_false_for_missing ... ok [INFO] [stdout] test store::tests::get_path_returns_none_for_missing ... ok [INFO] [stdout] test store::tests::is_cross_device_false_for_regular_error ... ok [INFO] [stdout] test store::tests::get_path_errors_on_invalid_hash ... ok [INFO] [stdout] test store::tests::has_content_returns_false_for_invalid_hash ... ok [INFO] [stdout] test store::tests::link_to_creates_hard_link ... ok [INFO] [stdout] test store::tests::link_to_errors_on_existing_target_same_dir ... ok [INFO] [stdout] test store::tests::link_to_creates_parent_directories ... ok [INFO] [stdout] test store::tests::link_to_errors_on_missing_hash ... ok [INFO] [stdout] test store::tests::link_to_errors_on_invalid_hash ... ok [INFO] [stdout] test store::tests::lock_creates_store_directory ... ok [INFO] [stdout] test store::tests::link_to_with_no_parent_target ... ok [INFO] [stdout] test store::tests::link_to_target_with_no_parent_still_works ... ok [INFO] [stdout] test store::tests::lock_released_on_drop ... ok [INFO] [stdout] test store::tests::store_and_retrieve_file ... ok [INFO] [stdout] test version::tests::compound_range_matches ... ok [INFO] [stdout] test version::tests::exact_matches ... ok [INFO] [stdout] test version::tests::parse_compound_range ... ok [INFO] [stdout] test version::tests::parse_tilde_req ... ok [INFO] [stdout] test store::tests::lock_creates_lock_file ... ok [INFO] [stdout] test store::tests::store_creates_prefix_directories ... ok [INFO] [stdout] test store::tests::store_package_skips_symlinks ... ok [INFO] [stdout] test store::tests::store_file_is_idempotent ... ok [INFO] [stdout] test tests::version_is_not_empty ... ok [INFO] [stdout] test version::tests::caret_matches ... ok [INFO] [stdout] test version::tests::parse_caret_req ... ok [INFO] [stdout] test version::tests::parse_exact_req ... ok [INFO] [stdout] test version::tests::parse_prerelease_versions ... ok [INFO] [stdout] test version::tests::parse_valid_versions ... ok [INFO] [stdout] test version::tests::parse_wildcard_req ... ok [INFO] [stdout] test version::tests::prerelease_ordering ... ok [INFO] [stdout] test version::tests::reject_invalid_reqs ... ok [INFO] [stdout] test version::tests::reject_invalid_versions ... ok [INFO] [stdout] test version::tests::select_best_excludes_prerelease ... ok [INFO] [stdout] test version::tests::select_best_picks_highest_matching ... ok [INFO] [stdout] test version::tests::select_best_pre_1_0_caret ... ok [INFO] [stdout] test store::tests::store_package_walks_directory ... ok [INFO] [stdout] test version::tests::stable_version_is_not_prerelease ... ok [INFO] [stdout] test version::tests::select_best_returns_none_when_no_match ... ok [INFO] [stdout] test version::tests::tilde_matches ... ok [INFO] [stdout] test store::tests::store_package_empty_directory ... ok [INFO] [stdout] test store::tests::store_package_deduplicates_identical_files ... ok [INFO] [stdout] test store::tests::store_package_with_nested_dirs ... ok [INFO] [stdout] test version::tests::version_ordering ... ok [INFO] [stdout] test version::tests::wildcard_matches_everything ... ok [INFO] [stdout] test workspace::tests::discover_members_empty_when_no_matches ... ok [INFO] [stdout] test workspace::tests::discover_members_skips_no_manifest ... ok [INFO] [stdout] test workspace::tests::discover_members_error_duplicate_name ... ok [INFO] [stdout] test workspace::tests::discover_members_error_invalid_manifest_content ... ok [INFO] [stdout] test workspace::tests::find_root_from_member ... ok [INFO] [stdout] test workspace::tests::discover_members_error_manifest_is_directory ... ok [INFO] [stdout] test workspace::tests::discover_members_error_no_package_section ... ok [INFO] [stdout] test workspace::tests::find_root_from_root_itself ... ok [INFO] [stdout] test workspace::tests::discover_members_skips_non_directory_match ... ok [INFO] [stdout] test version::tests::pre_1_0_caret_treats_minor_as_breaking ... ok [INFO] [stdout] test workspace_init::tests::agent_template_has_frontmatter ... ok [INFO] [stdout] test workspace::tests::find_root_skips_invalid_toml ... ok [INFO] [stdout] test workspace::tests::discover_members_single_glob ... ok [INFO] [stdout] test workspace::tests::find_root_returns_none_for_non_workspace ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_skip_if_fully_configured ... ok [INFO] [stdout] test workspace::tests::discover_members_multiple_patterns ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_no_starter_already_configured ... ok [INFO] [stdout] test workspace_init::tests::hook_template_is_valid_json ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_merge_existing ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_handles_non_object_marketplace_value ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_created_fresh ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_creates_marketplace_json ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_adds_enabled_plugins_when_marketplace_exists ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_handles_non_object_enabled_plugins ... ok [INFO] [stdout] test workspace_init::tests::gitignore_has_managed_markers ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_no_starter ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_rejects_invalid_json ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_created_fresh_no_starter ... ok [INFO] [stdout] test workspace_init::tests::init_workspace_fails_on_create_dir_error ... ok [INFO] [stdout] test workspace_init::tests::marketplace_json_no_starter_has_empty_plugins ... ok [INFO] [stdout] test workspace_init::tests::init_workspace_fails_on_write_file_error ... ok [INFO] [stdout] test workspace_init::tests::marketplace_json_with_starter_is_valid ... ok [INFO] [stdout] test workspace_init::tests::plugin_json_is_valid ... ok [INFO] [stdout] test workspace_init::tests::scaffold_marketplace_fails_on_create_dir_error ... ok [INFO] [stdout] test workspace_init::tests::scaffold_marketplace_fails_on_write_file_error ... ok [INFO] [stdout] test workspace_init::tests::scaffold_script_is_nonempty ... ok [INFO] [stdout] test workspace_init::tests::scaffold_script_marketplace_name_matches_generator ... ok [INFO] [stdout] test workspace_init::tests::scaffold_script_enables_in_settings ... ok [INFO] [stdout] test workspace_init::tests::scaffold_script_registers_in_marketplace ... ok [INFO] [stdout] test workspace_init::tests::init_no_starter_creates_marketplace_json_with_empty_plugins ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_creates_tree ... ok [INFO] [stdout] test workspace_init::tests::skill_template_has_frontmatter ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_rejects_non_object_root ... ok [INFO] [stdout] test workspace_init::tests::init_with_no_adaptors ... ok [INFO] [stdout] test workspace_init::tests::init_both_creates_everything ... ok [INFO] [stdout] test workspace_init::tests::workspace_manifest_has_correct_members ... ok [INFO] [stdout] test workspace_init::tests::starter_manifest_round_trips ... ok [INFO] [stdout] test workspace_init::tests::init_no_starter_still_configures_tools ... ok [INFO] [stdout] test workspace_init::tests::gitignore_no_starter_omits_tool_usage_log ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_rejects_existing ... ok [INFO] [stdout] test workspace_init::tests::init_workspace_creates_manifest ... ok [INFO] [stdout] test workspace_init::adaptors::claude::tests::claude_settings_no_starter_merge_adds_marketplace_only ... ok [INFO] [stdout] test workspace_init::tests::init_workspace_rejects_existing ... ok [INFO] [stdout] test workspace_init::tests::workspace_manifest_round_trips ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_no_manifest_skips_aipm_toml ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_with_manifest_creates_aipm_toml ... ok [INFO] [stdout] test workspace_init::tests::init_marketplace_with_preconfigured_claude_settings ... ok [INFO] [stdout] test workspace_init::tests::scaffold_script_snapshot ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 844 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s [INFO] [stdout] [INFO] [stderr] Running tests/bdd.rs (/opt/rustwide/target/debug/deps/bdd-30a0c583aa8a1e7e) [INFO] [stdout] Failed to parse: Failed to parse feature: Could not read path: /opt/rustwide/workdir/../../tests/features/manifest [INFO] [stdout] [Summary] [INFO] [stdout] 0 features [INFO] [stdout] 0 scenarios [INFO] [stdout] 0 steps [INFO] [stdout] 1 parsing error [INFO] [stderr] Doc-tests libaipm [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0ab2fe39a13fec3d7801d8e04719c90b33df0577ff28394990c7779e0c036ce1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ab2fe39a13fec3d7801d8e04719c90b33df0577ff28394990c7779e0c036ce1", kill_on_drop: false }` [INFO] [stdout] 0ab2fe39a13fec3d7801d8e04719c90b33df0577ff28394990c7779e0c036ce1