[INFO] fetching crate upskill 0.6.3...
[INFO] testing upskill-0.6.3 against 1.98.0-beta.1 for beta-1.98-1
[INFO] extracting crate upskill 0.6.3 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate upskill 0.6.3
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate upskill 0.6.3
[INFO] tweaked toml for crates.io crate upskill 0.6.3 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate upskill 0.6.3 on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate upskill 0.6.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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9
[INFO] running `Command { std: "docker" "start" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", 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" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", 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" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling pulldown-cmark v0.11.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling pulldown-cmark-escape v0.11.0
[INFO] [stderr]    Compiling rustc-hash v2.1.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling hybrid-array v0.4.9
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling digest v0.11.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling dprint-core-macros v0.1.0
[INFO] [stderr]    Compiling dprint-core v0.67.4
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling dprint-plugin-markdown v0.21.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling upskill v0.6.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.38s
[INFO] running `Command { std: "docker" "inspect" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", 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" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling roff v1.1.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling clap_mangen v0.2.33
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling dprint-plugin-markdown v0.21.1
[INFO] [stderr]    Compiling upskill v0.6.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 30.90s
[INFO] running `Command { std: "docker" "inspect" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", 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" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.31s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/upskill-cf0e65236f52a235)
[INFO] [stdout] 
[INFO] [stdout] running 230 tests
[INFO] [stdout] test ancillary::tests::opencode_no_rules_is_no_op ... ok
[INFO] [stdout] test ancillary::tests::preserves_existing_claude_md_verbatim ... ok
[INFO] [stdout] test ancillary::tests::creates_claude_md_when_absent ... ok
[INFO] [stdout] test ancillary::tests::vscode_no_rules_is_no_op ... ok
[INFO] [stdout] test ancillary::tests::opencode_preserves_existing_entry ... ok
[INFO] [stdout] test ancillary::tests::vscode_preserves_when_path_already_true ... ok
[INFO] [stdout] test ancillary::tests::vscode_preserves_when_path_explicitly_false ... ok
[INFO] [stdout] test auth::tests::gitlab_token_accessor ... ok
[INFO] [stdout] test ancillary::tests::second_call_after_create_is_preserve ... ok
[INFO] [stdout] test ancillary::tests::vscode_creates_file_when_absent_and_has_rules ... ok
[INFO] [stdout] test ancillary::tests::opencode_creates_file_when_absent_and_has_rules ... ok
[INFO] [stdout] test ancillary::tests::vscode_appends_when_key_present_without_path ... ok
[INFO] [stdout] test auth::tests::token_accessor ... ok
[INFO] [stdout] test ancillary::tests::opencode_appends_when_instructions_present_without_entry ... ok
[INFO] [stdout] test ancillary::tests::vscode_adds_key_when_absent ... ok
[INFO] [stdout] test ancillary::tests::opencode_adds_instructions_when_field_absent ... ok
[INFO] [stdout] test auth::tests::github_token_env_is_used ... ok
[INFO] [stdout] test auth::tests::gitlab_token_takes_precedence ... ok
[INFO] [stdout] test auth::tests::gitlab_token_env_is_used ... ok
[INFO] [stdout] test auth::tests::whitespace_only_env_vars_are_ignored ... ok
[INFO] [stdout] test auth::tests::gh_token_env_is_used_as_fallback ... ok
[INFO] [stdout] test auth::tests::empty_env_vars_are_ignored ... ok
[INFO] [stdout] test auth::tests::github_token_takes_precedence ... ok
[INFO] [stdout] test auth::tests::gl_token_env_is_used_as_fallback ... ok
[INFO] [stdout] test ancillary::tests::opencode_errors_on_non_array_instructions ... ok
[INFO] [stdout] test ancillary::tests::opencode_errors_on_non_object_top_level ... ok
[INFO] [stdout] test ancillary::tests::vscode_errors_on_non_object_top_level ... ok
[INFO] [stdout] test fetch::tests::cleanup_removes_directory ... ok
[INFO] [stdout] test bundle::tests::resolve_errors_on_item_conflict ... ok
[INFO] [stdout] test bundle::tests::resolve_allows_same_name_in_different_kinds ... ok
[INFO] [stdout] test bundle::tests::resolve_errors_on_cycle ... ok
[INFO] [stdout] test ancillary::tests::vscode_errors_on_non_object_instructions_value ... ok
[INFO] [stdout] test bundle::tests::resolve_errors_on_missing_requirement ... ok
[INFO] [stdout] test bundle::tests::resolve_dedupe_path_diamond_does_not_error ... ok
[INFO] [stdout] test bundle::tests::resolve_walks_requires_in_dependency_order ... ok
[INFO] [stdout] test bundle::tests::resolve_unions_items_across_bundles ... ok
[INFO] [stdout] test fetch::tests::copy_skills_skips_dot_git ... ok
[INFO] [stdout] test fetch::tests::copy_skills_preserves_nested_dirs ... ok
[INFO] [stdout] test bundle::tests::resolve_single_bundle_with_no_requires ... ok
[INFO] [stdout] test fmt::tests::fmt_refuses_consumer_project ... ok
[INFO] [stdout] test generate::directives::tests::negative_strips_only_for_listed_client ... ok
[INFO] [stdout] test fmt::tests::canonicalise_preserves_body_byte_for_byte ... ok
[INFO] [stdout] test fmt::tests::fmt_skips_already_canonical_files ... ok
[INFO] [stdout] test generate::directives::tests::positive_kept_for_listed_client ... ok
[INFO] [stdout] test generate::directives::tests::positive_stripped_for_other_clients ... ok
[INFO] [stdout] test generate::directives::tests::nested_directive_errors ... ok
[INFO] [stdout] test fmt::tests::canonicalise_is_idempotent ... ok
[INFO] [stdout] test fmt::tests::canonicalise_reorders_keys ... ok
[INFO] [stdout] test generate::directives::tests::surrounding_blank_lines_collapsed_on_strip ... ok
[INFO] [stdout] test fmt::tests::fmt_handles_bundle ... ok
[INFO] [stdout] test fmt::tests::fmt_handles_rule_with_scope ... ok
[INFO] [stdout] test generate::directives::tests::unbalanced_close_without_open_errors ... ok
[INFO] [stdout] test generate::directives::tests::unbalanced_unclosed_errors ... ok
[INFO] [stdout] test generate::directives::tests::unknown_client_identifier_errors ... ok
[INFO] [stdout] test lint::tests::lint_clean_skill_yields_no_findings ... ok
[INFO] [stdout] test lint::tests::lint_detects_h1_in_body ... ok
[INFO] [stdout] test lint::tests::lint_detects_fence_without_language ... ok
[INFO] [stdout] test lint::tests::lint_item_directory_reports_findings ... ok
[INFO] [stdout] test lint::tests::lint_flags_colocated_entrypoint_with_mismatched_name ... ok
[INFO] [stdout] test lint::tests::lint_flags_bundle_filename_mismatch ... ok
[INFO] [stdout] test lint::tests::lint_refuses_consumer_project ... ok
[INFO] [stdout] test lint::tests::lint_item_directory_with_multiple_entrypoints ... ok
[INFO] [stdout] test lint::tests::lint_strict_promotes_warnings_to_errors ... ok
[INFO] [stdout] test lint::tests::lint_flags_name_directory_mismatch ... ok
[INFO] [stdout] test lint::tests::lint_flags_unbalanced_directive ... ok
[INFO] [stdout] test lint::tests::lint_item_directory_discovers_entrypoint ... ok
[INFO] [stdout] test lint::tests::lint_skips_h1_inside_fence ... ok
[INFO] [stdout] test lockfile::tests::items_are_sorted_for_deterministic_output ... ok
[INFO] [stdout] test lockfile::tests::new_lockfile_has_current_schema ... ok
[INFO] [stdout] test lockfile::tests::load_missing_file_returns_empty ... ok
[INFO] [stdout] test lockfile::tests::items_from_report_dedupes_per_kind_name ... ok
[INFO] [stdout] test lockfile::tests::load_rejects_newer_schema ... ok
[INFO] [stdout] test lockfile::tests::load_rejects_unrecognised_shape ... ok
[INFO] [stdout] test lockfile::tests::remove_filters_by_kind_and_name ... ok
[INFO] [stdout] test lockfile::tests::remove_plugins_by_name_removes_all_clients ... ok
[INFO] [stdout] test lockfile::tests::existing_lockfile_without_plugins_field_loads_fine ... ok
[INFO] [stdout] test lockfile::tests::upsert_keeps_distinct_kinds_separate ... ok
[INFO] [stdout] test lockfile::tests::upsert_plugin_keeps_different_clients_separate ... ok
[INFO] [stdout] test lockfile::tests::upsert_plugin_adds_new_entry ... ok
[INFO] [stdout] test lockfile::tests::plugins_roundtrip_through_save_and_load ... ok
[INFO] [stdout] test lockfile::tests::save_and_load_roundtrip ... ok
[INFO] [stdout] test lockfile::tests::upsert_plugin_replaces_by_name_and_client ... ok
[INFO] [stdout] test lockfile::tests::upsert_replaces_existing_item_with_same_kind_and_name ... ok
[INFO] [stdout] test lockfile::tests::plugin_without_status_field_defaults_to_installed_on_load ... ok
[INFO] [stdout] test lockfile::tests::skipped_plugin_roundtrips_through_save_and_load ... ok
[INFO] [stdout] test parse::bundle::tests::load_accepts_bundle_without_plugins ... ok
[INFO] [stdout] test parse::bundle::tests::discover_empty_when_root_missing_or_no_bundles ... ok
[INFO] [stdout] test parse::bundle::tests::load_accepts_empty_items_when_only_requires ... ok
[INFO] [stdout] test generate::format::tests::empty_input_clean ... ok
[INFO] [stdout] test generate::format::tests::wrap_width_config_takes_effect ... ok
[INFO] [stdout] test parse::bundle::tests::discover_errors_when_schema_present_but_otherwise_malformed ... ok
[INFO] [stdout] test parse::bundle::tests::plugins_round_trips_through_serialize ... ok
[INFO] [stdout] test parse::bundle::tests::discover_finds_bundles_recursively_anywhere_in_tree ... ok
[INFO] [stdout] test parse::bundle::tests::load_parses_plugins_with_all_clients ... ok
[INFO] [stdout] test parse::bundle::tests::load_parses_plugins_with_single_client ... ok
[INFO] [stdout] test parse::bundle::tests::load_parses_requires_with_and_without_version ... ok
[INFO] [stdout] test parse::bundle::tests::load_rejects_filename_stem_mismatch ... ok
[INFO] [stdout] test parse::frontmatter::tests::metadata_unknown_keys_preserved ... ok
[INFO] [stdout] test generate::format::tests::already_canonical_idempotent ... ok
[INFO] [stdout] test parse::bundle::tests::load_rejects_string_form_requires ... ok
[INFO] [stdout] test parse::bundle::tests::discover_skips_yaml_files_without_schema_field ... ok
[INFO] [stdout] test parse::frontmatter::tests::split_empty_frontmatter ... ok
[INFO] [stdout] test parse::bundle::tests::load_round_trips_format_spec_example ... ok
[INFO] [stdout] test parse::frontmatter::tests::split_strips_bom ... ok
[INFO] [stdout] test parse::frontmatter::tests::split_no_fence_returns_none ... ok
[INFO] [stdout] test parse::frontmatter::tests::skill_appendix_a3_round_trip ... ok
[INFO] [stdout] test pipeline::tests::audience_none_targets_all_clients ... ok
[INFO] [stdout] test pipeline::tests::audience_subset_filters_other_clients ... ok
[INFO] [stdout] test pipeline::tests::doctor_report_not_clean_with_any_drift ... ok
[INFO] [stdout] test parse::frontmatter::tests::rule_appendix_a2_round_trip ... ok
[INFO] [stdout] test parse::frontmatter::tests::parse_rejects_schema_2 ... ok
[INFO] [stdout] test pipeline::tests::find_bundle_by_name_finds_nested_bundle_file ... ok
[INFO] [stdout] test pipeline::tests::doctor_report_is_clean_when_all_buckets_empty ... ok
[INFO] [stdout] test pipeline::tests::find_bundle_by_name_skips_hidden_dirs ... ok
[INFO] [stdout] test pipeline::tests::find_bundle_by_name_returns_none_when_not_found ... ok
[INFO] [stdout] test pipeline::tests::github_clone_url_is_https_dot_git ... ok
[INFO] [stdout] test pipeline::tests::gitlab_clone_url_uses_repo_host ... ok
[INFO] [stdout] test parse::frontmatter::tests::parse_rejects_missing_frontmatter ... ok
[INFO] [stdout] test parse::frontmatter::tests::split_basic ... ok
[INFO] [stdout] test pipeline::tests::inject_basic_auth_github_oauth_user ... ok
[INFO] [stdout] test pipeline::tests::inject_basic_auth_gitlab_oauth_user ... ok
[INFO] [stdout] test pipeline::tests::inject_basic_auth_percent_encodes_special_chars ... ok
[INFO] [stdout] test pipeline::tests::inject_basic_auth_rejects_empty_token ... ok
[INFO] [stdout] test pipeline::tests::inject_basic_auth_rejects_non_https ... ok
[INFO] [stdout] test pipeline::tests::has_matching_items_false_when_no_item_exists ... ok
[INFO] [stdout] test pipeline::tests::has_ssot_layout_returns_false_for_empty_dir ... ok
[INFO] [stdout] test pipeline::tests::has_ssot_layout_detects_direct_children ... ok
[INFO] [stdout] test pipeline::tests::has_ssot_layout_detects_grandchild_entrypoints ... ok
[INFO] [stdout] test pipeline::tests::has_matching_items_true_when_skill_exists ... ok
[INFO] [stdout] test pipeline::tests::has_matching_items_true_for_rules_and_agents ... ok
[INFO] [stdout] test pipeline::tests::iter_item_dirs_still_finds_direct_children ... ok
[INFO] [stdout] test pipeline::tests::output_path_dispatches_to_per_kind_helper ... ok
[INFO] [stdout] test pipeline::tests::output_paths_match_spec ... ok
[INFO] [stdout] test pipeline::tests::find_registry_root_returns_parent_for_sibling_layout ... ok
[INFO] [stdout] test pipeline::tests::iter_item_dirs_finds_items_in_category_subdirs ... ok
[INFO] [stdout] test pipeline::tests::parse_kind_round_trips_lockfile_strings ... ok
[INFO] [stdout] test pipeline::tests::parse_kind_rejects_unknown_string ... ok
[INFO] [stdout] test plugin::tests::check_output_for_exact_line_case_insensitive ... ok
[INFO] [stdout] test plugin::tests::check_output_for_exact_line_finds_matching_extension ... ok
[INFO] [stdout] test plugin::tests::check_output_for_exact_line_returns_not_installed_when_absent ... ok
[INFO] [stdout] test plugin::tests::check_output_for_substring_cli_not_found ... ok
[INFO] [stdout] test plugin::tests::check_output_query_failed_maps_correctly ... ok
[INFO] [stdout] test pipeline::tests::percent_encode_userinfo_passes_unreserved_unchanged ... ok
[INFO] [stdout] test pipeline::tests::percent_encode_userinfo_escapes_userinfo_separators ... ok
[INFO] [stdout] test plugin::tests::check_output_for_exact_line_cli_not_found ... ok
[INFO] [stdout] test plugin::tests::check_vscode_extension_installed_returns_cli_not_found_when_no_binary ... ok
[INFO] [stdout] test plugin::tests::check_output_for_substring_returns_not_installed_when_absent ... ok
[INFO] [stdout] test plugin::tests::check_output_for_substring_finds_plugin_name ... ok
[INFO] [stdout] test plugin::tests::plugin_check_result_predicates ... ok
[INFO] [stdout] test plugin::tests::plugin_scope_as_claude_flag ... ok
[INFO] [stdout] test plugin::tests::outcome_is_cli_not_found_predicate ... ok
[INFO] [stdout] test plugin::tests::outcome_is_success_predicate ... ok
[INFO] [stdout] test plugin::tests::is_cli_available_returns_false_for_nonexistent_binary ... ok
[INFO] [stdout] test plugin::tests::install_copilot_returns_cli_not_found_when_binary_missing ... ok
[INFO] [stdout] test plugin::tests::install_claude_returns_cli_not_found_when_binary_missing ... ok
[INFO] [stdout] test scaffold::tests::parse_kind_round_trips_strings ... ok
[INFO] [stdout] test plugin::tests::install_vscode_returns_cli_not_found_when_binary_missing ... ok
[INFO] [stdout] test plugin::tests::install_opencode_returns_cli_not_found_when_binary_missing ... ok
[INFO] [stdout] test plugin::tests::is_cli_available_returns_true_for_known_binary ... ok
[INFO] [stdout] test scaffold::tests::scaffold_refuses_existing_entrypoint ... ok
[INFO] [stdout] test scaffold::tests::scaffold_refuses_consumer_project ... ok
[INFO] [stdout] test scaffold::tests::scaffold_refuses_when_dir_exists_without_entrypoint ... ok
[INFO] [stdout] test scaffold::tests::validate_name_accepts_canonical_forms ... ok
[INFO] [stdout] test scaffold::tests::scaffold_colocates_when_existing_entrypoint_shares_name ... ok
[INFO] [stdout] test scaffold::tests::validate_name_rejects_too_long ... ok
[INFO] [stdout] test scaffold::tests::scaffold_refuses_coloc_when_existing_name_mismatches ... ok
[INFO] [stdout] test scaffold::tests::validate_name_rejects_invalid_forms ... ok
[INFO] [stdout] test scaffold::tests::scaffold_agent_emits_subagent_sonnet_defaults ... ok
[INFO] [stdout] test plugin::tests::run_command_returns_failed_on_nonzero_exit ... ok
[INFO] [stdout] test plugin::tests::run_command_returns_success_on_zero_exit ... ok
[INFO] [stdout] test plugin::tests::uninstall_copilot_returns_cli_not_found_when_binary_missing ... ok
[INFO] [stdout] test scaffold::tests::scaffold_skill_writes_canonical_skill_md ... ok
[INFO] [stdout] test source::tests::home_dir_falls_back_to_userprofile ... ok
[INFO] [stdout] test search::tests::build_agent_succeeds_with_no_proxy ... ok
[INFO] [stdout] test source::tests::label_rejects_bare_string ... ok
[INFO] [stdout] test source::tests::label_rejects_gitlab_plus_without_host ... ok
[INFO] [stdout] test source::tests::label_roundtrip_github_full ... ok
[INFO] [stdout] test source::tests::label_roundtrip_github_minimal ... ok
[INFO] [stdout] test source::tests::label_roundtrip_gitlab_dot_com ... ok
[INFO] [stdout] test search::tests::build_agent_succeeds_with_valid_proxy ... ok
[INFO] [stdout] test search::tests::proxy_from_env_falls_back_to_lowercase ... ok
[INFO] [stdout] test search::tests::proxy_from_env_ignores_empty_value ... ok
[INFO] [stdout] test search::tests::proxy_from_env_reads_https_proxy ... ok
[INFO] [stdout] test source::tests::parse_github_source_with_subfolder ... ok
[INFO] [stdout] test source::tests::parse_github_source_without_subfolder ... ok
[INFO] [stdout] test source::tests::parse_github_url ... ok
[INFO] [stdout] test source::tests::parse_gitlab_prefix ... ok
[INFO] [stdout] test source::tests::parse_gitlab_prefix_with_ref ... ok
[INFO] [stdout] test source::tests::parse_gitlab_prefix_with_subfolder ... ok
[INFO] [stdout] test source::tests::parse_gitlab_url ... ok
[INFO] [stdout] test source::tests::parse_local_path_absolute ... ok
[INFO] [stdout] test source::tests::parse_local_path_dot_dot_slash ... ok
[INFO] [stdout] test source::tests::parse_local_path_tilde_alone_expands_to_home ... ok
[INFO] [stdout] test source::tests::parse_local_path_tilde_expands_home ... ok
[INFO] [stdout] test source::tests::parse_local_path_windows_drive_letter ... ok
[INFO] [stdout] test source::tests::parse_ref_commit_sha ... ok
[INFO] [stdout] test source::tests::parse_ref_tag ... ok
[INFO] [stdout] test source::tests::parse_ref_with_subfolder ... ok
[INFO] [stdout] test source::tests::parse_selfhosted_gitlab_url ... ok
[INFO] [stdout] test source::tests::parse_selfhosted_gitlab_with_port ... ok
[INFO] [stdout] test search::tests::proxy_from_env_returns_none_when_unset ... ok
[INFO] [stdout] test source::tests::home_dir_reads_home_var ... ok
[INFO] [stdout] test source::tests::home_dir_returns_none_when_neither_set ... ok
[INFO] [stdout] test source::tests::label_roundtrip_gitlab_self_hosted ... ok
[INFO] [stdout] test source::tests::label_roundtrip_local_path ... ok
[INFO] [stdout] test source::tests::reject_empty_owner ... ok
[INFO] [stdout] test source::tests::reject_empty_ref ... ok
[INFO] [stdout] test source::tests::reject_empty_repo ... ok
[INFO] [stdout] test source::tests::reject_empty_ref_with_subfolder ... ok
[INFO] [stdout] test source::tests::reject_extra_slashes ... ok
[INFO] [stdout] test style::tests::empty_no_color_does_not_disable ... ok
[INFO] [stdout] test style::tests::force_color_re_enables_when_piped ... ok
[INFO] [stdout] test source::tests::reject_empty_subfolder ... ok
[INFO] [stdout] test source::tests::reject_missing_separator ... ok
[INFO] [stdout] test style::tests::no_color_env_disables ... ok
[INFO] [stdout] test style::tests::no_color_flag_disables ... ok
[INFO] [stdout] test style::tests::term_dumb_disables ... ok
[INFO] [stdout] test style::tests::upskill_no_color_disables ... ok
[INFO] [stdout] test source::tests::parse_local_path_dot_slash ... ok
[INFO] [stdout] test source::tests::parse_ref_branch ... ok
[INFO] [stdout] test source::tests::reject_whitespace_subfolder ... ok
[INFO] [stdout] test source::tests::home_dir_prefers_home_over_userprofile ... ok
[INFO] [stdout] test source::tests::parse_valid_owner_repo ... ok
[INFO] [stdout] test parse::frontmatter::tests::agent_appendix_a4_round_trip ... ok
[INFO] [stdout] test fetch::tests::shallow_clone_local_repo ... ok
[INFO] [stdout] test fetch::tests::sparse_clone_fetches_only_subfolder ... ok
[INFO] [stdout] test fetch::tests::shallow_clone_without_subfolder_fetches_everything ... ok
[INFO] [stdout] test fetch::tests::clone_missing_subfolder_fails ... ok
[INFO] [stdout] test fetch::tests::sparse_clone_with_git_ref ... ok
[INFO] [stdout] test fetch::tests::clone_with_subfolder ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 230 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/upskill-f2d838acb451da4d)
[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] [stderr]      Running tests/cli_add.rs (/opt/rustwide/target/debug/deps/cli_add-2374e18110ef5a80)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test add_invalid_source_returns_usage_error ... ok
[INFO] [stdout] test add_with_items_no_match_is_general_error ... ok
[INFO] [stdout] test add_with_items_subset_installs_only_named_items ... ok
[INFO] [stdout] test add_installs_local_ssot_to_cwd ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_bundle_install.rs (/opt/rustwide/target/debug/deps/cli_bundle_install-97fe0b10ec78840c)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test bundle_install_errors_on_item_conflict ... ok
[INFO] [stdout] test bundle_install_sibling_layout_discovers_items_in_peer_directories ... ok
[INFO] [stdout] test bundle_install_writes_only_referenced_items ... ok
[INFO] [stdout] test bundle_install_resolves_transitive_requires ... ok
[INFO] [stdout] test bundle_install_records_bundle_in_lockfile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_ci_mode.rs (/opt/rustwide/target/debug/deps/cli_ci_mode-093597e9f7a16903)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test piped_output_strips_ansi_by_default ... ok
[INFO] [stdout] test no_color_flag_strips_ansi ... ok
[INFO] [stdout] test force_color_re_enables_when_piped ... ok
[INFO] [stdout] test no_color_env_strips_ansi ... ok
[INFO] [stdout] test term_dumb_strips_ansi ... ok
[INFO] [stdout] test upskill_no_color_strips_ansi ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_doctor.rs (/opt/rustwide/target/debug/deps/cli_doctor-a656d38d1a7d23e7)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test doctor_installed_plugin_present_in_client_exits_zero ... ok
[INFO] [stdout] test doctor_installed_plugin_missing_from_client_exits_one ... ok
[INFO] [stdout] test doctor_skipped_plugin_exits_zero_and_reports_it ... ok
[INFO] [stdout] test doctor_empty_lockfile_exits_zero ... ok
[INFO] [stdout] test doctor_detects_orphan_when_local_path_gone ... ok
[INFO] [stdout] test doctor_json_includes_skipped_plugins_bucket ... ok
[INFO] [stdout] test doctor_detects_orphan_when_item_removed_from_source ... ok
[INFO] [stdout] test doctor_detects_ssot_hash_drift ... ok
[INFO] [stdout] test doctor_json_clean_install_emits_empty_buckets ... ok
[INFO] [stdout] test doctor_clean_install_exits_zero ... ok
[INFO] [stdout] test doctor_json_orphan_entry_has_kebab_case_reason ... ok
[INFO] [stdout] test doctor_json_missing_output_lists_files ... ok
[INFO] [stdout] test doctor_detects_missing_output_files ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_exit_codes.rs (/opt/rustwide/target/debug/deps/cli_exit_codes-7de22f1e2855d1fe)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test version_long_flag_prints_to_stdout_and_exits_zero ... ok
[INFO] [stdout] test usage_errors_exit_two ... ok
[INFO] [stdout] test version_short_flag_prints_to_stdout_and_exits_zero ... ok
[INFO] [stdout] test help_exits_zero ... ok
[INFO] [stdout] test general_errors_exit_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_fmt.rs (/opt/rustwide/target/debug/deps/cli_fmt-6629e1ff96097d36)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test fmt_does_not_touch_body ... ok
[INFO] [stdout] test fmt_refuses_to_run_inside_consumer_project ... ok
[INFO] [stdout] test fmt_reorders_frontmatter_keys_canonically ... ok
[INFO] [stdout] test fmt_reports_files_changed_count ... ok
[INFO] [stderr]      Running tests/cli_global_scope.rs (/opt/rustwide/target/debug/deps/cli_global_scope-c18abc6493f931a2)
[INFO] [stdout] test fmt_is_idempotent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test add_global_errors_clearly_when_neither_home_nor_userprofile_set ... ok
[INFO] [stdout] test global_and_project_flags_conflict ... ok
[INFO] [stdout] test add_short_g_flag_works_too ... ok
[INFO] [stdout] test list_global_reads_home_lockfile ... ok
[INFO] [stdout] test add_global_writes_under_home_not_cwd ... ok
[INFO] [stdout] test auto_fallback_when_not_in_git_repo_uses_global ... ok
[INFO] [stdout] test add_global_uses_userprofile_when_home_unset ... ok
[INFO] [stdout] test project_flag_overrides_auto_fallback ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_install.rs (/opt/rustwide/target/debug/deps/cli_install-b9f15a1ec1f9e172)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test help_flag_prints_usage_and_exits_zero ... ok
[INFO] [stdout] test unsupported_platform_without_home_still_hints ... ok
[INFO] [stdout] test unsupported_platform_fails_with_cargo_hint ... ok
[INFO] [stdout] test help_works_without_home_env ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_lint.rs (/opt/rustwide/target/debug/deps/cli_lint-fa79b0d227001298)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test lint_flags_fence_without_language_as_warning ... ok
[INFO] [stdout] test lint_strict_promotes_warnings_to_errors ... ok
[INFO] [stdout] test lint_flags_bundle_item_name_collision ... ok
[INFO] [stdout] test lint_refuses_to_run_inside_consumer_project ... ok
[INFO] [stdout] test lint_flags_name_directory_mismatch_as_error ... ok
[INFO] [stdout] test lint_flags_h1_in_body_as_warning ... ok
[INFO] [stdout] test lint_clean_fixture_corpus_exits_zero ... ok
[INFO] [stdout] test lint_flags_unbalanced_directive_as_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_list.rs (/opt/rustwide/target/debug/deps/cli_list-02f71d4d3d67a904)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test list_empty_lockfile_reports_no_items ... ok
[INFO] [stdout] test list_json_empty_lockfile_emits_empty_buckets ... ok
[INFO] [stdout] test list_bundle_install_surfaces_bundles_section ... ok
[INFO] [stdout] test list_json_groups_installed_items_by_kind ... ok
[INFO] [stdout] test list_groups_installed_items_by_kind ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_mangen.rs (/opt/rustwide/target/debug/deps/cli_mangen-59915dd4bfcef92d)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test root_man_page_has_synopsis_and_name ... ok
[INFO] [stdout] test root_man_page_documents_quiet_flag ... ok
[INFO] [stdout] test every_subcommand_renders_a_man_page ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_misc.rs (/opt/rustwide/target/debug/deps/cli_misc-ca6bd22ba5b866bb)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test install_is_not_an_alias_for_add ... ok
[INFO] [stdout] test uninstall_is_not_an_alias_for_remove ... ok
[INFO] [stdout] test claude_md_bridge_content_is_at_agents_md ... ok
[INFO] [stdout] test outputs_are_file_copies_not_symlinks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_new.rs (/opt/rustwide/target/debug/deps/cli_new-f616cf5257cdfe32)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test new_rule_creates_rule_md ... ok
[INFO] [stdout] test new_refuses_to_run_inside_consumer_project ... ok
[INFO] [stdout] test new_agent_emits_default_mode_and_model ... ok
[INFO] [stdout] test new_refuses_existing_item_directory ... ok
[INFO] [stdout] test new_rejects_invalid_name ... ok
[INFO] [stdout] test new_skill_creates_skill_md_with_minimum_frontmatter ... ok
[INFO] [stdout] test new_output_passes_lint_and_fmt ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_quiet.rs (/opt/rustwide/target/debug/deps/cli_quiet-1566bd5b9a8ba11f)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test list_quiet_on_empty_lockfile_emits_no_stdout ... ok
[INFO] [stdout] test lint_short_q_on_clean_corpus_emits_no_stdout ... ok
[INFO] [stdout] test quiet_does_not_silence_errors_on_stderr ... ok
[INFO] [stdout] test lint_quiet_on_clean_corpus_emits_no_stdout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_remove.rs (/opt/rustwide/target/debug/deps/cli_remove-b13629ffa965518c)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test remove_bare_invocation_is_usage_error ... ok
[INFO] [stdout] test remove_names_and_source_together_is_usage_error ... ok
[INFO] [stdout] test remove_by_source_drops_every_entry_from_that_source ... ok
[INFO] [stdout] test remove_by_name_deletes_all_per_client_outputs_and_lockfile_entry ... ok
[INFO] [stdout] test remove_unknown_name_is_general_error ... ok
[INFO] [stdout] test remove_preserves_ancillary_files ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_search.rs (/opt/rustwide/target/debug/deps/cli_search-92e0e1f504f00a99)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test search_help_exits_zero ... ok
[INFO] [stdout] test search_unreachable_registry_exits_one ... ok
[INFO] [stdout] test search_shows_install_command ... ok
[INFO] [stdout] test search_returns_results ... ok
[INFO] [stdout] test search_empty_results ... ok
[INFO] [stdout] test search_requires_query ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_stdio_discipline.rs (/opt/rustwide/target/debug/deps/cli_stdio_discipline-391bd39c4be29629)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test list_data_goes_to_stdout_stderr_is_empty ... ok
[INFO] [stdout] test list_stdout_has_no_ansi_when_piped ... ok
[INFO] [stdout] test add_invalid_source_writes_error_to_stderr_not_stdout ... ok
[INFO] [stdout] test add_invalid_source_stderr_has_no_ansi_under_no_color_env ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_update.rs (/opt/rustwide/target/debug/deps/cli_update-97ee6f8cc66b7959)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test update_empty_lockfile_is_no_op ... ok
[INFO] [stdout] test update_unknown_name_is_general_error ... ok
[INFO] [stdout] test update_dry_run_reports_change_without_writing ... ok
[INFO] [stdout] test update_no_change_reports_up_to_date ... ok
[INFO] [stdout] test update_after_ssot_mutation_rewrites_outputs_and_lockfile_hash ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_ux_polish.rs (/opt/rustwide/target/debug/deps/cli_ux_polish-d495e3759c30a974)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test lint_short_strict_flag_is_recognised ... ok
[INFO] [stdout] test search_short_limit_flag_is_recognised ... ok
[INFO] [stdout] test remove_by_source_in_non_tty_does_not_prompt_and_proceeds ... ok
[INFO] [stdout] test add_against_unreachable_github_emits_progress_line_to_stderr ... ok
[INFO] [stdout] test remove_by_source_under_yes_flag_skips_prompt_and_proceeds ... ok
[INFO] [stdout] test remove_short_source_flag_is_recognised ... ok
[INFO] [stdout] test update_short_dry_run_flag_is_recognised ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/generate_agents.rs (/opt/rustwide/target/debug/deps/generate_agents-18c1804bbbe19fe9)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test security_reviewer_opencode ... ok
[INFO] [stdout] test security_reviewer_claude ... ok
[INFO] [stderr]      Running tests/generate_rules.rs (/opt/rustwide/target/debug/deps/generate_rules-e2a4433ce4e3256c)
[INFO] [stdout] test security_reviewer_copilot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test api_conventions_opencode ... ok
[INFO] [stdout] test license_awareness_claude ... ok
[INFO] [stdout] test license_awareness_copilot ... ok
[INFO] [stdout] test license_awareness_opencode ... ok
[INFO] [stdout] test api_conventions_copilot ... ok
[INFO] [stdout] test api_conventions_claude ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/generate_skills.rs (/opt/rustwide/target/debug/deps/generate_skills-a3be76f8830bb93e)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test create_api_endpoint_copilot ... ok
[INFO] [stdout] test create_api_endpoint_claude ... ok
[INFO] [stdout] test create_api_endpoint_opencode ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/parse_bundles.rs (/opt/rustwide/target/debug/deps/parse_bundles-08d65d1cd09e33d7)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test discovers_every_fixture_bundle ... ok
[INFO] [stdout] test extras_pins_baseline_with_caret_constraint ... ok
[INFO] [stdout] test baseline_carries_every_fixture_item ... ok
[INFO] [stdout] test with_plugins_declares_client_native_plugins ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pipeline_local.rs (/opt/rustwide/target/debug/deps/pipeline_local-8b8d32b1ce0df4d9)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test install_respects_top_level_audience_filter ... ok
[INFO] [stdout] test install_writes_per_client_output_for_all_kinds ... ok
[INFO] [stdout] test install_is_idempotent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pipeline_lockfile.rs (/opt/rustwide/target/debug/deps/pipeline_lockfile-97bac826f1f6fee5)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test doctor_reports_multiple_skipped_plugins ... ok
[INFO] [stdout] test doctor_reports_skipped_plugin_from_lockfile ... ok
[INFO] [stdout] test doctor_skipped_plugins_do_not_cause_is_clean_false ... ok
[INFO] [stdout] test doctor_installed_plugin_cli_not_found_is_not_reported_as_missing ... ok
[INFO] [stdout] test install_by_name_errors_on_ambiguity ... ok
[INFO] [stdout] test plugin_results_carry_correct_metadata ... ok
[INFO] [stdout] test bundle_with_plugins_produces_plugin_results ... ok
[INFO] [stdout] test cli_not_found_plugins_recorded_as_skipped_in_lockfile ... ok
[INFO] [stdout] test install_by_name_prefers_items_when_only_items_match ... ok
[INFO] [stdout] test install_registers_opencode_rules_glob_when_rules_present ... ok
[INFO] [stdout] test install_by_name_discovers_bundle_when_no_item_matches ... ok
[INFO] [stdout] test install_writes_lockfile_at_target_root ... ok
[INFO] [stdout] test install_preserves_unrelated_existing_entries ... ok
[INFO] [stdout] test install_creates_claude_bridge_when_absent ... ok
[INFO] [stdout] test install_registers_vscode_instructions_location_when_rules_present ... ok
[INFO] [stdout] test install_preserves_existing_claude_bridge ... ok
[INFO] [stdout] test re_install_upserts_existing_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pipeline_source.rs (/opt/rustwide/target/debug/deps/pipeline_source-99d72c11bc75f700)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test install_from_source_local_path ... ok
[INFO] [stdout] test install_from_source_clone_subfolder ... ok
[INFO] [stdout] test install_from_source_clones_local_bare_repo_via_file_url ... ok
[INFO] [stdout] test re_install_after_upstream_push_picks_up_new_content ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests upskill
[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" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9", kill_on_drop: false }`
[INFO] [stdout] dc0851c7fe9b12b3c7ed5b97f18efd68f0c6f013a029aa2db0cb8cce8f0ad7d9
