[INFO] cloning repository https://github.com/simonrevill/primitiv
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/simonrevill/primitiv" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsimonrevill%2Fprimitiv", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsimonrevill%2Fprimitiv'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f725efdb61d5c2962d9cc74129bb5a85e6307a66
[INFO] testing simonrevill/primitiv against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsimonrevill%2Fprimitiv" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/simonrevill/primitiv
[INFO] finished tweaking git repo https://github.com/simonrevill/primitiv
[INFO] tweaked toml for git repo https://github.com/simonrevill/primitiv written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/simonrevill/primitiv 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 git repo https://github.com/simonrevill/primitiv 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-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89
[INFO] running `Command { std: "docker" "start" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", 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" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89" "/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" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", 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" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.114
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling wasm-bindgen v0.2.114
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling palette v0.7.6
[INFO] [stderr]    Compiling fast-srgb8 v1.0.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.114
[INFO] [stderr]    Compiling serde_derive_internals v0.28.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]    Compiling tsify-macros v0.4.5
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling csscolorparser v0.8.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.114
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling js-sys v0.3.91
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling harmoni-core v0.1.0 (/opt/rustwide/workdir/crates/harmoni-core)
[INFO] [stderr]    Compiling primitiv-emit v0.1.0 (/opt/rustwide/workdir/crates/primitiv-emit)
[INFO] [stderr]    Compiling primitiv-cli v0.1.0 (/opt/rustwide/workdir/crates/primitiv-cli)
[INFO] [stderr]    Compiling web-sys v0.3.91
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling gloo-utils v0.1.7
[INFO] [stderr]    Compiling tsify v0.4.5
[INFO] [stderr]    Compiling harmoni-wasm v0.1.0 (/opt/rustwide/workdir/crates/harmoni-wasm)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.17s
[INFO] running `Command { std: "docker" "inspect" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", 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" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89" "/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 aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling primitiv-emit v0.1.0 (/opt/rustwide/workdir/crates/primitiv-emit)
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling gloo-utils v0.1.7
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling tsify v0.4.5
[INFO] [stderr]    Compiling harmoni-core v0.1.0 (/opt/rustwide/workdir/crates/harmoni-core)
[INFO] [stderr]    Compiling harmoni-wasm v0.1.0 (/opt/rustwide/workdir/crates/harmoni-wasm)
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.26
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling globwalk v0.9.1
[INFO] [stderr]    Compiling assert_fs v1.1.4
[INFO] [stderr]    Compiling primitiv-cli v0.1.0 (/opt/rustwide/workdir/crates/primitiv-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 34.29s
[INFO] running `Command { std: "docker" "inspect" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", 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" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89" "/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 0.19s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/harmoni_core-9d7bb9058c571b0c)
[INFO] [stdout] 
[INFO] [stdout] running 144 tests
[INFO] [stdout] test alpha::ramp_tests::generate_alpha_ramp_carries_the_alpha_into_the_oklch_string ... ok
[INFO] [stdout] test alpha::ramp_tests::generate_alpha_ramp_climbs_the_alpha_curve ... ok
[INFO] [stdout] test alpha::ramp_tests::generate_alpha_ramp_holds_the_anchor_colour_constant_across_steps ... ok
[INFO] [stdout] test alpha::ramp_tests::generate_alpha_ramp_produces_ten_steps_labelled_50_to_900 ... ok
[INFO] [stdout] test api::alpha_tests::generate_alpha_ramp_errors_on_an_unparseable_anchor ... ok
[INFO] [stdout] test api::gamut_tests::ch_plane::buffer_is_four_bytes_per_pixel ... ok
[INFO] [stdout] test api::gamut_tests::ch_plane::out_of_gamut_pixels_are_transparent ... ok
[INFO] [stdout] test api::audit_tests::audit_contrast_rates_pure_black_on_pure_white_as_aaa ... ok
[INFO] [stdout] test api::gamut_tests::chroma_strip::buffer_is_four_bytes_per_pixel ... ok
[INFO] [stdout] test api::gamut_tests::chroma_strip::display_p3_keeps_more_chroma_in_gamut_than_srgb ... ok
[INFO] [stdout] test api::gamut_tests::ch_plane::in_gamut_pixels_carry_their_srgb_colour_at_full_alpha ... ok
[INFO] [stdout] test api::gamut_tests::ch_plane::display_p3_pixels_carry_their_p3_colour ... ok
[INFO] [stdout] test api::alpha_tests::generate_alpha_ramp_parses_a_css_anchor_and_produces_the_ramp ... ok
[INFO] [stdout] test api::gamut_tests::chroma_strip::in_gamut_pixels_carry_their_colour_at_full_alpha ... ok
[INFO] [stdout] test api::gamut_tests::chroma_strip::out_of_gamut_pixels_are_transparent ... ok
[INFO] [stdout] test api::gamut_tests::hue_strip::display_p3_pixels_carry_their_p3_colour ... ok
[INFO] [stdout] test api::gamut_tests::ch_plane::display_p3_paints_more_of_the_plane_than_srgb ... ok
[INFO] [stdout] test api::gamut_tests::hue_strip::out_of_gamut_pixels_are_transparent ... ok
[INFO] [stdout] test api::gamut_tests::hue_strip::display_p3_keeps_more_hues_in_gamut_than_srgb ... ok
[INFO] [stdout] test api::gamut_tests::lh_plane::display_p3_pixels_carry_their_p3_colour ... ok
[INFO] [stdout] test api::gamut_tests::hue_strip::in_gamut_pixels_carry_their_srgb_colour_at_full_alpha ... ok
[INFO] [stdout] test api::gamut_tests::lc_plane::display_p3_pixels_carry_their_p3_colour ... ok
[INFO] [stdout] test api::gamut_tests::lightness_strip::display_p3_keeps_more_lightnesses_in_gamut_than_srgb ... ok
[INFO] [stdout] test api::gamut_tests::lh_plane::out_of_gamut_pixels_are_transparent ... ok
[INFO] [stdout] test api::gamut_tests::lightness_strip::buffer_is_four_bytes_per_pixel ... ok
[INFO] [stdout] test api::gamut_tests::lh_plane::in_gamut_pixels_carry_their_srgb_colour_at_full_alpha ... ok
[INFO] [stdout] test api::gamut_tests::lc_plane::display_p3_paints_more_of_the_plane_than_srgb ... ok
[INFO] [stdout] test api::gamut_tests::lh_plane::buffer_is_four_bytes_per_pixel ... ok
[INFO] [stdout] test api::gamut_tests::lightness_strip::in_gamut_pixels_carry_their_colour_at_full_alpha ... ok
[INFO] [stdout] test api::gamut_tests::lc_plane::in_gamut_pixels_carry_their_srgb_colour_at_full_alpha ... ok
[INFO] [stdout] test api::gamut_tests::max_chroma::display_p3_extends_the_srgb_boundary_for_a_saturated_green ... ok
[INFO] [stdout] test api::gamut_tests::lightness_strip::maps_columns_across_the_given_lightness_subrange ... ok
[INFO] [stdout] test api::gamut_tests::max_chroma::srgb_returns_a_sensible_in_range_boundary ... ok
[INFO] [stdout] test api::gamut_tests::max_chroma::near_black_chroma_collapses_toward_the_black_point ... ok
[INFO] [stdout] test api::generate_tests::generate_with_options_light_padding_brightens_the_lightest_step ... ok
[INFO] [stdout] test api::generate_tests::generate_returns_ten_step_palette_for_valid_oklch_input ... ok
[INFO] [stdout] test api::generate_tests::generate_brand_pair_uses_the_default_theme_curves ... ok
[INFO] [stdout] test api::generate_tests::generate_with_options_threads_soft_white_through_to_audit_foreground ... ok
[INFO] [stdout] test api::neutral_tests::derive_soft_neutrals_returns_softened_values_from_brand_color_input ... ok
[INFO] [stdout] test api::neutral_tests::generate_neutral_ramp_returns_palette_with_endpoints_matching_color_inputs ... ok
[INFO] [stdout] test api::gamut_tests::lc_plane::buffer_is_four_bytes_per_pixel ... ok
[INFO] [stdout] test api::gamut_tests::lc_plane::out_of_gamut_pixels_are_transparent ... ok
[INFO] [stdout] test api::gamut_tests::lightness_strip::out_of_gamut_pixels_are_transparent ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_display_ratio_double_a ... ok
[INFO] [stdout] test api::neutral_tests::generate_neutral_ramp_threads_the_chroma_bow_through_to_the_palette ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_display_ratio_fail ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_rating_double_a ... ok
[INFO] [stdout] test api::neutral_tests::tint_neutrals_layers_source_hue_onto_color_input_endpoints ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_rating_fail ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_rating_success_opposite ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_display_ratio_success ... ok
[INFO] [stdout] test api::generate_tests::generate_pair_returns_a_light_palette_matching_generate_and_an_anchored_dark_palette ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_rating_success ... ok
[INFO] [stdout] test api::neutral_tests::tint_neutrals_duotone_layers_two_hues_onto_color_input_endpoints ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_ratio_success_opposite ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_ratio_fail ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_ratio_success ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_ratio_double_a ... ok
[INFO] [stdout] test audit::contrast_tests::test_contrast_result_display_ratio_success_opposite ... ok
[INFO] [stdout] test audit::foreground_tests::should_fall_back_to_a_pure_primitive_when_soft_primitives_cannot_meet_aa ... ok
[INFO] [stdout] test api::gamut_tests::lh_plane::display_p3_paints_more_of_the_plane_than_srgb ... ok
[INFO] [stdout] test audit::foreground_tests::should_pick_black_in_fallback_when_black_has_higher_ratio ... ok
[INFO] [stdout] test audit::foreground_tests::should_pick_white_in_fallback_when_neither_passes_aa ... ok
[INFO] [stdout] test audit::foreground_tests::should_report_the_source_tier_that_produced_each_recommendation ... ok
[INFO] [stdout] test audit::foreground_tests::should_return_light_candidate_foreground_when_background_is_very_dark_and_dark_fails ... ok
[INFO] [stdout] test audit::foreground_tests::should_use_custom_black_in_fallback_path_when_provided ... ok
[INFO] [stdout] test audit::foreground_tests::should_return_black_when_dark_candidate_fails_and_black_beats_white ... ok
[INFO] [stdout] test color::input_tests::hex_without_hash_prefix_converts_pure_red_to_oklch ... ok
[INFO] [stdout] test audit::foreground_tests::should_return_dark_candidate_foreground_when_background_is_very_light ... ok
[INFO] [stdout] test color::input_tests::hsl_pure_red_matches_hex_pure_red ... ok
[INFO] [stdout] test color::input_tests::rgb_pure_green_converts_to_oklch ... ok
[INFO] [stdout] test color::input_tests::invalid_css_string_returns_invalid_css_error ... ok
[INFO] [stdout] test color::input_tests::rgb_pure_red_matches_hex_pure_red ... ok
[INFO] [stdout] test audit::foreground_tests::should_use_custom_white_when_provided_against_a_very_dark_background ... ok
[INFO] [stdout] test audit::foreground_tests::should_select_white_as_clarity_winner_when_both_pass_as_double_a ... ok
[INFO] [stdout] test audit::foreground_tests::should_return_white_foreground_when_background_is_very_dark ... ok
[INFO] [stdout] test audit::foreground_tests::should_use_harmonious_candidate_even_when_the_dark_candidate_is_lighter_than_the_background ... ok
[INFO] [stdout] test color::output_tests::format_oklch_alpha_appends_the_alpha_channel ... ok
[INFO] [stdout] test color::output_tests::format_oklch_alpha_rounds_every_component_including_alpha ... ok
[INFO] [stdout] test color::input_tests::oklch_variant_is_passthrough ... ok
[INFO] [stdout] test color::input_tests::hex_with_hash_prefix_converts_pure_red_to_oklch ... ok
[INFO] [stdout] test color::output_tests::oklch_to_hex_formats_pure_white ... ok
[INFO] [stdout] test color::output_tests::oklch_to_rgb_clamps_out_of_gamut_channels_into_range ... ok
[INFO] [stdout] test color::output_tests::oklch_to_hex_formats_pure_black ... ok
[INFO] [stdout] test color::output_tests::oklch_to_rgb_converts_pure_white ... ok
[INFO] [stdout] test color::output_tests::oklch_to_hex_round_trips_a_known_brand_colour ... ok
[INFO] [stdout] test color::p3_tests::oklch_to_p3_rgb_clamps_out_of_p3_channels_into_range ... ok
[INFO] [stdout] test color::p3_tests::oklch_to_p3_rgb_maps_srgb_red_into_p3_coordinates ... ok
[INFO] [stdout] test neutral::derive_tests::should_clamp_negative_softness_to_zero ... ok
[INFO] [stdout] test neutral::derive_tests::should_return_pure_white_and_safe_near_black_when_softness_is_zero ... ok
[INFO] [stdout] test color::output_tests::oklch_to_rgb_converts_pure_black ... ok
[INFO] [stdout] test neutral::derive_tests::should_tint_and_soften_both_endpoints_when_softness_is_positive ... ok
[INFO] [stdout] test neutral::ramp_tests::should_interpolate_hue_along_the_shortest_arc_across_the_zero_degree_seam ... ok
[INFO] [stdout] test neutral::ramp_tests::should_crest_mid_tone_chroma_above_the_linear_lerp_when_bow_is_positive ... ok
[INFO] [stdout] test neutral::ramp_tests::should_pin_endpoint_hues_to_the_respective_anchors_when_they_differ ... ok
[INFO] [stdout] test neutral::ramp_tests::should_decrease_lightness_monotonically_across_the_ramp ... ok
[INFO] [stdout] test neutral::tint_tests::should_clamp_strength_to_the_unit_range ... ok
[INFO] [stdout] test neutral::ramp_tests::should_force_chroma_to_zero_at_every_step_in_achromatic_tint_mode ... ok
[INFO] [stdout] test neutral::tint_tests::should_layer_source_hue_and_chroma_onto_endpoints_when_strength_is_positive ... ok
[INFO] [stdout] test neutral::ramp_tests::should_return_ten_labelled_swatches_with_endpoints_pinned_to_soft_white_and_soft_black ... ok
[INFO] [stdout] test neutral::ramp_tests::should_use_step_50_as_the_harmonious_light_foreground_for_step_900 ... ok
[INFO] [stdout] test neutral::ramp_tests::should_clamp_bow_to_the_unit_range ... ok
[INFO] [stdout] test neutral::tint_tests::should_match_the_single_source_tint_when_both_anchors_coincide ... ok
[INFO] [stdout] test neutral::tint_tests::should_preserve_endpoint_lightness_and_stay_achromatic_when_strength_is_zero ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::dark_palette_generation::dark_palette_preserves_the_brand_color_exactly_at_step_500 ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::dark_padding::should_make_dark_end_of_scale_lighter_with_negative_dark_padding ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::light_padding::should_make_light_end_of_scale_darker_with_negative_light_padding ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::dark_palette_generation::dark_palette_for_a_pale_brand_has_reliably_dark_backgrounds_and_light_text ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::dark_palette_generation::dark_palette_light_padding_reshapes_the_steps_between_the_anchors ... ok
[INFO] [stdout] test neutral::ramp_tests::should_space_lightness_along_the_normalised_perceptual_curve ... ok
[INFO] [stdout] test neutral::ramp_tests::should_interpolate_chroma_between_endpoints_in_inherit_tint_mode ... ok
[INFO] [stdout] test color::output_tests::format_oklch_renders_a_css_oklch_string ... ok
[INFO] [stdout] test color::output_tests::format_oklch_rounds_components_to_four_decimal_places ... ok
[INFO] [stdout] test neutral::tint_tests::should_take_highlight_hue_on_the_white_end_and_shadow_hue_on_the_black_end ... ok
[INFO] [stdout] test color::output_tests::oklch_to_rgb_converts_pure_red ... ok
[INFO] [stdout] test color::p3_tests::oklch_to_p3_rgb_converts_pure_black ... ok
[INFO] [stdout] test color::p3_tests::oklch_to_p3_rgb_converts_pure_white ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::max_chroma_hue_coverage::should_generate_palette_for_edge_case_hue ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::max_chroma_hue_coverage::should_generate_palette_for_magenta_hue ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::dark_padding::should_make_dark_end_of_scale_darker_with_positive_dark_padding ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::light_padding::should_make_light_end_of_scale_lighter_with_positive_light_padding ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::max_chroma_hue_coverage::should_generate_palette_for_purple_hue ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::validate_reports_error_at_correct_index ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::every_palette_swatch_contains_metadata ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::default_lightness_curve_is_target_lightness ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::palette_stores_lightness_curve_used_to_generate_it ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::validate_accepts_all_same_values ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::validate_accepts_arbitrary_valid_lightness_array ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::validate_rejects_multiple_out_of_range_values ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::validate_rejects_value_above_one ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::lightness_curve_tests::validate_rejects_value_below_zero ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::metadata_limits_vary_by_hue ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::palette_struct_tests::palette_struct_contains_swatches ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::palette_struct_tests::palette_struct_exposes_metadata_fields ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::swatch_label::should_create_label_from_str ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::swatch_colour_format_tests::swatch_step_from_label_carries_hex_rgb_and_oklch_colour_forms ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::swatch_label::should_render_a_numeric_label_as_its_digits ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::swatch_colour_format_tests::swatch_carries_the_foreground_source_that_was_chosen ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::swatch_label::should_render_a_named_label_as_its_name ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::palette_generation::should_preserve_the_base_500_color_that_was_passed_in ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::swatch_colour_format_tests::generated_palette_swatches_carry_colour_format_fields ... ok
[INFO] [stdout] test palette::generator_tests::generator_tests::metadata_tests::swatch_colour_format_tests::swatch_best_foreground_carries_colour_format_fields ... ok
[INFO] [stdout] test api::gamut_tests::hue_strip::buffer_is_four_bytes_per_pixel ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/harmoni_wasm-66e623be79398cc7)
[INFO] [stdout] test neutral::derive_tests::should_clamp_softness_above_one_to_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 144 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test types::tests::alpha_swatch_converts_from_core_preserving_all_fields ... ok
[INFO] [stdout] test types::tests::foreground_source_converts_every_variant_from_core ... ok
[INFO] [stdout] test types::tests::alpha_ramp_converts_from_a_core_swatch_vec ... ok
[INFO] [stdout] test types::tests::gamut_display_p3_round_trips_through_conversions ... ok
[INFO] [stdout] test types::tests::contrast_result_converts_from_core_preserving_all_fields ... ok
[INFO] [stdout] test types::tests::gamut_srgb_round_trips_through_conversions ... ok
[INFO] [stdout] test types::tests::soft_neutrals_converts_from_core_with_colour_format_fields ... ok
[INFO] [stdout] test types::tests::palette_set_converts_from_core_preserving_both_palettes ... ok
[INFO] [stdout] test types::tests::soft_neutrals_converts_from_core_preserving_oklch_components ... ok
[INFO] [stdout] test types::tests::swatch_label_number_converts_from_core ... ok
[INFO] [stdout] test types::tests::swatch_converts_from_core_preserving_foreground_source ... ok
[INFO] [stdout] test types::tests::tint_mode_achromatic_round_trips_through_conversions ... ok
[INFO] [stdout] test types::tests::tint_mode_inherit_round_trips_through_conversions ... ok
[INFO] [stdout] test types::tests::swatch_label_name_converts_from_core ... ok
[INFO] [stdout] test types::tests::swatch_step_converts_from_core_preserving_all_fields ... ok
[INFO] [stdout] test types::tests::swatch_converts_from_core_preserving_colour_format_fields ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/primitiv_cli-6f4b442661de9d34)
[INFO] [stdout] 
[INFO] [stdout] running 364 tests
[INFO] [stdout] test cli_tests::parses_add_all_with_no_component_names ... ok
[INFO] [stdout] test cli_tests::parses_add_with_a_registry_override ... ok
[INFO] [stdout] test cli_tests::parses_add_with_a_path_override ... ok
[INFO] [stdout] test cli_tests::parses_add_with_the_force_flag ... ok
[INFO] [stdout] test cli_tests::parses_add_with_a_format_override ... ok
[INFO] [stdout] test cli_tests::parses_add_with_the_json_and_dry_run_flags_among_the_components ... ok
[INFO] [stdout] test cli_tests::parses_add_with_the_styles_only_flag ... ok
[INFO] [stdout] test cli_tests::parses_an_explicit_css_format ... ok
[INFO] [stdout] test cli_tests::parses_an_explicit_scss_format ... ok
[INFO] [stdout] test cli_tests::parses_an_explicit_tailwind_format ... ok
[INFO] [stdout] test cli_tests::parses_every_init_override_flag ... ok
[INFO] [stdout] test cli_tests::parses_explicit_styles_re_enabling_a_prior_no_styles ... ok
[INFO] [stdout] test cli_tests::parses_the_add_command_with_one_component ... ok
[INFO] [stdout] test cli_tests::parses_bare_tokens_with_no_flags ... ok
[INFO] [stdout] test cli_tests::parses_the_add_command_with_several_components ... ok
[INFO] [stdout] test cli_tests::parses_the_init_command_with_defaults ... ok
[INFO] [stdout] test cli_tests::parses_the_list_command ... ok
[INFO] [stdout] test cli_tests::parses_the_list_command_with_json ... ok
[INFO] [stdout] test cli_tests::parses_the_tokens_command_with_out ... ok
[INFO] [stdout] test cli_tests::parses_the_tokens_command_with_an_explicit_scss_format ... ok
[INFO] [stdout] test cli_tests::rejects_a_flag_with_no_value ... ok
[INFO] [stdout] test cli_tests::rejects_add_combining_all_with_component_names ... ok
[INFO] [stdout] test cli_tests::rejects_add_path_with_no_value ... ok
[INFO] [stdout] test cli_tests::parses_the_theme_command_with_brand_and_out ... ok
[INFO] [stdout] test cli_tests::rejects_add_with_no_components ... ok
[INFO] [stdout] test cli_tests::rejects_an_empty_argument_list ... ok
[INFO] [stdout] test cli_tests::parses_add_with_the_no_styles_flag ... ok
[INFO] [stdout] test cli_tests::rejects_an_unexpected_argument_to_theme ... ok
[INFO] [stdout] test cli_tests::rejects_an_unexpected_argument_to_list ... ok
[INFO] [stdout] test cli_tests::rejects_an_unknown_format ... ok
[INFO] [stdout] test cli_tests::rejects_an_unexpected_argument_to_tokens ... ok
[INFO] [stdout] test cli_tests::parses_add_with_the_no_wiring_flag ... ok
[INFO] [stdout] test cli_tests::rejects_add_registry_with_no_value ... ok
[INFO] [stdout] test cli_tests::rejects_an_unknown_format_for_init ... ok
[INFO] [stdout] test cli_tests::rejects_theme_missing_brand ... ok
[INFO] [stdout] test cli_tests::rejects_add_format_with_no_value ... ok
[INFO] [stdout] test cli_tests::rejects_an_unknown_command ... ok
[INFO] [stdout] test cli_tests::rejects_an_unexpected_flag_to_add ... ok
[INFO] [stdout] test cli_tests::rejects_an_unknown_add_format ... ok
[INFO] [stdout] test cli_tests::rejects_an_unknown_format_for_tokens ... ok
[INFO] [stdout] test cli_tests::rejects_init_value_flags_with_no_value ... ok
[INFO] [stdout] test cli_tests::rejects_theme_missing_out ... ok
[INFO] [stdout] test cli_tests::rejects_an_unexpected_argument_to_init ... ok
[INFO] [stdout] test cli_tests::rejects_add_combining_styles_only_and_no_styles ... ok
[INFO] [stdout] test commands::add_tests::add_omits_styles_import_when_no_styles_flag_is_set ... ok
[INFO] [stdout] test commands::add_tests::add_does_not_overwrite_an_existing_token_file ... ok
[INFO] [stdout] test commands::add_tests::all_resolves_every_component_in_the_registry ... ok
[INFO] [stdout] test commands::add_tests::add_surfaces_a_stdout_failure_when_generating_token_notice ... ok
[INFO] [stdout] test commands::add_tests::add_surfaces_a_config_read_failure_when_checking_for_styles ... ok
[INFO] [stdout] test commands::add_tests::add_surfaces_a_create_dir_failure_when_generating_the_token_layer ... ok
[INFO] [stdout] test commands::add_tests::classify_registry_routes_each_ref_form ... ok
[INFO] [stdout] test commands::add_tests::barrel_write_failure_surfaces_as_io_error ... ok
[INFO] [stdout] test commands::add_tests::add_skips_token_generation_when_no_styles_flag_is_set ... ok
[INFO] [stdout] test commands::add_tests::add_styles_import_correct_when_no_alias_detected ... ok
[INFO] [stdout] test commands::add_tests::an_interactive_keep_preserves_a_consumer_edited_file ... ok
[INFO] [stdout] test commands::add_tests::add_prepends_styles_import_in_tsx_wrapper ... ok
[INFO] [stdout] test commands::add_tests::add_does_not_prepend_import_in_recipe_file ... ok
[INFO] [stdout] test commands::add_tests::does_not_copy_styles_when_the_project_opts_out ... ok
[INFO] [stdout] test commands::add_tests::does_not_install_under_dry_run ... ok
[INFO] [stdout] test commands::add_tests::does_not_copy_styles_when_there_is_no_project_config ... ok
[INFO] [stdout] test commands::add_tests::does_not_install_when_no_component_needs_a_package ... ok
[INFO] [stdout] test commands::add_tests::add_writes_barrel_file_in_components_dir ... ok
[INFO] [stdout] test commands::add_tests::barrel_not_written_when_no_tsx_wrappers_in_surface ... ok
[INFO] [stdout] test commands::add_tests::dry_run_config_read_failure_surfaces_as_io_error ... ok
[INFO] [stdout] test commands::add_tests::dry_run_has_no_refresh_plan_when_no_config_is_present ... ok
[INFO] [stdout] test commands::add_tests::dry_run_does_not_print_the_wiring_snippet ... ok
[INFO] [stdout] test commands::add_tests::copies_the_react_surface_into_the_alias_resolved_components_directory ... ok
[INFO] [stdout] test commands::add_tests::dry_run_has_no_refresh_plan_when_no_styles_flag_is_set ... ok
[INFO] [stdout] test commands::add_tests::deduplicates_a_component_requested_and_pulled_in_as_a_dependency ... ok
[INFO] [stdout] test commands::add_tests::an_interactive_overwrite_replaces_a_consumer_edited_file ... ok
[INFO] [stdout] test commands::add_tests::dry_run_has_no_refresh_plan_when_styles_are_disabled_in_config ... ok
[INFO] [stdout] test commands::add_tests::dry_run_refresh_plan_covers_stylesheet_only_when_there_is_no_react_surface ... ok
[INFO] [stdout] test commands::add_tests::dry_run_appends_the_refresh_plan_with_per_file_status ... ok
[INFO] [stdout] test commands::add_tests::dry_run_surfaces_a_components_dir_detection_failure_in_planned_files ... ok
[INFO] [stdout] test commands::add_tests::dry_run_surfaces_a_classify_read_failure ... ok
[INFO] [stdout] test commands::add_tests::dry_run_surfaces_a_config_read_failure_in_planned_files ... ok
[INFO] [stdout] test commands::add_tests::dry_run_surfaces_a_lock_read_failure ... ok
[INFO] [stdout] test commands::add_tests::errors_on_a_malformed_project_config_during_style_copy ... ok
[INFO] [stdout] test commands::add_tests::errors_when_a_dependency_is_missing_from_the_registry ... ok
[INFO] [stdout] test commands::add_tests::dry_run_surfaces_a_stdout_failure_writing_the_refresh_plan ... ok
[INFO] [stdout] test commands::add_tests::errors_on_a_malformed_registry_index ... ok
[INFO] [stdout] test commands::add_tests::dry_run_surfaces_a_current_dir_failure ... ok
[INFO] [stdout] test commands::add_tests::dry_run_with_force_labels_an_edited_file_as_overwrite ... ok
[INFO] [stdout] test commands::add_tests::errors_when_a_requested_component_is_unknown ... ok
[INFO] [stdout] test commands::add_tests::errors_when_style_package_install_fails ... ok
[INFO] [stdout] test commands::add_tests::errors_when_the_registry_cannot_serve_a_react_file ... ok
[INFO] [stdout] test commands::add_tests::errors_when_the_registry_cannot_serve_a_style_file ... ok
[INFO] [stdout] test commands::add_tests::installs_the_packages_with_the_detected_manager ... ok
[INFO] [stdout] test commands::add_tests::errors_when_the_registry_is_unavailable ... ok
[INFO] [stdout] test commands::add_tests::barrel_file_includes_all_installed_components ... ok
[INFO] [stdout] test commands::add_tests::installs_the_pinned_version_when_a_component_declares_one ... ok
[INFO] [stdout] test commands::add_tests::copies_the_contract_into_the_components_directory ... ok
[INFO] [stdout] test commands::add_tests::errors_when_the_package_manager_fails ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_confirm_error_surfaces_as_io_error ... ok
[INFO] [stdout] test commands::add_tests::add_prints_a_notice_when_generating_the_token_layer ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_decline_stdout_error_surfaces_as_io ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_read_error_on_entry_css_surfaces_as_io ... ok
[INFO] [stdout] test commands::add_tests::an_interactive_add_surfaces_a_prompt_failure_as_io ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_stdout_error_on_not_found_snippet_surfaces_as_io ... ok
[INFO] [stdout] test commands::add_tests::css_format_add_does_not_print_the_wiring_snippet ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_write_failure_surfaces_as_io_error ... ok
[INFO] [stdout] test commands::add_tests::add_generates_token_layer_when_path_has_no_directory_component ... ok
[INFO] [stdout] test commands::add_tests::add_styles_import_uses_scss_extension_when_format_is_scss ... ok
[INFO] [stdout] test commands::add_tests::copies_the_configured_format_stylesheet_into_the_styles_path ... ok
[INFO] [stdout] test commands::add_tests::lists_the_npm_packages_to_ensure_sorted_and_deduplicated ... ok
[INFO] [stdout] test commands::add_tests::no_styles_installs_the_package_without_copying_styles ... ok
[INFO] [stdout] test commands::add_tests::no_styles_skips_style_package_install ... ok
[INFO] [stdout] test commands::add_tests::lists_the_pinned_install_spec_in_the_plan ... ok
[INFO] [stdout] test commands::add_tests::no_styles_flag_suppresses_the_wiring_snippet ... ok
[INFO] [stdout] test commands::add_tests::no_wiring_stdout_error_surfaces_as_io ... ok
[INFO] [stdout] test commands::add_tests::installs_style_packages_when_styles_are_enabled ... ok
[INFO] [stdout] test commands::add_tests::pulls_in_transitive_component_dependencies ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_json_mode_skips_patch_when_entry_css_found ... ok
[INFO] [stdout] test commands::add_tests::renders_json_dry_run_with_a_files_array_when_styles_are_configured ... ok
[INFO] [stdout] test commands::add_tests::renders_json_with_an_empty_packages_array_when_there_are_none ... ok
[INFO] [stdout] test commands::add_tests::renders_json_without_a_files_key_on_a_non_dry_run ... ok
[INFO] [stdout] test commands::add_tests::renders_the_plan_as_json_with_components_and_packages ... ok
[INFO] [stdout] test commands::add_tests::reports_a_single_resolved_component ... ok
[INFO] [stdout] test commands::add_tests::reports_several_resolved_components_sorted_and_aligned ... ok
[INFO] [stdout] test commands::add_tests::add_generates_the_token_layer_when_the_configured_path_does_not_exist ... ok
[INFO] [stdout] test commands::add_tests::json_flag_suppresses_the_wiring_snippet ... ok
[INFO] [stdout] test commands::add_tests::force_overwrites_a_consumer_edited_file_on_re_add ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_directory_creation_failure_during_style_copy ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_add_is_a_noop_when_wiring_already_present ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_add_prints_snippet_when_entry_css_not_found ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_failure_to_read_an_existing_target_during_refresh ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_failure_to_read_the_lock ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_write_failure_during_style_copy ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_stdout_failure ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_failure_to_read_the_working_directory_before_installing ... ok
[INFO] [stdout] test commands::add_tests::surfaces_a_failure_to_resolve_the_components_directory ... ok
[INFO] [stdout] test commands::add_tests::records_installed_components_in_the_lock ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_add_prints_snippet_when_consumer_declines ... ok
[INFO] [stdout] test commands::add_tests::keeps_a_consumer_edited_file_on_re_add ... ok
[INFO] [stdout] test commands::add_tests::falls_back_to_src_components_directory_without_a_detectable_alias ... ok
[INFO] [stdout] test commands::add_tests::no_wiring_flag_prints_the_snippet_after_a_tailwind_copy ... ok
[INFO] [stdout] test commands::add_tests::records_copied_files_in_the_lock ... ok
[INFO] [stdout] test commands::add_tests::non_interactive_tailwind_add_prints_the_snippet ... ok
[INFO] [stdout] test commands::init_tests::init_surfaces_a_token_dir_creation_failure ... ok
[INFO] [stdout] test commands::init_tests::init_does_not_emit_the_token_layer_when_styles_are_disabled ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_json_mode_skips_snippet_when_no_entry_css ... ok
[INFO] [stdout] test commands::add_tests::styles_only_copies_styles_without_installing_the_package ... ok
[INFO] [stdout] test commands::init_tests::detects_the_components_alias_from_tsconfig_when_no_flag_is_given ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_surfaces_a_brand_prompt_failure ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_surfaces_a_path_prompt_failure ... ok
[INFO] [stdout] test commands::add_tests::keeps_every_components_contract_distinct_when_adding_several_at_once ... ok
[INFO] [stdout] test commands::add_tests::the_path_flag_overrides_the_config_styles_destination ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_surfaces_a_styles_prompt_failure ... ok
[INFO] [stdout] test commands::init_tests::reflects_every_overridden_choice_in_the_written_config ... ok
[INFO] [stdout] test commands::init_tests::refuses_to_overwrite_an_existing_config ... ok
[INFO] [stdout] test commands::init_tests::refuses_to_run_outside_a_node_project ... ok
[INFO] [stdout] test commands::init_tests::surfaces_a_failure_to_detect_the_alias ... ok
[INFO] [stdout] test commands::init_tests::surfaces_a_failure_to_read_the_working_directory ... ok
[INFO] [stdout] test commands::init_tests::surfaces_a_write_failure ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_surfaces_an_alias_prompt_failure ... ok
[INFO] [stdout] test commands::add_tests::interactive_tailwind_add_patches_entry_css_on_confirm ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_surfaces_a_format_prompt_failure ... ok
[INFO] [stdout] test commands::init_tests::an_explicit_alias_flag_wins_over_detection ... ok
[INFO] [stdout] test commands::list_tests::errors_on_a_malformed_index ... ok
[INFO] [stdout] test commands::list_tests::errors_when_the_registry_is_unavailable ... ok
[INFO] [stdout] test commands::list_tests::marks_a_component_installed_from_the_lock ... ok
[INFO] [stdout] test commands::list_tests::renders_a_component_table_to_stdout ... ok
[INFO] [stdout] test commands::list_tests::surfaces_a_failure_to_read_the_lock ... ok
[INFO] [stdout] test commands::add_tests::styles_only_still_installs_style_packages ... ok
[INFO] [stdout] test commands::list_tests::streams_the_raw_index_as_json ... ok
[INFO] [stdout] test commands::list_tests::surfaces_a_stdout_failure_rendering_the_table ... ok
[INFO] [stdout] test commands::list_tests::surfaces_a_stdout_failure_streaming_json ... ok
[INFO] [stdout] test commands::list_tests::surfaces_a_failure_to_read_the_working_directory ... ok
[INFO] [stdout] test commands::theme_tests::surfaces_an_invalid_brand_colour ... ok
[INFO] [stdout] test commands::theme_tests::surfaces_a_write_failure ... ok
[INFO] [stdout] test commands::theme_tests::surfaces_an_invalid_brand_colour_in_the_scss_path ... ok
[INFO] [stdout] test commands::theme_tests::surfaces_an_invalid_brand_colour_in_the_tailwind_path ... ok
[INFO] [stdout] test commands::theme_tests::writes_the_brand_theme_css_to_the_out_path ... ok
[INFO] [stdout] test commands::theme_tests::writes_the_brand_theme_scss_when_the_format_is_scss ... ok
[INFO] [stdout] test commands::theme_tests::writes_the_brand_theme_tailwind_when_the_format_is_tailwind ... ok
[INFO] [stdout] test commands::add_tests::the_registry_override_fetches_from_an_http_url ... ok
[INFO] [stdout] test commands::tokens_tests::errors_when_out_is_omitted_and_the_working_directory_is_unavailable ... ok
[INFO] [stdout] test commands::tokens_tests::errors_on_a_malformed_config_even_when_out_is_given ... ok
[INFO] [stdout] test commands::add_tests::the_format_flag_overrides_the_config_stylesheet_format ... ok
[INFO] [stdout] test commands::init_tests::init_emits_the_token_layer_when_styles_are_enabled ... ok
[INFO] [stdout] test commands::init_tests::keeps_the_css_extension_for_the_tailwind_token_layer ... ok
[INFO] [stdout] test commands::init_tests::overwrites_an_existing_config_when_forced ... ok
[INFO] [stdout] test commands::init_tests::init_surfaces_a_token_layer_write_failure ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_prompts_for_the_components_alias_pre_filled_with_detection ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_falls_back_to_css_for_an_unrecognised_format ... ok
[INFO] [stdout] test commands::init_tests::the_yes_flag_accepts_the_defaults_without_prompting ... ok
[INFO] [stdout] test commands::tokens_tests::surfaces_a_base_companion_write_failure ... ok
[INFO] [stdout] test commands::init_tests::writes_a_default_primitiv_json_to_the_working_directory ... ok
[INFO] [stdout] test commands::tokens_tests::surfaces_a_stdout_write_failure ... ok
[INFO] [stdout] test config_tests::should_error_when_the_document_is_not_valid_json ... ok
[INFO] [stdout] test config_tests::should_error_with_the_search_root_when_no_config_exists_anywhere ... ok
[INFO] [stdout] test config_tests::should_parse_a_full_primitiv_json_document ... ok
[INFO] [stdout] test config_tests::should_propagate_a_read_error_other_than_not_found ... ok
[INFO] [stdout] test config_tests::should_resolve_a_config_in_the_starting_directory ... ok
[INFO] [stdout] test commands::add_tests::the_registry_override_reads_from_a_repo_local_directory ... ok
[INFO] [stdout] test config_tests::try_resolve_propagates_a_read_error_other_than_not_found ... ok
[INFO] [stdout] test config_tests::try_resolve_returns_none_when_no_config_exists ... ok
[INFO] [stdout] test config_tests::should_walk_up_to_a_parent_directory_to_find_the_config ... ok
[INFO] [stdout] test config_tests::try_resolve_returns_the_config_when_one_is_found ... ok
[INFO] [stdout] test commands::init_tests::interactive_init_prompts_for_each_omitted_choice ... ok
[INFO] [stdout] test detect_tests::accepts_a_target_without_a_leading_dot_slash ... ok
[INFO] [stdout] test detect_tests::accepts_a_next_js_root_without_a_src_dir ... ok
[INFO] [stdout] test config_tests::try_resolve_still_errors_on_a_malformed_config ... ok
[INFO] [stdout] test commands::tokens_tests::defaults_the_format_to_css_when_omitted_and_no_config_exists ... ok
[INFO] [stdout] test detect_tests::derives_the_components_alias_from_a_root_src_mapping ... ok
[INFO] [stdout] test detect_tests::honours_a_non_at_prefix ... ok
[INFO] [stdout] test detect_tests::ignores_a_mapping_that_does_not_resolve_to_the_source_root ... ok
[INFO] [stdout] test detect_tests::ignores_a_non_wildcard_alias_key ... ok
[INFO] [stdout] test detect_tests::prefers_tsconfig_even_when_it_carries_no_alias ... ok
[INFO] [stdout] test detect_tests::reads_the_alias_from_tsconfig_in_the_directory ... ok
[INFO] [stdout] test detect_tests::resolves_a_next_js_root_mapping_to_the_components_directory ... ok
[INFO] [stdout] test detect_tests::falls_back_to_jsconfig_when_tsconfig_is_absent ... ok
[INFO] [stdout] test detect_tests::reads_the_components_path_from_tsconfig_in_the_directory ... ok
[INFO] [stdout] test detect_tests::returns_none_for_a_config_that_does_not_parse ... ok
[INFO] [stdout] test detect_tests::returns_none_when_neither_config_exists ... ok
[INFO] [stdout] test detect_tests::resolves_to_none_when_there_is_no_root_mapping ... ok
[INFO] [stdout] test detect_tests::returns_none_when_there_are_no_compiler_options ... ok
[INFO] [stdout] test detect_tests::returns_none_when_there_are_no_paths ... ok
[INFO] [stdout] test detect_tests::surfaces_a_failure_to_read_a_config ... ok
[INFO] [stdout] test detect_tests::surfaces_a_failure_to_read_a_config_when_resolving_the_path ... ok
[INFO] [stdout] test detect_tests::resolves_a_root_src_mapping_to_the_src_components_directory ... ok
[INFO] [stdout] test error_tests::maps_each_variant_to_a_stable_exit_code ... ok
[INFO] [stdout] test error_tests::renders_a_config_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_a_not_found_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_a_conflict_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_a_registry_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_a_project_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_a_usage_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_an_install_message_verbatim ... ok
[INFO] [stdout] test error_tests::renders_an_invalid_colour_with_the_offending_value ... ok
[INFO] [stdout] test error_tests::renders_an_io_error_through_its_own_display ... ok
[INFO] [stdout] test lock_tests::classify_returns_new_when_the_file_does_not_exist ... ok
[INFO] [stdout] test lock_tests::classify_returns_unchanged_when_disk_content_matches_the_lock ... ok
[INFO] [stdout] test lock_tests::classify_surfaces_a_read_failure_as_io_error ... ok
[INFO] [stdout] test lock_tests::hashes_a_byte_to_its_known_fnv1a_vector ... ok
[INFO] [stdout] test lock_tests::hashes_the_empty_input_to_the_fnv_offset_basis ... ok
[INFO] [stdout] test lock_tests::parses_a_malformed_lock_as_empty ... ok
[INFO] [stdout] test lock_tests::parses_recorded_components_from_a_lock ... ok
[INFO] [stdout] test lock_tests::reads_a_missing_lock_as_empty ... ok
[INFO] [stdout] test lock_tests::classify_returns_edited_when_disk_content_differs_from_the_lock ... ok
[INFO] [stdout] test lock_tests::parses_a_lock_into_its_file_hashes ... ok
[INFO] [stdout] test lock_tests::reads_back_a_written_lock ... ok
[INFO] [stdout] test lock_tests::records_installed_component_names_sorted_in_the_lock ... ok
[INFO] [stdout] test lock_tests::renders_an_empty_lock ... ok
[INFO] [stdout] test lock_tests::renders_recorded_components_before_the_files ... ok
[INFO] [stdout] test lock_tests::renders_recorded_files_sorted_by_path ... ok
[INFO] [stdout] test lock_tests::surfaces_a_non_not_found_read_error ... ok
[INFO] [stdout] test lock_tests::surfaces_a_write_failure ... ok
[INFO] [stdout] test package_manager_tests::builds_an_add_argument_list_for_pnpm ... ok
[INFO] [stdout] test detect_tests::ignores_a_mapping_with_no_targets ... ok
[INFO] [stdout] test package_manager_tests::defaults_to_npm_when_no_lockfile_is_present ... ok
[INFO] [stdout] test commands::tokens_tests::inlines_the_base_layer_when_streaming_to_stdout ... ok
[INFO] [stdout] test package_manager_tests::detects_bun_from_its_lockfile ... ok
[INFO] [stdout] test package_manager_tests::detects_npm_from_its_lockfile_skipping_the_absent_ones ... ok
[INFO] [stdout] test package_manager_tests::detects_pnpm_from_its_lockfile ... ok
[INFO] [stdout] test commands::tokens_tests::surfaces_a_write_failure ... ok
[INFO] [stdout] test package_manager_tests::builds_an_install_argument_list_for_npm ... ok
[INFO] [stdout] test package_manager_tests::detects_yarn_from_its_lockfile ... ok
[INFO] [stdout] test package_manager_tests::maps_each_manager_to_its_program_name ... ok
[INFO] [stdout] test package_manager_tests::prefers_pnpm_over_npm_when_both_lockfiles_exist ... ok
[INFO] [stdout] test ports::fs_tests::in_memory_fs_can_fail_create_dir_all ... ok
[INFO] [stdout] test ports::fs_tests::in_memory_fs_can_fail_current_dir ... ok
[INFO] [stdout] test ports::fs_tests::in_memory_fs_create_dir_all_succeeds ... ok
[INFO] [stdout] test ports::fs_tests::in_memory_fs_reports_its_configured_current_directory ... ok
[INFO] [stdout] test ports::fs_tests::os_fs_reports_the_process_current_directory ... ok
[INFO] [stdout] test ports::fs_tests::os_fs_writes_and_reads_back_a_real_file ... ok
[INFO] [stdout] test ports::fs_tests::should_error_with_not_found_when_reading_a_missing_path ... ok
[INFO] [stdout] test ports::fs_tests::os_fs_creates_a_nested_directory ... ok
[INFO] [stdout] test ports::fs_tests::should_fail_writes_to_a_path_marked_as_failing ... ok
[INFO] [stdout] test ports::fs_tests::should_report_a_path_as_existing_only_after_it_is_written ... ok
[INFO] [stdout] test ports::fs_tests::should_read_back_bytes_that_were_written ... ok
[INFO] [stdout] test ports::fs_tests::os_fs_reports_a_missing_path_as_absent ... ok
[INFO] [stdout] test ports::output_tests::fail_stdout_after_lets_n_writes_succeed_then_errors ... ok
[INFO] [stdout] test ports::output_tests::fail_stdout_after_zero_fails_on_the_very_next_write ... ok
[INFO] [stdout] test ports::output_tests::in_memory_output_captures_what_was_streamed ... ok
[INFO] [stdout] test ports::output_tests::os_stdout_accepts_a_write ... ok
[INFO] [stdout] test ports::process_tests::in_memory_runner_can_be_made_to_fail ... ok
[INFO] [stdout] test ports::process_tests::in_memory_runner_records_each_invocation ... ok
[INFO] [stdout] test ports::process_tests::os_runner_errors_when_the_program_cannot_be_spawned ... ok
[INFO] [stdout] test ports::output_tests::in_memory_output_can_fail_a_stream_write ... ok
[INFO] [stdout] test ports::process_tests::os_runner_errors_on_a_non_zero_exit ... ok
[INFO] [stdout] test ports::prompt_tests::an_empty_answer_keeps_the_edits ... ok
[INFO] [stdout] test ports::prompt_tests::confirm_ignores_case_and_whitespace ... ok
[INFO] [stdout] test ports::prompt_tests::empty_answer_resolves_to_the_default ... ok
[INFO] [stdout] test ports::prompt_tests::empty_confirm_answer_defaults_to_yes ... ok
[INFO] [stdout] test ports::prompt_tests::ignores_case_and_surrounding_whitespace ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_ask_fail_returns_error ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_can_be_made_to_fail ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_can_deny_confirm ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_confirm_fail_returns_error ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_confirms_yes_by_default ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_returns_a_scripted_answer_and_records_the_question ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_returns_its_scripted_decision_and_records_the_ask ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_answers_with_the_default_when_nothing_is_scripted ... ok
[INFO] [stdout] test ports::prompt_tests::in_memory_prompt_scripted_answers_are_consumed_in_order ... ok
[INFO] [stdout] test ports::prompt_tests::os_prompt_asks_and_returns_the_default_on_end_of_input ... ok
[INFO] [stdout] test ports::prompt_tests::os_prompt_confirms_on_end_of_input ... ok
[INFO] [stdout] test ports::process_tests::os_runner_succeeds_on_a_zero_exit ... ok
[INFO] [stdout] test ports::prompt_tests::parses_k_as_keep ... ok
[INFO] [stdout] test ports::prompt_tests::parses_n_as_confirm_no ... ok
[INFO] [stdout] test ports::prompt_tests::parses_o_as_overwrite ... ok
[INFO] [stdout] test ports::prompt_tests::parses_the_full_overwrite_word ... ok
[INFO] [stdout] test ports::prompt_tests::parses_y_as_confirm_yes ... ok
[INFO] [stdout] test ports::prompt_tests::parses_yes_as_confirm_yes ... ok
[INFO] [stdout] test ports::prompt_tests::resolve_answer_returns_the_trimmed_input ... ok
[INFO] [stdout] test ports::prompt_tests::unrecognised_confirm_input_defaults_to_yes ... ok
[INFO] [stdout] test ports::prompt_tests::unrecognised_input_keeps_the_edits ... ok
[INFO] [stdout] test ports::prompt_tests::whitespace_only_answer_resolves_to_the_default ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_a_component_file ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_reports_an_unknown_file_as_not_found ... ok
[INFO] [stdout] test ports::registry_tests::embedded_input_group_declares_its_input_component_dependency ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_every_file_every_component_declares ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_the_baked_in_index ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_the_field_files ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_the_input_files ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_the_input_group_files ... ok
[INFO] [stdout] test ports::prompt_tests::parses_no_as_confirm_no ... ok
[INFO] [stdout] test ports::registry_tests::every_embedded_component_stylesheet_declares_the_layer_order ... ok
[INFO] [stdout] test ports::registry_tests::in_memory_registry_can_fail ... ok
[INFO] [stdout] test ports::registry_tests::in_memory_registry_reports_an_unconfigured_file_as_not_found ... ok
[INFO] [stdout] test ports::registry_tests::in_memory_registry_serves_a_configured_file ... ok
[INFO] [stdout] test ports::registry_tests::https_registry_fetches_a_component_file_over_http ... ok
[INFO] [stdout] test ports::registry_tests::https_registry_maps_a_non_2xx_status_to_an_error ... ok
[INFO] [stdout] test ports::registry_tests::local_registry_reads_a_component_file_from_the_components_layout ... ok
[INFO] [stdout] test ports::registry_tests::local_registry_reports_a_missing_file_as_not_found ... ok
[INFO] [stdout] test ports::registry_tests::in_memory_registry_serves_its_configured_index ... ok
[INFO] [stdout] test ports::registry_tests::https_registry_fetches_the_index_over_http ... ok
[INFO] [stdout] test registry_tests::package_dep_spec_pins_a_version_when_declared_and_is_bare_otherwise ... ok
[INFO] [stdout] test registry_tests::parses_a_components_contract_file ... ok
[INFO] [stdout] test registry_tests::parses_a_components_format_independent_react_surface ... ok
[INFO] [stdout] test registry_tests::parses_a_versioned_npm_package_dependency_alongside_a_bare_one ... ok
[INFO] [stdout] test registry_tests::parses_each_components_npm_package_dependencies ... ok
[INFO] [stdout] test ports::registry_tests::embedded_registry_serves_the_structural_compound_files ... ok
[INFO] [stdout] test ports::registry_tests::local_registry_reads_the_index_from_its_base_directory ... ok
[INFO] [stdout] test registry_tests::errors_on_a_malformed_registry_index ... ok
[INFO] [stdout] test registry_tests::parses_each_components_per_format_style_files ... ok
[INFO] [stdout] test registry_tests::parses_each_components_transitive_component_dependencies ... ok
[INFO] [stdout] test run_tests::dispatches_the_add_command_and_reports_the_plan ... ok
[INFO] [stdout] test run_tests::dispatches_the_list_command_and_streams_the_registry ... ok
[INFO] [stdout] test registry_tests::parses_the_index_components_and_their_versions ... ok
[INFO] [stdout] test run_tests::propagates_a_parse_error ... ok
[INFO] [stdout] test wiring_tests::detects_both_lines_as_already_wired ... ok
[INFO] [stdout] test wiring_tests::empty_css_is_not_wired ... ok
[INFO] [stdout] test run_tests::dispatches_the_theme_command_and_writes_the_file ... ok
[INFO] [stdout] test wiring_tests::missing_dark_variant_is_not_wired ... ok
[INFO] [stdout] test wiring_tests::patch_adds_a_blank_line_between_snippet_and_original ... ok
[INFO] [stdout] test commands::tokens_tests::writes_the_css_base_companion_for_the_tailwind_format ... ok
[INFO] [stdout] test wiring_tests::missing_layer_order_is_not_wired ... ok
[INFO] [stdout] test wiring_tests::patch_prepends_snippet_to_existing_css ... ok
[INFO] [stdout] test wiring_tests::snippet_contains_the_dark_variant_remap ... ok
[INFO] [stdout] test wiring_tests::snippet_contains_the_layer_order_statement ... ok
[INFO] [stdout] test wiring_tests::patch_on_empty_content_is_just_the_snippet ... ok
[INFO] [stdout] test ports::prompt_tests::os_prompt_keeps_on_end_of_input ... ok
[INFO] [stdout] test commands::tokens_tests::writes_the_design_system_token_layer_as_css ... ok
[INFO] [stdout] test commands::tokens_tests::surfaces_a_write_failure_to_the_config_path ... ok
[INFO] [stdout] test commands::tokens_tests::streams_to_stdout_when_neither_out_nor_a_config_is_present ... ok
[INFO] [stdout] test commands::tokens_tests::writes_the_token_layer_as_a_tailwind_preset_when_the_format_is_tailwind ... ok
[INFO] [stdout] test commands::tokens_tests::falls_back_to_the_config_path_when_out_is_omitted ... ok
[INFO] [stdout] test commands::tokens_tests::defaults_the_format_from_the_config_when_it_is_omitted ... ok
[INFO] [stdout] test run_tests::dispatches_the_init_command_and_writes_the_config ... ok
[INFO] [stdout] test run_tests::dispatches_the_tokens_command_and_writes_the_file ... ok
[INFO] [stdout] test commands::tokens_tests::writes_the_base_companion_as_scss_for_the_scss_format ... ok
[INFO] [stdout] test commands::tokens_tests::writes_a_companion_base_stylesheet_imported_by_the_token_layer ... ok
[INFO] [stdout] test commands::tokens_tests::writes_the_token_layer_as_scss_when_the_format_is_scss ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 364 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s
[INFO] [stdout] 
[INFO] [stderr] Brand colour? (#0a7755) Apply wiring? [Y/n] button.tsx has local edits — [o]verwrite or [k]eep? (k)      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/primitiv-f3c4b11649074df5)
[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.rs (/opt/rustwide/target/debug/deps/cli-dd87ed82e5ae2b25)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test add_json_emits_the_structured_plan ... ok
[INFO] [stdout] test add_dry_run_emits_the_refresh_plan_when_styles_are_configured ... ok
[INFO] [stdout] test add_all_resolves_every_embedded_component ... ok
[INFO] [stdout] test add_dry_run_reports_the_resolved_plan_without_installing ... ok
[INFO] [stdout] test init_refuses_to_run_outside_a_node_project_and_exits_eight ... ok
[INFO] [stdout] test add_rejects_an_unknown_component_and_exits_nine ... ok
[INFO] [stdout] test list_json_streams_the_raw_registry_index ... ok
[INFO] [stdout] test list_marks_a_component_installed_from_the_lock_on_disk ... ok
[INFO] [stdout] test reports_a_usage_error_on_stderr_and_exits_two ... ok
[INFO] [stdout] test list_prints_the_registry_components ... ok
[INFO] [stdout] test writes_the_brand_theme_and_exits_zero ... ok
[INFO] [stdout] test add_registry_override_copies_from_a_repo_local_directory ... ok
[INFO] [stdout] test init_detects_the_components_alias_from_a_real_tsconfig ... ok
[INFO] [stdout] test tokens_writes_the_base_companion_next_to_the_token_layer ... ok
[INFO] [stdout] test tokens_emits_the_elevation_layer ... ok
[INFO] [stdout] test tokens_emits_the_code_only_motion_layer ... ok
[INFO] [stdout] test tokens_streams_the_layer_to_stdout_when_config_less ... ok
[INFO] [stdout] test add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode ... FAILED
[INFO] [stdout] test add_styles_only_copies_the_styled_surface_on_the_real_filesystem ... FAILED
[INFO] [stdout] test init_writes_a_primitiv_json_into_the_working_directory ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode' (2685) panicked at crates/primitiv-cli/tests/cli.rs:426:10:
[INFO] [stdout] Unexpected failure.
[INFO] [stdout] code=10
[INFO] [stdout] stderr=```"primitiv: failed to install class-variance-authority with npm: No such file or directory (os error 2)\n"```
[INFO] [stdout] command=`cd "/tmp/.tmpZK745g" && "/opt/rustwide/target/debug/primitiv" "add" "button" "--styles-only"`
[INFO] [stdout] code=10
[INFO] [stdout] stdout=```
[INFO] [stdout] Resolved 1 component to add:
[INFO] [stdout]   button  0.1.0
[INFO] [stdout] 
[INFO] [stdout] Packages to ensure:
[INFO] [stdout]   @primitiv-ui/react@^0.1.0
[INFO] [stdout] ```
[INFO] [stdout] 
[INFO] [stdout] stderr="primitiv: failed to install class-variance-authority with npm: No such file or directory (os error 2)\n"
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x623cd3d25d31 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x623cd3d25d31 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x623cd3d25d31 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x623cd3d25d31 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x623cd3d3c66a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x623cd3d3c66a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x623cd3d2b8dc - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x623cd3d2b8dc - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x623cd3d02716 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x623cd3d02716 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x623cd3d1d6f9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x623cd3c648b0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x623cd3c648b0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x623cd3d1d8b2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x623cd3d1d8b2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x623cd3d027c2 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x623cd3cfa009 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x623cd3d033bd - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x623cd3d3cebc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x623cd3cbb098 - core[6883ba1bc0fe4ed1]::panicking::panic_display::<assert_cmd[4a81c76a2b56d9b5]::assert::AssertError>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:259:5
[INFO] [stdout]   20:     0x623cd3cb2ea7 - <assert_cmd[4a81c76a2b56d9b5]::assert::AssertError>::panic::<assert_cmd[4a81c76a2b56d9b5]::assert::Assert>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/assert_cmd-2.2.2/src/assert.rs:1061:9
[INFO] [stdout]   21:     0x623cd3cb6e4d - <assert_cmd[4a81c76a2b56d9b5]::assert::Assert>::success
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/assert_cmd-2.2.2/src/assert.rs:165:25
[INFO] [stdout]   22:     0x623cd3c54cfe - cli[5f8f913e794f26b]::add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/primitiv-cli/tests/cli.rs:426:10
[INFO] [stdout]   23:     0x623cd3c4e3f7 - cli[5f8f913e794f26b]::add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/primitiv-cli/tests/cli.rs:400:72
[INFO] [stdout]   24:     0x623cd3c57aa6 - <cli[5f8f913e794f26b]::add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x623cd3c57beb - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x623cd3c57beb - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x623cd3c65235 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x623cd3c65235 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x623cd3c65235 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   30:     0x623cd3c65235 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x623cd3c65235 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x623cd3c65235 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x623cd3c65235 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x623cd3c5fce4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x623cd3c5fce4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x623cd3c68382 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x623cd3c68382 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x623cd3c68382 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   39:     0x623cd3c68382 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x623cd3c68382 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x623cd3c68382 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x623cd3c68382 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x623cd3d2553f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   44:     0x623cd3d2553f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   45:     0x746f022baaa4 - <unknown>
[INFO] [stdout]   46:     0x746f02347a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- add_styles_only_copies_the_styled_surface_on_the_real_filesystem stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'add_styles_only_copies_the_styled_surface_on_the_real_filesystem' (2684) panicked at crates/primitiv-cli/tests/cli.rs:224:10:
[INFO] [stdout] Unexpected failure.
[INFO] [stdout] code=10
[INFO] [stdout] stderr=```"primitiv: failed to install class-variance-authority with npm: No such file or directory (os error 2)\n"```
[INFO] [stdout] command=`cd "/tmp/.tmpFSSRS0" && "/opt/rustwide/target/debug/primitiv" "add" "button" "--styles-only"`
[INFO] [stdout] code=10
[INFO] [stdout] stdout=```
[INFO] [stdout] Resolved 1 component to add:
[INFO] [stdout]   button  0.1.0
[INFO] [stdout] 
[INFO] [stdout] Packages to ensure:
[INFO] [stdout]   @primitiv-ui/react@^0.1.0
[INFO] [stdout] ```
[INFO] [stdout] 
[INFO] [stdout] stderr="primitiv: failed to install class-variance-authority with npm: No such file or directory (os error 2)\n"
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x623cd3d25d31 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x623cd3d25d31 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x623cd3d25d31 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x623cd3d25d31 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x623cd3d3c66a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x623cd3d3c66a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x623cd3d2b8dc - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x623cd3d2b8dc - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x623cd3d02716 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x623cd3d02716 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x623cd3d1d6f9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x623cd3c648b0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x623cd3c648b0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x623cd3d1d8b2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x623cd3d1d8b2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x623cd3d027c2 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x623cd3cfa009 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x623cd3d033bd - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x623cd3d3cebc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x623cd3cbb098 - core[6883ba1bc0fe4ed1]::panicking::panic_display::<assert_cmd[4a81c76a2b56d9b5]::assert::AssertError>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:259:5
[INFO] [stdout]   20:     0x623cd3cb2ea7 - <assert_cmd[4a81c76a2b56d9b5]::assert::AssertError>::panic::<assert_cmd[4a81c76a2b56d9b5]::assert::Assert>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/assert_cmd-2.2.2/src/assert.rs:1061:9
[INFO] [stdout]   21:     0x623cd3cb6e4d - <assert_cmd[4a81c76a2b56d9b5]::assert::Assert>::success
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/assert_cmd-2.2.2/src/assert.rs:165:25
[INFO] [stdout]   22:     0x623cd3c5454e - cli[5f8f913e794f26b]::add_styles_only_copies_the_styled_surface_on_the_real_filesystem
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/primitiv-cli/tests/cli.rs:224:10
[INFO] [stdout]   23:     0x623cd3c4e3c7 - cli[5f8f913e794f26b]::add_styles_only_copies_the_styled_surface_on_the_real_filesystem::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/primitiv-cli/tests/cli.rs:195:70
[INFO] [stdout]   24:     0x623cd3c57a66 - <cli[5f8f913e794f26b]::add_styles_only_copies_the_styled_surface_on_the_real_filesystem::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x623cd3c57beb - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x623cd3c57beb - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x623cd3c65235 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x623cd3c65235 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x623cd3c65235 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   30:     0x623cd3c65235 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x623cd3c65235 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x623cd3c65235 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x623cd3c65235 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x623cd3c5fce4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x623cd3c5fce4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x623cd3c68382 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x623cd3c68382 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x623cd3c68382 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   39:     0x623cd3c68382 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x623cd3c68382 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x623cd3c68382 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x623cd3c68382 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x623cd3d2553f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   44:     0x623cd3d2553f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   45:     0x746f022baaa4 - <unknown>
[INFO] [stdout]   46:     0x746f02347a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     add_styles_only_copies_the_styled_surface_on_the_real_filesystem
[INFO] [stdout]     add_tailwind_project_prints_wiring_snippet_in_non_interactive_mode
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 18 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p primitiv-cli --test cli`
[INFO] running `Command { std: "docker" "inspect" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89", kill_on_drop: false }`
[INFO] [stdout] a745d24a117366525f4fd9fbefef60b6959b71fface5cc626c06dc8b6d6b6e89
