[INFO] fetching crate skillfile-sources 1.4.2... [INFO] testing skillfile-sources-1.4.2 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate skillfile-sources 1.4.2 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate skillfile-sources 1.4.2 [INFO] finished tweaking crates.io crate skillfile-sources 1.4.2 [INFO] tweaked toml for crates.io crate skillfile-sources 1.4.2 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate skillfile-sources 1.4.2 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 skillfile-sources 1.4.2 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 skillfile-core v1.4.2 [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] fc2cf8f685b9046af31f4313fb30517fb5554853cb64e3e61c704db0ea3ec84f [INFO] running `Command { std: "docker" "start" "-a" "fc2cf8f685b9046af31f4313fb30517fb5554853cb64e3e61c704db0ea3ec84f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fc2cf8f685b9046af31f4313fb30517fb5554853cb64e3e61c704db0ea3ec84f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc2cf8f685b9046af31f4313fb30517fb5554853cb64e3e61c704db0ea3ec84f", kill_on_drop: false }` [INFO] [stdout] fc2cf8f685b9046af31f4313fb30517fb5554853cb64e3e61c704db0ea3ec84f [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] 929d190906a85cb32679ac8aead48c42523b34d5ebc48fd9cc749506faad55c1 [INFO] running `Command { std: "docker" "start" "-a" "929d190906a85cb32679ac8aead48c42523b34d5ebc48fd9cc749506faad55c1", kill_on_drop: false }` [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling utf8-width v0.1.8 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling html-escape v0.2.13 [INFO] [stderr] Compiling skillfile-core v1.4.2 [INFO] [stderr] Compiling ureq-proto v0.5.3 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling ureq v3.2.0 [INFO] [stderr] Compiling skillfile-sources v1.4.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.77s [INFO] running `Command { std: "docker" "inspect" "929d190906a85cb32679ac8aead48c42523b34d5ebc48fd9cc749506faad55c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "929d190906a85cb32679ac8aead48c42523b34d5ebc48fd9cc749506faad55c1", kill_on_drop: false }` [INFO] [stdout] 929d190906a85cb32679ac8aead48c42523b34d5ebc48fd9cc749506faad55c1 [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] ac4cec6f3e1fa7522fef51ccbf015a961d5ce97a7ba41f7633ecb2b6ee1e1e77 [INFO] running `Command { std: "docker" "start" "-a" "ac4cec6f3e1fa7522fef51ccbf015a961d5ce97a7ba41f7633ecb2b6ee1e1e77", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling skillfile-sources v1.4.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.50s [INFO] running `Command { std: "docker" "inspect" "ac4cec6f3e1fa7522fef51ccbf015a961d5ce97a7ba41f7633ecb2b6ee1e1e77", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ac4cec6f3e1fa7522fef51ccbf015a961d5ce97a7ba41f7633ecb2b6ee1e1e77", kill_on_drop: false }` [INFO] [stdout] ac4cec6f3e1fa7522fef51ccbf015a961d5ce97a7ba41f7633ecb2b6ee1e1e77 [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] 253e3766c4a39166829b2e40c3b3bd92cb9114fdf2d8b0c3b4c2d4708b32dd25 [INFO] running `Command { std: "docker" "start" "-a" "253e3766c4a39166829b2e40c3b3bd92cb9114fdf2d8b0c3b4c2d4708b32dd25", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/skillfile_sources-6ed6f029ab4f8968) [INFO] [stdout] running 245 tests [INFO] [stdout] test http::tests::agentskill_url_is_not_github ... ok [INFO] [stdout] test http::tests::bare_domain_is_not_github ... ok [INFO] [stdout] test http::tests::empty_url_is_not_github ... ok [INFO] [stdout] test http::tests::github_api_root_is_github ... ok [INFO] [stdout] test http::tests::github_api_url_is_github ... ok [INFO] [stdout] test http::tests::github_raw_url_is_github ... ok [INFO] [stdout] test http::tests::github_token_type_for_url_allows_github ... ok [INFO] [stdout] test http::tests::github_token_type_for_url_rejects_registries ... ok [INFO] [stdout] test http::tests::github_token_type_for_url_returns_none_without_token ... ok [INFO] [stdout] test http::tests::http_github_url_is_github ... ok [INFO] [stdout] test http::tests::set_config_token_populates_cache ... ok [INFO] [stdout] test http::tests::skillssh_url_is_not_github ... ok [INFO] [stdout] test http::tests::spoofed_raw_subdomain_is_not_github ... ok [INFO] [stdout] test http::tests::ureq_client_default_creates_successfully ... ok [INFO] [stdout] test registry::agentskill::tests::extract_nuxt_json_handles_attributes_order ... ok [INFO] [stdout] test registry::agentskill::tests::extract_path_from_nuxt_html ... ok [INFO] [stdout] test registry::agentskill::tests::extract_path_returns_none_when_missing ... ok [INFO] [stdout] test registry::agentskill::tests::extract_repo_from_nuxt_escaped_html ... ok [INFO] [stdout] test http::tests::spoofed_github_subdomain_is_not_github ... ok [INFO] [stdout] test http::tests::skillhub_url_is_not_github ... ok [INFO] [stdout] test registry::agentskill::tests::extract_repo_from_plain_html ... ok [INFO] [stdout] test registry::agentskill::tests::extract_repo_handles_hyphenated_names ... ok [INFO] [stdout] test registry::agentskill::tests::extract_repo_plain_skips_malformed_first_match ... ok [INFO] [stdout] test registry::agentskill::tests::extract_repo_returns_none_for_no_github_url ... ok [INFO] [stdout] test registry::agentskill::tests::extract_repo_skips_avatar_urls ... ok [INFO] [stdout] test registry::agentskill::tests::extract_skill_md_returns_none_when_ref_out_of_bounds ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_case_insensitive_slug ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_empty_data_returns_none ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_empty_github_fields_returns_none ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_malformed_json_returns_none ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_missing_github_fields_returns_none ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_network_error_returns_none ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_picks_matching_slug_from_multiple ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_skill_content_returns_none_on_invalid_json ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_no_match_returns_none ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_skill_content_returns_none_on_missing_skill_md_key ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_skill_content_returns_none_on_network_error ... ok [INFO] [stdout] test registry::agentskill::tests::scrape_page_returns_none_on_network_error ... ok [INFO] [stdout] test registry::agentskill::tests::scrape_page_returns_full_meta_from_mock_html ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_github_meta_returns_coordinates ... ok [INFO] [stdout] test registry::agentskill::tests::search_applies_min_score_filter ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_skill_content_returns_none_on_missing_payload ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_converts_headings ... ok [INFO] [stdout] test registry::agentskill::tests::scrape_page_returns_repo_only_when_no_path ... ok [INFO] [stdout] test registry::agentskill::tests::search_parses_response ... ok [INFO] [stdout] test registry::agentskill::tests::map_result_without_github_coords_does_not_use_slug_as_source_repo ... ok [INFO] [stdout] test registry::agentskill::tests::search_skips_results_without_name ... ok [INFO] [stdout] test registry::agentskill::tests::search_returns_error_on_network_failure ... ok [INFO] [stdout] test registry::agentskill::tests::search_returns_error_on_malformed_json ... ok [INFO] [stdout] test registry::agentskill::tests::search_uses_github_coordinates_when_present ... ok [INFO] [stdout] test registry::agentskill::tests::search_constructs_url_from_slug ... ok [INFO] [stdout] test registry::scrape::tests::collapse_blank_lines_limits_consecutive ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_decodes_entities ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_converts_lists ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_decodes_hex_entities ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_handles_attributes ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_no_excessive_blank_lines ... ok [INFO] [stdout] test registry::scrape::tests::html_to_markdown_strips_unknown_tags_and_decodes ... ok [INFO] [stdout] test registry::scrape::tests::json_string_end_finds_closing_quote ... ok [INFO] [stdout] test registry::scrape::tests::urlencoded_encodes_spaces_and_specials ... ok [INFO] [stdout] test registry::skillssh::tests::extract_rsc_content_parses_html_chunk ... ok [INFO] [stdout] test registry::skillhub::tests::search_parses_response ... ok [INFO] [stdout] test registry::skillssh::tests::extract_rsc_content_returns_none_without_html ... ok [INFO] [stdout] test registry::skillhub::tests::skips_without_api_key ... ok [INFO] [stdout] test registry::skillssh::tests::fetch_skill_content_fallback_paths ... ok [INFO] [stdout] test registry::skillssh::tests::fetch_skill_content_falls_through_to_root ... ok [INFO] [stdout] test registry::skillssh::tests::fetch_skill_content_falls_back_to_page_scrape ... ok [INFO] [stdout] test registry::skillssh::tests::fetch_skill_content_from_github_raw ... ok [INFO] [stdout] test registry::skillssh::tests::extract_rsc_content_skips_non_content_chunks ... ok [INFO] [stdout] test registry::skillssh::tests::fetch_skill_content_returns_none_when_all_paths_fail ... ok [INFO] [stdout] test registry::skillssh::tests::fetch_skill_content_without_source_repo_tries_page_scrape ... ok [INFO] [stdout] test registry::skillssh::tests::search_handles_empty_results ... ok [INFO] [stdout] test registry::skillssh::tests::extract_rsc_strips_flight_header ... ok [INFO] [stdout] test registry::skillssh::tests::search_parses_response ... ok [INFO] [stdout] test registry::skillssh::tests::extract_rsc_preserves_markdown_structure ... ok [INFO] [stdout] test registry::skillssh::tests::strip_rsc_header_preserves_non_rsc_comma ... ok [INFO] [stdout] test registry::skillssh::tests::search_returns_all_results ... ok [INFO] [stdout] test registry::skillssh::tests::strip_rsc_header_removes_prefix ... ok [INFO] [stdout] test registry::skillssh::tests::strip_rsc_header_preserves_plain_text ... ok [INFO] [stdout] test registry::tests::all_registries_default_excludes_skillhub ... ok [INFO] [stdout] test registry::tests::post_process_no_filter_only_sorts ... ok [INFO] [stdout] test registry::tests::post_process_truncates_to_limit ... ok [INFO] [stdout] test registry::tests::registry_names_covers_all_known ... ok [INFO] [stdout] test registry::tests::search_all_applies_min_score_filter ... ok [INFO] [stdout] test registry::tests::search_all_returns_sorted_results ... ok [INFO] [stdout] test registry::tests::search_all_skips_failed_registry ... ok [INFO] [stdout] test registry::tests::post_process_filters_and_sorts ... ok [INFO] [stdout] test registry::tests::default_search_options ... ok [INFO] [stdout] test registry::tests::search_registry_filters_by_name ... ok [INFO] [stdout] test registry::tests::search_registry_rejects_unknown_name ... ok [INFO] [stdout] test registry::tests::search_with_client_sorts_results ... ok [INFO] [stdout] test registry::tests::search_result_includes_registry_field ... ok [INFO] [stdout] test registry::tests::sort_by_popularity_none_stars_sort_last ... ok [INFO] [stdout] test registry::tests::sort_by_popularity_orders_by_stars_desc ... ok [INFO] [stdout] test registry::tests::sort_by_popularity_uses_score_as_tiebreaker ... ok [INFO] [stdout] test resolver::tests::check_repo_renamed_case_insensitive ... ok [INFO] [stdout] test resolver::tests::check_repo_renamed_detects_rename ... ok [INFO] [stdout] test resolver::tests::check_repo_renamed_returns_none_on_4xx ... ok [INFO] [stdout] test resolver::tests::check_repo_renamed_returns_none_on_network_error ... ok [INFO] [stdout] test resolver::tests::check_repo_renamed_same_name_returns_none ... ok [INFO] [stdout] test registry::tests::search_all_aggregates_results ... ok [INFO] [stdout] test resolver::tests::collapse_depth2_multiple_authors ... ok [INFO] [stdout] test resolver::tests::collapse_depth2_skill_with_resources ... ok [INFO] [stdout] test resolver::tests::collapse_dir_with_multiple_files_becomes_dir_entry ... ok [INFO] [stdout] test resolver::tests::collapse_dir_with_skill_md_becomes_dir_entry ... ok [INFO] [stdout] test resolver::tests::collapse_empty_returns_empty ... ok [INFO] [stdout] test resolver::tests::collapse_mixed_markers_and_heuristic ... ok [INFO] [stdout] test resolver::tests::collapse_mixed_root_and_nested ... ok [INFO] [stdout] test resolver::tests::collapse_multi_skill_repo ... ok [INFO] [stdout] test resolver::tests::collapse_multiple_root_files ... ok [INFO] [stdout] test resolver::tests::collapse_no_marker_heuristic_fallback ... ok [INFO] [stdout] test resolver::tests::collapse_root_non_skill_stays_as_file ... ok [INFO] [stdout] test resolver::tests::collapse_root_skill_md_case_insensitive ... ok [INFO] [stdout] test resolver::tests::collapse_single_file_in_dir_not_skill_stays_as_file ... ok [INFO] [stdout] test resolver::tests::collapse_skill_root_claims_all_descendants ... ok [INFO] [stdout] test resolver::tests::decode_safe_utf8 ... ok [INFO] [stdout] test resolver::tests::collapse_skill_root_does_not_claim_sibling ... ok [INFO] [stdout] test resolver::tests::encode_url_path_preserves_slashes ... ok [INFO] [stdout] test resolver::tests::encode_url_path_chinese_characters_encoded ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_empty_list_returns_empty ... ok [INFO] [stdout] test resolver::tests::decode_safe_binary ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_single_file ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_single_file_binary_variant ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_single_file_text_variant ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_error_propagates_for_single_file ... ok [INFO] [stdout] test resolver::tests::fetch_github_file_dot_path_becomes_skill_md ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_changelog ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_code_of_conduct ... ok [INFO] [stdout] test resolver::tests::fetch_github_file_propagates_error ... ok [INFO] [stdout] test resolver::tests::file_content_from_bytes_binary ... ok [INFO] [stdout] test resolver::tests::encode_url_path_ascii_unchanged ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_contributing ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_empty_string ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_dotgithub_paths ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_just_md_extension ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_github_prefix_not_nested ... ok [INFO] [stdout] test resolver::tests::file_content_from_bytes_text ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_license ... ok [INFO] [stdout] test resolver::tests::fetch_github_file_basic ... ok [INFO] [stdout] test resolver::tests::collapse_root_skill_md_becomes_dot ... ok [INFO] [stdout] test resolver::tests::http_get_returns_bytes_from_client ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_multiple_files ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_readme_variants ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_nested_readme ... ok [INFO] [stdout] test resolver::tests::fetch_files_parallel_error_propagates_for_multiple_files ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_regular_skill_files ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_security ... ok [INFO] [stdout] test resolver::tests::encode_url_path_spaces_encoded ... ok [INFO] [stdout] test resolver::tests::is_repo_meta_file_similar_but_not_matching ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_4xx_returns_error ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_download_urls_are_correct ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_empty_tree_and_empty_contents ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_filters_out_tree_nodes ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_malformed_json_returns_error ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_empty_tree_falls_back_to_contents ... ok [INFO] [stdout] test resolver::tests::list_github_dir_recursive_returns_blobs_under_prefix ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_fails_when_both_branches_absent ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_invalid_json_returns_error ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_main_falls_back_to_master ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_malformed_json_returns_error ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_master_falls_back_to_main ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_non_main_ref_no_fallback ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_rename_check_fails_falls_back ... ok [INFO] [stdout] test resolver::tests::skill_entries_dir_skill_collapses ... ok [INFO] [stdout] test resolver::tests::skill_entries_empty_tree_array ... ok [INFO] [stdout] test resolver::tests::skill_entries_falls_back_to_master ... ok [INFO] [stdout] test resolver::tests::skill_entries_filters_and_collapses ... ok [INFO] [stdout] test resolver::tests::skill_entries_main_empty_does_not_fallback ... ok [INFO] [stdout] test resolver::tests::skill_entries_main_error_master_error_both_graceful ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_renamed_repo_shows_new_name ... ok [INFO] [stdout] test resolver::tests::resolve_github_sha_happy_path ... ok [INFO] [stdout] test resolver::tests::skill_entries_malformed_json_returns_empty ... ok [INFO] [stdout] test resolver::tests::skill_entries_main_succeeds_does_not_try_master ... ok [INFO] [stdout] test resolver::tests::skill_entries_mixed_single_and_dir ... ok [INFO] [stdout] test resolver::tests::skill_entries_returns_empty_on_network_error ... ok [INFO] [stdout] test resolver::tests::skill_entries_only_metadata_returns_empty ... ok [INFO] [stdout] test resolver::tests::skill_entries_returns_empty_on_total_failure ... ok [INFO] [stdout] test resolver::tests::skill_entries_tree_entries_missing_fields ... ok [INFO] [stdout] test resolver::tests::skill_entries_under_network_failure_returns_empty ... ok [INFO] [stdout] test resolver::tests::skill_entries_under_dot_returns_everything ... ok [INFO] [stdout] test resolver::tests::skill_entries_under_no_trailing_slash ... ok [INFO] [stdout] test resolver::tests::try_resolve_sha_propagates_network_error ... ok [INFO] [stdout] test resolver::tests::skill_entries_under_nonexistent_path_returns_empty ... ok [INFO] [stdout] test resolver::tests::try_resolve_sha_returns_none_on_4xx ... ok [INFO] [stdout] test resolver::tests::skill_entries_under_scoped_to_skills ... ok [INFO] [stdout] test resolver::tests::skill_entries_no_md_files_returns_empty ... ok [INFO] [stdout] test resolver::tests::skill_entries_single_skill_at_root ... ok [INFO] [stdout] test resolver::tests::try_resolve_sha_extracts_sha_from_json ... ok [INFO] [stdout] test strategy::tests::content_file_dir_entry ... ok [INFO] [stdout] test strategy::tests::content_file_local ... ok [INFO] [stdout] test strategy::tests::is_dir_entry_dot_path ... ok [INFO] [stdout] test strategy::tests::is_dir_entry_local ... ok [INFO] [stdout] test strategy::tests::content_file_url ... ok [INFO] [stdout] test resolver::tests::skill_entries_missing_tree_key_returns_empty ... ok [INFO] [stdout] test strategy::tests::format_parts_github_explicit_name_and_ref ... ok [INFO] [stdout] test strategy::tests::format_parts_github_inferred_name ... ok [INFO] [stdout] test registry::agentskill::tests::fetch_skill_content_extracts_from_nuxt_payload ... ok [INFO] [stdout] test strategy::tests::format_parts_local_explicit_name ... ok [INFO] [stdout] test strategy::tests::format_parts_local_inferred_name ... ok [INFO] [stdout] test registry::agentskill::tests::search_handles_missing_optional_fields ... ok [INFO] [stdout] test strategy::tests::is_dir_entry_directory ... ok [INFO] [stdout] test strategy::tests::content_file_single_file ... ok [INFO] [stdout] test resolver::tests::http_get_propagates_error ... ok [INFO] [stdout] test resolver::tests::encode_url_path_tilde_and_dash_unchanged ... ok [INFO] [stdout] test strategy::tests::content_file_dot_path ... ok [INFO] [stdout] test strategy::tests::is_dir_entry_md_file ... ok [INFO] [stdout] test strategy::tests::meta_sha_missing_returns_none ... ok [INFO] [stdout] test sync::tests::cmd_sync_entry_filter_local_only_found ... ok [INFO] [stdout] test sync::tests::cmd_sync_entry_filter_not_found_returns_error ... ok [INFO] [stdout] test strategy::tests::meta_sha_reads_from_file ... ok [INFO] [stdout] test sync::tests::cmd_sync_dry_run_local_only_does_not_write_lock ... ok [INFO] [stdout] test sync::tests::cmd_sync_missing_skillfile_returns_error ... ok [INFO] [stdout] test sync::tests::fetch_dir_at_sha_empty_directory_returns_empty_map ... ok [INFO] [stdout] test sync::tests::content_exists_url_present ... ok [INFO] [stdout] test sync::tests::cmd_sync_no_entries_in_manifest ... ok [INFO] [stdout] test sync::tests::content_exists_github_dir_entry_only_meta ... ok [INFO] [stdout] test sync::tests::fetch_dir_at_sha_non_github_returns_error ... ok [INFO] [stdout] test sync::tests::content_exists_github_single_file_present ... ok [INFO] [stdout] test sync::tests::content_exists_github_dir_entry_vdir_missing ... ok [INFO] [stdout] test sync::tests::content_exists_github_single_file_missing ... ok [INFO] [stdout] test sync::tests::content_exists_local_always_false ... ok [INFO] [stdout] test sync::tests::cmd_sync_local_only_manifest_succeeds ... ok [INFO] [stdout] test sync::tests::content_exists_github_single_file_vdir_missing ... ok [INFO] [stdout] test sync::tests::content_exists_github_dir_entry_with_files ... ok [INFO] [stdout] test sync::tests::content_exists_url_missing ... ok [INFO] [stdout] test sync::tests::fetch_file_at_sha_dot_path_uses_skill_md ... ok [INFO] [stdout] test sync::tests::fetch_dir_at_sha_url_entry_returns_error ... ok [INFO] [stdout] test sync::tests::fetch_file_at_sha_github_returns_content ... ok [INFO] [stdout] test sync::tests::fetch_file_at_sha_binary_returns_error ... ok [INFO] [stdout] test sync::tests::fetch_dir_at_sha_github_returns_map ... ok [INFO] [stdout] test sync::tests::fetch_dir_at_sha_skips_binary_files ... ok [INFO] [stdout] test sync::tests::fetch_file_at_sha_non_github_returns_error ... ok [INFO] [stdout] test sync::tests::fetch_file_at_sha_url_entry_returns_error ... ok [INFO] [stdout] test sync::tests::sync_entry_github_dry_run_skips_fetch ... ok [INFO] [stdout] test sync::tests::sync_entry_github_dot_path_writes_skill_md ... ok [INFO] [stdout] test sync::tests::sync_entry_local_skips_without_network ... ok [INFO] [stdout] test sync::tests::sync_entry_github_up_to_date_skips_fetch ... ok [INFO] [stdout] test sync::tests::vendor_dir_for_skill_entry ... ok [INFO] [stdout] test sync::tests::sync_entry_github_sha_cached_on_second_call ... ok [INFO] [stdout] test sync::tests::vendor_dir_for_uses_entry_name_not_path_stem ... ok [INFO] [stdout] test sync::tests::sync_url_dry_run_skips_fetch ... ok [INFO] [stdout] test sync::tests::sync_entry_github_fetches_and_writes_file ... ok [INFO] [stdout] test sync::tests::vendor_dir_for_agent_entry ... ok [INFO] [stderr] Doc-tests skillfile_sources [INFO] [stdout] test sync::tests::vendor_dir_for_is_nested_under_vendor_dir ... ok [INFO] [stdout] test sync::tests::sync_url_fetches_and_writes_file ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 245 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/registry/mod.rs - registry (line 9) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "253e3766c4a39166829b2e40c3b3bd92cb9114fdf2d8b0c3b4c2d4708b32dd25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "253e3766c4a39166829b2e40c3b3bd92cb9114fdf2d8b0c3b4c2d4708b32dd25", kill_on_drop: false }` [INFO] [stdout] 253e3766c4a39166829b2e40c3b3bd92cb9114fdf2d8b0c3b4c2d4708b32dd25