[INFO] fetching crate kardo-cli 0.5.1... [INFO] testing kardo-cli-0.5.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate kardo-cli 0.5.1 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate kardo-cli 0.5.1 [INFO] finished tweaking crates.io crate kardo-cli 0.5.1 [INFO] tweaked toml for crates.io crate kardo-cli 0.5.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate kardo-cli 0.5.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate kardo-cli 0.5.1 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d0d800a7fc06f01f1242a4acef597574b9c9dc025a127691bc51dfd1a8ee15bc [INFO] running `Command { std: "docker" "start" "-a" "d0d800a7fc06f01f1242a4acef597574b9c9dc025a127691bc51dfd1a8ee15bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d0d800a7fc06f01f1242a4acef597574b9c9dc025a127691bc51dfd1a8ee15bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d0d800a7fc06f01f1242a4acef597574b9c9dc025a127691bc51dfd1a8ee15bc", kill_on_drop: false }` [INFO] [stdout] d0d800a7fc06f01f1242a4acef597574b9c9dc025a127691bc51dfd1a8ee15bc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] aafc0a7ab78817a397a8579c049e53737f5fd531854e1191fade94c024d0cd8c [INFO] running `Command { std: "docker" "start" "-a" "aafc0a7ab78817a397a8579c049e53737f5fd531854e1191fade94c024d0cd8c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling pulldown-cmark v0.12.2 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling is_ci v1.2.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling toml_datetime v0.6.3 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling owo-colors v4.3.0 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling inotify v0.10.2 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling supports-color v2.1.0 [INFO] [stderr] Compiling notify-types v1.0.1 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling toml_edit v0.20.2 [INFO] [stderr] Compiling env_filter v1.0.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libz-sys v1.1.24 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libgit2-sys v0.17.0+1.8.1 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling jiff v0.2.23 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling comfy-table v7.2.2 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling notify v7.0.0 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling hostname v0.4.2 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling roff v0.2.2 [INFO] [stderr] Compiling whoami v1.6.1 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling clap_mangen v0.2.31 [INFO] [stderr] Compiling toml v0.8.2 [INFO] [stderr] Compiling dialoguer v0.11.0 [INFO] [stderr] Compiling clap_complete v4.5.66 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling env_logger v0.11.9 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling git2 v0.19.0 [INFO] [stderr] Compiling ureq v2.12.1 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling kardo-gate v0.4.0 [INFO] [stderr] Compiling kardo-core v0.5.0 [INFO] [stderr] Compiling kardo-cli v0.5.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 30s [INFO] running `Command { std: "docker" "inspect" "aafc0a7ab78817a397a8579c049e53737f5fd531854e1191fade94c024d0cd8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aafc0a7ab78817a397a8579c049e53737f5fd531854e1191fade94c024d0cd8c", kill_on_drop: false }` [INFO] [stdout] aafc0a7ab78817a397a8579c049e53737f5fd531854e1191fade94c024d0cd8c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8aa637848cc4a9158cb3d9ab70b042a47b86448fd2d4997992ff64ba5e6e39ec [INFO] running `Command { std: "docker" "start" "-a" "8aa637848cc4a9158cb3d9ab70b042a47b86448fd2d4997992ff64ba5e6e39ec", kill_on_drop: false }` [INFO] [stderr] Compiling kardo-cli v0.5.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 7.23s [INFO] running `Command { std: "docker" "inspect" "8aa637848cc4a9158cb3d9ab70b042a47b86448fd2d4997992ff64ba5e6e39ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8aa637848cc4a9158cb3d9ab70b042a47b86448fd2d4997992ff64ba5e6e39ec", kill_on_drop: false }` [INFO] [stdout] 8aa637848cc4a9158cb3d9ab70b042a47b86448fd2d4997992ff64ba5e6e39ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 99053f5ddb7a2fa762e8818f496df1a28f8f7599041bce5704969fb6ffa41e66 [INFO] running `Command { std: "docker" "start" "-a" "99053f5ddb7a2fa762e8818f496df1a28f8f7599041bce5704969fb6ffa41e66", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kardo-cca57885f592e6b7) [INFO] [stdout] [INFO] [stdout] running 249 tests [INFO] [stdout] test batch_init_file_tests::test_init_file_template_contains_usage_line ... ok [INFO] [stdout] test batch_init_file_tests::test_init_file_template_includes_npx_example ... ok [INFO] [stdout] test batch_init_file_tests::test_init_file_template_mentions_ci_usage ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_strips_tab_inline_comment ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_all_comments_returns_err ... ok [INFO] [stdout] test batch_init_file_tests::test_init_file_template_mentions_pro_limit ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_basic_valid ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_invalid_slug_includes_line_number ... ok [INFO] [stdout] test compare_tests::test_compare_format_direction_down ... ok [INFO] [stdout] test batch_init_file_tests::test_init_file_template_no_panic ... ok [INFO] [stdout] test compare_tests::test_compare_format_direction_first_and_unknown ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_large_file_50_repos ... ok [INFO] [stdout] test compare_tests::test_compare_format_direction_stable ... ok [INFO] [stdout] test compare_tests::test_compare_format_direction_up ... ok [INFO] [stdout] test compare_tests::test_compare_parse_empty_owner ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_nonexistent_file_returns_err ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_skips_comment_lines ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_skips_blank_lines ... ok [INFO] [stdout] test compare_tests::test_compare_parse_empty_repo ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_strips_inline_comment ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_preserves_case_for_slug_parser ... ok [INFO] [stdout] test compare_tests::test_compare_parse_hyphens_dots ... ok [INFO] [stdout] test compare_tests::test_compare_parse_invalid_no_slash ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_mixed_content ... ok [INFO] [stdout] test compare_tests::test_compare_parse_valid ... ok [INFO] [stdout] test batch_file_tests::test_read_repos_trims_whitespace ... ok [INFO] [stdout] test compare_tests::test_compare_render_coaching_header_already_green ... ok [INFO] [stdout] test compare_tests::test_compare_render_coaching_header_below_green ... ok [INFO] [stdout] test compare_tests::test_compare_render_coaching_numbered_list ... ok [INFO] [stdout] test batch_init_file_tests::test_init_file_template_contains_repos_txt_reference ... ok [INFO] [stdout] test compare_tests::test_compare_render_coaching_shows_score_pct ... ok [INFO] [stdout] test compare_tests::test_compare_render_coaching_singular_point ... ok [INFO] [stdout] test compare_tests::test_compare_render_down_has_arrow ... ok [INFO] [stdout] test compare_tests::test_compare_render_first_scan ... ok [INFO] [stdout] test compare_tests::test_compare_render_no_coaching_when_empty ... ok [INFO] [stdout] test compare_tests::test_compare_render_no_tier_jump ... ok [INFO] [stdout] test compare_tests::test_compare_render_radar_link_after_share_link ... ok [INFO] [stdout] test compare_tests::test_compare_render_radar_link_always_present ... ok [INFO] [stdout] test compare_tests::test_compare_render_radar_link_has_correct_path ... ok [INFO] [stdout] test compare_tests::test_compare_render_radar_link_on_first_scan ... ok [INFO] [stdout] test compare_tests::test_compare_render_radar_link_with_coaching ... ok [INFO] [stdout] test compare_tests::test_compare_render_share_url_after_coaching ... ok [INFO] [stdout] test compare_tests::test_compare_render_share_url ... ok [INFO] [stdout] test compare_tests::test_compare_render_tier_jump_shown ... ok [INFO] [stdout] test compare_tests::test_compare_render_up_has_arrow ... ok [INFO] [stdout] test compare_tests::test_compare_tl_tier_ai_aware ... ok [INFO] [stdout] test compare_tests::test_compare_tl_tier_ai_native ... ok [INFO] [stdout] test compare_tests::test_compare_tl_tier_ai_ready ... ok [INFO] [stdout] test compare_tests::test_compare_tl_tier_ai_unready ... ok [INFO] [stdout] test consistency_inline_tests::test_consistency_penalty_above_threshold ... ok [INFO] [stdout] test consistency_inline_tests::test_consistency_penalty_threshold_boundary ... ok [INFO] [stdout] test consistency_inline_tests::test_consistency_result_one ... ok [INFO] [stdout] test consistency_inline_tests::test_consistency_result_overflow ... ok [INFO] [stdout] test consistency_inline_tests::test_consistency_result_zero_is_empty ... ok [INFO] [stdout] test consistency_inline_tests::test_print_consistency_inline_no_panic_one ... ok [INFO] [stdout] test consistency_inline_tests::test_short_filename_multiple_slashes ... ok [INFO] [stdout] test consistency_inline_tests::test_print_consistency_inline_no_panic_overflow ... ok [INFO] [stdout] test consistency_inline_tests::test_short_filename_no_slash ... ok [INFO] [stdout] test consistency_inline_tests::test_short_filename_with_slash ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_default_max_deduction ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_partial_override_keeps_defaults ... ok [INFO] [stdout] test custom_rules_tests::test_load_missing_rules_file_returns_err ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_default_penalties_positive ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_penalty_ordering ... ok [INFO] [stdout] test custom_rules_tests::test_rules_template_has_example_comments ... ok [INFO] [stdout] test custom_rules_tests::test_template_includes_custom_rules_section ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_enabled_by_default ... ok [INFO] [stdout] test custom_rules_tests::test_template_parses_as_valid_toml ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_full_override ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_config_default_path ... ok [INFO] [stdout] test custom_rules_tests::test_load_invalid_yaml_returns_err ... ok [INFO] [stdout] test custom_rules_tests::test_custom_rules_default_path_joins_correctly ... ok [INFO] [stdout] test custom_rules_tests::test_load_multiple_rules_from_yml ... ok [INFO] [stdout] test custom_rules_tests::test_load_single_rule_from_yml ... ok [INFO] [stdout] test custom_rules_tests::test_load_rules_with_severity_aliases ... ok [INFO] [stdout] test custom_rules_tests::test_rules_template_has_required_sections ... ok [INFO] [stdout] test custom_rules_tests::test_no_rules_file_is_safe ... ok [INFO] [stdout] test diff_display::tests::test_compute_total_delta ... ok [INFO] [stdout] test diff_display::tests::test_format_delta_negative ... ok [INFO] [stdout] test diff_display::tests::test_format_delta_positive ... ok [INFO] [stdout] test diff_display::tests::test_format_delta_zero ... ok [INFO] [stdout] test diff_display::tests::test_tl_label ... ok [INFO] [stdout] test errors::tests::all_variants_have_hints ... ok [INFO] [stdout] test errors::tests::display_messages ... ok [INFO] [stdout] test errors::tests::docs_url_format ... ok [INFO] [stdout] test errors::tests::error_codes_are_unique ... ok [INFO] [stdout] test errors::tests::print_error_plain_does_not_panic ... ok [INFO] [stdout] test errors::tests::print_error_colored_does_not_panic ... ok [INFO] [stdout] test errors::tests::severity_exit_codes ... ok [INFO] [stdout] test journey_tests::test_journey_prefix_first_scan ... ok [INFO] [stdout] test journey_tests::test_journey_prefix_tier_upgrade ... ok [INFO] [stdout] test journey_tests::test_journey_prefix_tier_drop ... ok [INFO] [stdout] test journey_tests::test_journey_prefix_unknown ... ok [INFO] [stdout] test journey_tests::test_render_journey_event_has_date ... ok [INFO] [stdout] test journey_tests::test_render_journey_event_drop_prefix ... ok [INFO] [stdout] test journey_tests::test_render_journey_event_has_score_and_label ... ok [INFO] [stdout] test journey_tests::test_render_journey_event_has_traffic_light_emoji ... ok [INFO] [stdout] test journey_tests::test_render_journey_event_upgrade_prefix ... ok [INFO] [stdout] test journey_tests::test_render_journey_human_has_journey_url ... ok [INFO] [stdout] test journey_tests::test_render_journey_human_has_owner_repo ... ok [INFO] [stdout] test journey_tests::test_render_journey_human_negative_net_change ... ok [INFO] [stdout] test journey_tests::test_render_journey_human_shows_total_scans ... ok [INFO] [stdout] test kardo_upload_tests::test_api_key_too_short ... ok [INFO] [stdout] test journey_tests::test_render_journey_human_shows_range ... ok [INFO] [stdout] test journey_tests::test_render_journey_human_has_radar_url ... ok [INFO] [stdout] test kardo_upload_tests::test_format_context_files_line_all_absent ... ok [INFO] [stdout] test kardo_upload_tests::test_format_unix_as_iso8601_midnight ... ok [INFO] [stdout] test kardo_upload_tests::test_format_context_files_line_some_present ... ok [INFO] [stdout] test kardo_upload_tests::test_format_unix_as_iso8601_with_time_component ... ok [INFO] [stdout] test kardo_upload_tests::test_hub_step_label_all_known ... ok [INFO] [stdout] test kardo_upload_tests::test_format_unix_as_iso8601_epoch ... ok [INFO] [stdout] test kardo_upload_tests::test_hub_steps_ordering ... ok [INFO] [stdout] test kardo_upload_tests::test_detect_context_files_empty_dir ... ok [INFO] [stdout] test kardo_upload_tests::test_detect_context_files_multiple ... ok [INFO] [stdout] test kardo_upload_tests::test_kardo_config_value_roundtrip ... ok [INFO] [stdout] test kardo_upload_tests::test_load_kardo_key_empty_key_is_invalid ... ok [INFO] [stdout] test kardo_upload_tests::test_api_key_valid_format ... ok [INFO] [stdout] test kardo_upload_tests::test_api_key_invalid_prefix ... ok [INFO] [stdout] test kardo_upload_tests::test_hub_step_tracking_roundtrip ... ok [INFO] [stdout] test kardo_upload_tests::test_plan_ordering ... ok [INFO] [stdout] test kardo_upload_tests::test_load_kardo_key_missing_section ... ok [INFO] [stdout] test kardo_upload_tests::test_load_kardo_key_valid_format ... ok [INFO] [stdout] test kardo_upload_tests::test_detect_context_files_claude_md_only ... ok [INFO] [stdout] test kardo_upload_tests::test_repo_to_slug_owner_only ... ok [INFO] [stdout] test kardo_upload_tests::test_repo_to_slug_uppercase_lowercased ... ok [INFO] [stdout] test kardo_upload_tests::test_repo_to_slug_with_hyphens ... ok [INFO] [stdout] test kardo_upload_tests::test_score_upload_payload_omits_null_git_sha ... ok [INFO] [stdout] test kardo_upload_tests::test_upload_retry_constants ... ok [INFO] [stdout] test kardo_upload_tests::test_score_upload_payload_serializes_required_fields ... ok [INFO] [stdout] test output_context::tests::test_allow_prompts_requires_tty_and_interactive ... ok [INFO] [stdout] test kardo_upload_tests::test_upload_error_display_network ... ok [INFO] [stdout] test output_context::tests::test_ci_provider_detection_order ... ok [INFO] [stdout] test output_context::tests::test_ci_sets_no_interactive ... ok [INFO] [stdout] test kardo_upload_tests::test_upload_error_display_auth ... ok [INFO] [stdout] test output_context::tests::test_default_is_tui ... ok [INFO] [stdout] test output_context::tests::test_explicit_badge_format_wins ... ok [INFO] [stdout] test output_context::tests::test_explicit_hook_summary_format_wins ... ok [INFO] [stdout] test output_context::tests::test_narrow_terminal_forces_colored ... ok [INFO] [stdout] test output_context::tests::test_explicit_json_format_wins ... ok [INFO] [stdout] test output_context::tests::test_no_color_forces_plain ... ok [INFO] [stdout] test kardo_upload_tests::test_upload_error_display_client_error ... ok [INFO] [stdout] test output_context::tests::test_no_tui_flag_forces_colored ... ok [INFO] [stdout] test output_context::tests::test_non_tty_defaults_to_plain ... ok [INFO] [stdout] test kardo_upload_tests::test_upload_error_display_ratelimit ... ok [INFO] [stdout] test output_context::tests::test_output_format_is_human ... ok [INFO] [stdout] test kardo_upload_tests::test_repo_to_slug_simple ... ok [INFO] [stdout] test output_context::tests::test_output_format_is_machine ... ok [INFO] [stdout] test output_levels::tests::test_quiet_from_flags ... ok [INFO] [stdout] test output_levels::tests::test_quiet_wins_over_verbose ... ok [INFO] [stdout] test output_levels::tests::test_normal_default ... ok [INFO] [stdout] test output_levels::tests::test_show_helpers ... ok [INFO] [stdout] test output_levels::tests::test_verbose_from_flags ... ok [INFO] [stdout] test privacy_banner_tests::test_first_run_fallback_on_missing_home ... ok [INFO] [stdout] test privacy_banner_tests::test_print_privacy_banner_no_panic ... ok [INFO] [stdout] test output_context::tests::test_ci_defaults_to_json ... ok [INFO] [stdout] test privacy_banner_tests::test_first_run_false_when_dir_exists ... ok [INFO] [stdout] test privacy_banner_tests::test_first_run_true_when_dir_missing ... ok [INFO] [stdout] test tests::test_adaptive_cta_green_first_scan_no_panic ... ok [INFO] [stdout] test tests::test_adaptive_cta_red_first_scan_no_panic ... ok [INFO] [stdout] test tests::test_adaptive_cta_yellow_first_scan_no_panic ... ok [INFO] [stdout] test tests::test_badge_color_thresholds ... ok [INFO] [stdout] test tests::test_batch_parse_empty_owner ... ok [INFO] [stdout] test tests::test_batch_parse_hyphens_dots ... ok [INFO] [stdout] test tests::test_batch_parse_invalid_no_slash ... ok [INFO] [stdout] test tests::test_batch_parse_empty_repo ... ok [INFO] [stdout] test tests::test_batch_parse_valid ... ok [INFO] [stdout] test tests::test_batch_render_row_found ... ok [INFO] [stdout] test tests::test_adaptive_cta_subsequent_scan_silent ... ok [INFO] [stdout] test tests::test_batch_render_row_not_found ... ok [INFO] [stdout] test tests::test_batch_tl_symbol_green ... ok [INFO] [stdout] test tests::test_batch_tl_symbol_yellow ... ok [INFO] [stdout] test tests::test_batch_tl_symbol_red ... ok [INFO] [stdout] test tests::test_claude_md_template_node_contains_npm ... ok [INFO] [stdout] test tests::test_claude_md_template_rust_contains_cargo ... ok [INFO] [stdout] test tests::test_config_list_masks_token ... ok [INFO] [stdout] test tests::test_batch_tl_symbol_unknown ... ok [INFO] [stdout] test tests::test_batch_tl_symbol_none ... ok [INFO] [stdout] test tests::test_certification_tier_boundaries ... ok [INFO] [stdout] test tests::test_email_already_saved_no_file ... ok [INFO] [stdout] test tests::test_format_effort_label_1hr ... ok [INFO] [stdout] test tests::test_drop_message_format ... ok [INFO] [stdout] test tests::test_format_effort_label_20min ... ok [INFO] [stdout] test tests::test_format_effort_label_2hr ... ok [INFO] [stdout] test tests::test_format_effort_label_full_day ... ok [INFO] [stdout] test tests::test_config_set_pro_token_invalid ... ok [INFO] [stdout] test tests::test_format_effort_label_half_day ... ok [INFO] [stdout] test tests::test_green_transition_logic_already_green_no_celebration ... ok [INFO] [stdout] test tests::test_green_transition_logic_previously_yellow ... ok [INFO] [stdout] test tests::test_green_transition_logic_no_previous_score ... ok [INFO] [stdout] test tests::test_improvement_tips_all_components ... ok [INFO] [stdout] test tests::test_detect_project_type_generic ... ok [INFO] [stdout] test tests::test_green_transition_logic_yellow_stays_yellow_no_celebration ... ok [INFO] [stdout] test tests::test_detect_project_type_rust ... ok [INFO] [stdout] test tests::test_improvement_tips_unknown_component ... ok [INFO] [stdout] test tests::test_last_n_iso_weeks_ascending_order ... ok [INFO] [stdout] test tests::test_detect_project_type_node ... ok [INFO] [stdout] test tests::test_last_n_iso_weeks_count ... ok [INFO] [stdout] test tests::test_last_n_iso_weeks_format ... ok [INFO] [stdout] test tests::test_maybe_capture_email_no_interactive_returns_none ... ok [INFO] [stdout] test tests::test_no_drop_small_noise ... ok [INFO] [stdout] test tests::test_load_previous_score_missing_file_returns_none ... ok [INFO] [stdout] test tests::test_no_drop_when_score_increased ... ok [INFO] [stdout] test tests::test_last_n_iso_weeks_last_is_current ... ok [INFO] [stdout] test tests::test_no_drop_when_score_same ... ok [INFO] [stdout] test tests::test_parse_remote_url_non_github ... ok [INFO] [stdout] test tests::test_parse_remote_url_ssh_with_git ... ok [INFO] [stdout] test tests::test_drop_detected_significant ... ok [INFO] [stdout] test tests::test_parse_remote_url_ssh_without_git ... ok [INFO] [stdout] test tests::test_score_history_path_no_slash_in_filename ... ok [INFO] [stdout] test tests::test_grace_days_computed_correctly ... ok [INFO] [stdout] test tests::test_parse_remote_url_https_with_git ... ok [INFO] [stdout] test tests::test_config_get_existing_key ... ok [INFO] [stdout] test tests::test_parse_remote_url_uppercase_normalizes ... ok [INFO] [stdout] test output_levels::tests::test_ordering ... ok [INFO] [stdout] test tests::test_score_history_path_contains_owner_repo ... ok [INFO] [stdout] test tests::test_score_percentile_boundaries ... ok [INFO] [stdout] test tests::test_parse_remote_url_with_whitespace ... ok [INFO] [stdout] test tests::test_run_upgrade_invalid_email ... ok [INFO] [stdout] test tests::test_save_email_round_trip ... ok [INFO] [stdout] test tests::test_save_and_load_score_roundtrip ... ok [INFO] [stdout] test tests::test_parse_remote_url_https_without_git ... ok [INFO] [stdout] test tests::test_config_set_pro_token_valid ... ok [INFO] [stdout] test tests::test_tl_string_for_score_boundaries ... ok [INFO] [stdout] test tests::test_token_toml_roundtrip ... ok [INFO] [stdout] test tests::test_upgrade_already_pro_shows_existing ... ok [INFO] [stdout] test tests::test_webhook_register_uses_pro_token ... ok [INFO] [stdout] test tests::test_webhook_remove_no_pro_token_error ... ok [INFO] [stdout] test tests::test_yellow_subband_header_high_boundary_65 ... ok [INFO] [stdout] test tests::test_yellow_subband_header_high_boundary_75 ... ok [INFO] [stdout] test tests::test_yellow_subband_header_low_boundary_42 ... ok [INFO] [stdout] test tests::test_yellow_subband_header_low_boundary_51 ... ok [INFO] [stdout] test tests::test_yellow_subband_header_mid_boundary_52 ... ok [INFO] [stdout] test tests::test_yellow_subband_header_mid_boundary_64 ... ok [INFO] [stdout] test tests::test_yellow_subband_header_red_zone ... ok [INFO] [stdout] test watch_mode_tests::test_default_log_path ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_agents_md ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_claude_dir ... ok [INFO] [stdout] test watch_mode_tests::test_append_watch_log_appends ... ok [INFO] [stdout] test watch_mode_tests::test_append_watch_log_creates_file ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_claude_md ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_cursorrules ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_docs_dir ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_mdc ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_negative ... ok [INFO] [stdout] test watch_mode_tests::test_is_context_file_readme ... ok [INFO] [stdout] test watch_mode_tests::test_local_time_hms_format ... ok [INFO] [stdout] test watch_mode_tests::test_utc_now_rfc3339_format ... ok [INFO] [stdout] test watch_mode_tests::test_watch_log_entry_serializes ... ok [INFO] [stdout] test watch_mode_tests::test_watch_log_entry_with_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 249 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "99053f5ddb7a2fa762e8818f496df1a28f8f7599041bce5704969fb6ffa41e66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "99053f5ddb7a2fa762e8818f496df1a28f8f7599041bce5704969fb6ffa41e66", kill_on_drop: false }` [INFO] [stdout] 99053f5ddb7a2fa762e8818f496df1a28f8f7599041bce5704969fb6ffa41e66