[INFO] cloning repository https://github.com/o-k-a-y/vibecheck [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/o-k-a-y/vibecheck" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fo-k-a-y%2Fvibecheck", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fo-k-a-y%2Fvibecheck'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2c4c13068b4a964a849b736ad1f73a2a9d935bd1 [INFO] testing o-k-a-y/vibecheck against try#8da20828b6ea601dfd8e2448cb50ace88876bd78 for pr-150933 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fo-k-a-y%2Fvibecheck" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/o-k-a-y/vibecheck [INFO] finished tweaking git repo https://github.com/o-k-a-y/vibecheck [INFO] tweaked toml for git repo https://github.com/o-k-a-y/vibecheck written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/o-k-a-y/vibecheck on toolchain 8da20828b6ea601dfd8e2448cb50ace88876bd78 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/o-k-a-y/vibecheck 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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 705a90f0d19508ef15bfce8c1c222b3f7cc0662f724f6c76ad0a6c02a8e493fe [INFO] running `Command { std: "docker" "start" "-a" "705a90f0d19508ef15bfce8c1c222b3f7cc0662f724f6c76ad0a6c02a8e493fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "705a90f0d19508ef15bfce8c1c222b3f7cc0662f724f6c76ad0a6c02a8e493fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "705a90f0d19508ef15bfce8c1c222b3f7cc0662f724f6c76ad0a6c02a8e493fe", kill_on_drop: false }` [INFO] [stdout] 705a90f0d19508ef15bfce8c1c222b3f7cc0662f724f6c76ad0a6c02a8e493fe [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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1c2395ce385a546231f917f24ff45993494195af59d92d20557a60893014ffe5 [INFO] running `Command { std: "docker" "start" "-a" "1c2395ce385a546231f917f24ff45993494195af59d92d20557a60893014ffe5", kill_on_drop: false }` [INFO] [stderr] Compiling tree-sitter-language v0.1.7 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling redb v2.6.3 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling streaming-iterator v0.1.9 [INFO] [stderr] Compiling linfa v0.8.1 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling rand_xoshiro v0.7.0 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling inotify v0.10.2 [INFO] [stderr] Compiling notify-types v1.0.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling notify v7.0.0 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling tree-sitter-go v0.23.4 [INFO] [stderr] Compiling tree-sitter-javascript v0.23.1 [INFO] [stderr] Compiling tree-sitter-python v0.25.0 [INFO] [stderr] Compiling tree-sitter-rust v0.24.0 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Compiling libgit2-sys v0.17.0+1.8.1 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling noisy_float v0.2.1 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling tree-sitter v0.25.10 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling ndarray v0.16.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling git2 v0.19.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling sprs v0.11.2 [INFO] [stderr] Compiling argmin-math v0.5.1 [INFO] [stderr] Compiling ndarray-stats v0.6.0 [INFO] [stderr] Compiling ndarray-rand v0.15.0 [INFO] [stderr] Compiling vibecheck-core v0.6.0 (/opt/rustwide/workdir/vibecheck-core) [INFO] [stderr] Compiling linfa-trees v0.8.1 [INFO] [stderr] Compiling linfa-bayes v0.8.1 [INFO] [stderr] Compiling argmin v0.11.0 [INFO] [stderr] Compiling vibecheck-cli v0.6.0 (/opt/rustwide/workdir/vibecheck-cli) [INFO] [stderr] Compiling linfa-logistic v0.8.1 [INFO] [stderr] Compiling vibecheck-ml v0.6.0 (/opt/rustwide/workdir/vibecheck-ml) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s [INFO] running `Command { std: "docker" "inspect" "1c2395ce385a546231f917f24ff45993494195af59d92d20557a60893014ffe5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c2395ce385a546231f917f24ff45993494195af59d92d20557a60893014ffe5", kill_on_drop: false }` [INFO] [stdout] 1c2395ce385a546231f917f24ff45993494195af59d92d20557a60893014ffe5 [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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7ddee359d08ad9f89109090ba9d39ec9b1c128423c1715ff887f058e73740bdf [INFO] running `Command { std: "docker" "start" "-a" "7ddee359d08ad9f89109090ba9d39ec9b1c128423c1715ff887f058e73740bdf", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling vibecheck-ml v0.6.0 (/opt/rustwide/workdir/vibecheck-ml) [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling vibecheck-core v0.6.0 (/opt/rustwide/workdir/vibecheck-core) [INFO] [stderr] Compiling vibecheck-cli v0.6.0 (/opt/rustwide/workdir/vibecheck-cli) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 10.15s [INFO] running `Command { std: "docker" "inspect" "7ddee359d08ad9f89109090ba9d39ec9b1c128423c1715ff887f058e73740bdf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ddee359d08ad9f89109090ba9d39ec9b1c128423c1715ff887f058e73740bdf", kill_on_drop: false }` [INFO] [stdout] 7ddee359d08ad9f89109090ba9d39ec9b1c128423c1715ff887f058e73740bdf [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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0404cfe80db5ad494a42cf089947d6ecfd61ef67c724ec4b44396694dbce5e34 [INFO] running `Command { std: "docker" "start" "-a" "0404cfe80db5ad494a42cf089947d6ecfd61ef67c724ec4b44396694dbce5e34", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/vibecheck-0bdc4b84f5c3e24c) [INFO] [stdout] [INFO] [stdout] running 80 tests [INFO] [stdout] test commands::analyze::tests::collect_files_filters_by_extension ... ok [INFO] [stdout] test commands::analyze::tests::parse_families_case_insensitive ... ok [INFO] [stdout] test commands::analyze::tests::format_report_text_contains_verdict ... ok [INFO] [stdout] test commands::analyze::tests::format_report_pretty_contains_verdict ... ok [INFO] [stdout] test commands::analyze::tests::collect_files_single_file ... ok [INFO] [stdout] test commands::analyze::tests::format_report_json_is_valid ... ok [INFO] [stdout] test commands::analyze::tests::parse_families_unknown_is_error ... ok [INFO] [stdout] test commands::analyze::tests::parse_format_json ... ok [INFO] [stdout] test commands::analyze::tests::collect_files_respects_ignore ... ok [INFO] [stdout] test commands::analyze::tests::parse_format_unknown_is_error ... ok [INFO] [stdout] test commands::analyze::tests::parse_format_text ... ok [INFO] [stdout] test commands::history::tests::format_date_known_date ... ok [INFO] [stdout] test commands::history::tests::format_date_leap_year ... ok [INFO] [stdout] test commands::history::tests::is_source_file_supported_extensions ... ok [INFO] [stdout] test commands::tui::tests::family_abbrev_all_families_return_nonempty ... ok [INFO] [stdout] test commands::tui::tests::family_color_all_families_return_a_color ... ok [INFO] [stdout] test commands::history::tests::is_source_file_unsupported ... ok [INFO] [stdout] test commands::analyze::tests::parse_families_known ... ok [INFO] [stdout] test commands::analyze::tests::parse_format_pretty ... ok [INFO] [stdout] test commands::tui::tests::move_down_increments_selected ... ok [INFO] [stdout] test commands::tui::tests::move_down_skips_hidden_entries_correctly ... ok [INFO] [stdout] test commands::tui::tests::move_up_decrements_selected ... ok [INFO] [stdout] test commands::tui::tests::name_to_family_all_known ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_empty_reports_returns_empty ... ok [INFO] [stdout] test commands::tui::tests::navigation_resets_scroll_offset ... ok [INFO] [stdout] test commands::tui::tests::scroll_down_accumulates ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_dir_family_is_dominant_by_weighted_score ... ok [INFO] [stdout] test commands::tui::tests::scroll_down_increases_offset ... ok [INFO] [stdout] test commands::tui::tests::move_up_clamps_at_zero ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_single_file_at_root ... ok [INFO] [stdout] test commands::tui::tests::move_down_clamps_at_last_entry ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_files_sorted_alphabetically ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_dir_confidence_is_weighted_average ... ok [INFO] [stdout] test commands::tui::tests::scroll_down_clamps_at_content_minus_pane ... ok [INFO] [stdout] test commands::tui::tests::scroll_up_after_down_returns_to_origin ... ok [INFO] [stdout] test commands::tui::tests::scroll_up_clamps_at_zero ... ok [INFO] [stdout] test commands::tui::tests::scroll_right_clamps_at_content_minus_pane ... ok [INFO] [stdout] test commands::tui::tests::name_to_family_unknown_falls_back_to_human ... ok [INFO] [stdout] test commands::history::tests::format_date_epoch ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_dirs_appear_before_sibling_files ... ok [INFO] [stdout] test commands::tui::tests::flat_tree_synthesises_directory_entry ... ok [INFO] [stdout] test commands::tui::tests::scroll_up_decreases_offset ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_empty_slice_returns_empty ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_class_kind_tag ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_full_confidence_fills_bar ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_function_kind_tag ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_half_confidence_has_8_blocks ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_header_shows_count ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_method_kind_tag ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_multiple_count_in_header ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_one_row_per_symbol ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_unknown_kind_defaults_to_fn ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_name_truncated_when_over_22_chars ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_name_called_name_is_unambiguous ... ok [INFO] [stdout] test commands::tui::tests::toggle_collapse_expands_collapsed_dir ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_name_fits_within_22_chars_unchanged ... ok [INFO] [stdout] test commands::tui::tests::toggle_collapse_on_file_is_noop ... ok [INFO] [stdout] test commands::tui::tests::visible_all_entries_shown_when_nothing_collapsed ... ok [INFO] [stdout] test commands::tui::tests::visible_collapsed_dir_hides_deeply_nested_entries ... ok [INFO] [stdout] test commands::tui::tests::visible_collapsed_dir_hides_direct_children ... ok [INFO] [stdout] test commands::tui::tests::visible_empty_app_returns_empty ... ok [INFO] [stdout] test commands::watch::tests::chrono_now_is_valid_time_format ... ok [INFO] [stdout] test commands::watch::tests::supported_exts_includes_all_expected ... ok [INFO] [stdout] test commands::watch::tests::is_supported_rejects_unsupported ... ok [INFO] [stdout] test commands::tui::tests::visible_sibling_dir_stays_visible_when_other_collapsed ... ok [INFO] [stdout] test output::tests::format_pretty_insufficient_data ... ok [INFO] [stdout] test commands::watch::tests::is_supported_known_extensions ... ok [INFO] [stdout] test output::tests::format_pretty_shows_scores ... ok [INFO] [stdout] test output::tests::format_pretty_with_file_path ... ok [INFO] [stdout] test output::tests::format_pretty_without_file_path ... ok [INFO] [stdout] test tests::cli_version_is_set ... ok [INFO] [stdout] test tests::cli_has_all_subcommands ... ok [INFO] [stdout] test tests::cli_parses_without_error ... ok [INFO] [stdout] test commands::tui::tests::symbol_lines_zero_confidence_has_no_bar ... ok [INFO] [stdout] test commands::tui::tests::toggle_collapse_collapses_expanded_dir ... ok [INFO] [stdout] test commands::heuristics::tests::all_heuristics_nonempty ... ok [INFO] [stdout] test output::tests::format_pretty_shows_signals_when_present ... ok [INFO] [stdout] test commands::heuristics::tests::run_toml_does_not_panic ... ok [INFO] [stdout] test commands::heuristics::tests::run_table_does_not_panic ... ok [INFO] [stdout] test commands::heuristics::tests::run_unknown_format_falls_back_to_table ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running tests/bump_version.rs (/opt/rustwide/target/debug/deps/bump_version-f214cefbc588dd8e) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test invalid_level_exits_nonzero ... ok [INFO] [stdout] test cargo_toml_with_no_version_line_exits_nonzero ... ok [INFO] [stdout] test both_version_occurrences_updated ... ok [INFO] [stdout] test missing_cargo_toml_exits_nonzero ... ok [INFO] [stdout] test major_promotes_from_zero_series ... ok [INFO] [stdout] test major_increments_major_and_resets_minor_and_patch ... ok [INFO] [stdout] test patch_from_absolute_zero ... ok [INFO] [stdout] test minor_produces_double_digit_minor ... ok [INFO] [stdout] test stdout_contains_old_to_new_arrow ... ok [INFO] [stdout] test old_version_absent_after_bump ... ok [INFO] [stdout] test patch_increments_patch ... ok [INFO] [stdout] test minor_increments_minor_and_resets_patch ... ok [INFO] [stdout] test stdout_contains_bump_level_label ... ok [INFO] [stdout] test stdout_contains_commit_hint_with_new_version ... ok [INFO] [stdout] test unrelated_dep_version_strings_untouched ... ok [INFO] [stdout] test no_arguments_exits_nonzero ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vibecheck_core-6effdfc9f161d6b3) [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 212 tests [INFO] [stdout] test analyzers::cst::go::tests::extract_method_declaration ... ok [INFO] [stdout] test analyzers::cst::go::tests::extract_symbol_line_numbers ... ok [INFO] [stdout] test analyzers::cst::go::tests::err_nil_check_metrics ... ok [INFO] [stdout] test analyzers::cst::go::tests::extract_top_level_functions ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::async_await_metrics ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::extract_function_declaration ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::extract_arrow_function_const ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::extract_class_methods ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::extract_symbol_line_numbers ... ok [INFO] [stdout] test analyzers::cst::go::tests::godoc_coverage_metrics ... ok [INFO] [stdout] test analyzers::cst::go::tests::goroutine_metrics ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::high_arrow_ratio_metrics ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::non_function_const_not_extracted ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::optional_chaining_metrics ... ok [INFO] [stdout] test analyzers::cst::python::tests::docstring_coverage_metrics ... ok [INFO] [stdout] test analyzers::cst::javascript::tests::then_chains_metrics ... ok [INFO] [stdout] test analyzers::cst::python::tests::extract_class_and_methods ... ok [INFO] [stdout] test analyzers::cst::python::tests::extract_module_level_functions ... ok [INFO] [stdout] test analyzers::cst::python::tests::extract_symbol_line_numbers ... ok [INFO] [stdout] test analyzers::cst::rust::tests::extract_methods_from_impl ... ok [INFO] [stdout] test analyzers::tests::analyze_go_defaults_to_analyze ... ok [INFO] [stdout] test analyzers::tests::analyze_javascript_defaults_to_analyze ... ok [INFO] [stdout] test analyzers::tests::analyze_python_defaults_to_analyze ... ok [INFO] [stdout] test analyzers::tests::analyze_rust_defaults_to_analyze ... ok [INFO] [stdout] test analyzers::cst::rust::tests::nested_functions_not_extracted ... ok [INFO] [stdout] test analyzers::cst::python::tests::fstring_metrics ... ok [INFO] [stdout] test analyzers::cst::rust::tests::extract_free_functions ... ok [INFO] [stdout] test analyzers::tests::analyze_with_language_dispatches_all_variants ... ok [INFO] [stdout] test analyzers::tests::default_analyzers_are_nonempty ... ok [INFO] [stdout] test analyzers::cst::rust::tests::doc_coverage_metrics ... ok [INFO] [stdout] test analyzers::cst::python::tests::type_annotation_metrics ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::all_functions_documented_is_claude ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::commented_out_code_is_human ... ok [INFO] [stdout] test analyzers::tests::analyze_with_language_dispatches_none_as_rust ... ok [INFO] [stdout] test analyzers::cst::rust::tests::avg_fn_length_computed ... ok [INFO] [stdout] test analyzers::tests::default_cst_analyzers_are_nonempty ... ok [INFO] [stdout] test analyzers::cst::rust::tests::sorted_imports_metrics ... ok [INFO] [stdout] test analyzers::cst::python::tests::nested_functions_not_extracted ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::no_todo_in_large_file_is_claude ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::todo_present_suppresses_no_todo_signal ... ok [INFO] [stdout] test analyzers::cst::rust::tests::extract_symbol_line_numbers ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::go_no_todo_is_claude ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::javascript_no_todo_is_claude ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::short_source_no_signals ... ok [INFO] [stdout] test analyzers::text::ai_signals::tests::python_no_todo_is_claude ... ok [INFO] [stdout] test analyzers::cst::rust::tests::low_complexity_metrics ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::all_lines_under_100_chars_is_gemini ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::go_short_lines_is_gemini ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::high_annotation_ratio_is_gpt ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::javascript_short_lines_is_gemini ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::python_sorted_imports_is_gpt ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::empty_source_no_signals ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::python_short_lines_is_gemini ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::sorted_imports_is_gpt ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::five_doc_comments_is_claude ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::low_comment_density_is_human ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::high_comment_density_is_claude ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::teaching_voice_1_is_gpt ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::teaching_voice_3_plus_is_claude ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::javascript_high_comment_density_is_claude ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::terse_markers_is_human ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::python_high_comment_density_is_claude ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::go_fmt_errorf_wrap_is_claude ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::javascript_try_catch_is_human ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::five_unwraps_is_human ... ok [INFO] [stdout] test analyzers::text::code_structure::tests::low_annotation_ratio_is_gemini ... ok [INFO] [stdout] test analyzers::text::comment_style::tests::go_high_comment_density_is_claude ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::one_to_three_unwraps_is_copilot ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::go_error_returns_is_claude ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::rust_unwrap_signal_not_emitted_for_python_file ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::short_source_no_signals ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::three_question_marks_is_claude ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::two_expect_calls_is_claude ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::two_panics_is_human ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::zero_unwrap_in_large_file_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::five_iterator_methods_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::go_defer_stmts_is_gemini ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::go_interface_check_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::go_goroutines_is_gpt ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::impl_display_for_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_arrow_functions_only_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_async_await_is_gemini ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_const_declarations_is_copilot ... ok [INFO] [stdout] test analyzers::text::error_handling::tests::python_broad_except_is_human ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_regular_functions_only_is_human ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_var_declarations_is_human ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::python_fstrings_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::python_list_comprehensions_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::python_context_managers_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::python_old_format_is_human ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::three_if_let_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::three_string_concatenations_is_human ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::rust_iterator_signal_not_emitted_for_python_file ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::two_impl_from_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::python_type_annotated_functions_is_claude ... ok [INFO] [stdout] test analyzers::text::naming::tests::go_long_names_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_destructuring_is_gemini ... ok [INFO] [stdout] test analyzers::text::naming::tests::python_short_source_no_signals ... ok [INFO] [stdout] test analyzers::text::naming::tests::short_source_no_signals ... ok [INFO] [stdout] test analyzers::text::naming::tests::python_long_names_is_claude ... ok [INFO] [stdout] test analyzers::text::naming::tests::short_variable_names_is_human ... ok [INFO] [stdout] test cache::tests::custom_backend_via_with_backend ... ok [INFO] [stdout] test cache::tests::default_path_ends_with_vibecheck ... ok [INFO] [stdout] test analyzers::text::naming::tests::javascript_long_names_is_claude ... ok [INFO] [stdout] test analyzers::text::naming::tests::three_single_char_names_is_human ... ok [INFO] [stdout] test analyzers::text::naming::tests::five_vars_no_single_char_is_claude ... ok [INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_optional_chaining_is_claude ... ok [INFO] [stdout] test analyzers::text::naming::tests::long_variable_names_is_claude ... ok [INFO] [stdout] test cache::tests::in_memory_backend_allows_update_when_full ... ok [INFO] [stdout] test cache::tests::in_memory_backend_round_trip ... ok [INFO] [stdout] test cache::tests::resolve_path_falls_back_to_default ... ok [INFO] [stdout] test colors::tests::terminal_colors_all_families ... ok [INFO] [stdout] test cache::tests::resolve_path_config_override_takes_priority ... ok [INFO] [stdout] test cache::tests::in_memory_backend_respects_max_entries ... ok [INFO] [stdout] test cache::tests::namespaces_isolate_data ... ok [INFO] [stdout] test colors::tests::svg_colors_all_families ... ok [INFO] [stdout] test colors::tests::rgb_round_trips_to_svg ... ok [INFO] [stdout] test colors::tests::abbrev_nonempty_for_all_families ... ok [INFO] [stdout] test heuristics::tests::configured_heuristics_zero_disables ... ok [INFO] [stdout] test heuristics::tests::configured_heuristics_override_applies ... ok [INFO] [stdout] test heuristics::tests::default_heuristics_returns_correct_weight ... ok [INFO] [stdout] test heuristics::tests::embedded_toml_parses_successfully ... ok [INFO] [stdout] test heuristics::tests::default_heuristics_unknown_id_returns_one ... ok [INFO] [stdout] test ignore_rules::tests::allow_all_never_ignores ... ok [INFO] [stdout] test heuristics::tests::signal_id_constants_match_all_heuristics ... ok [INFO] [stdout] test ignore_rules::tests::find_config_root_stops_at_git ... ok [INFO] [stdout] test ignore_rules::tests::cache_dir_absent_section_is_none ... ok [INFO] [stdout] test ignore_rules::tests::find_config_root_stops_at_vibecheck_file ... ok [INFO] [stdout] test ignore_rules::tests::ignore_config_from_file_error_on_bad_toml ... ok [INFO] [stdout] test ignore_rules::tests::cache_dir_none_when_not_configured ... ok [INFO] [stdout] test ignore_rules::tests::pattern_ignore_dir_delegates_to_is_ignored ... ok [INFO] [stdout] test ignore_rules::tests::pattern_ignore_matches_substring ... ok [INFO] [stdout] test heuristics::tests::all_heuristics_ids_are_unique ... ok [INFO] [stdout] test ignore_rules::tests::ignore_config_from_file_valid ... ok [INFO] [stdout] test merkle::tests::empty_dir_hash_is_deterministic ... ok [INFO] [stdout] test ignore_rules::tests::ignore_config_parses_patterns ... ok [INFO] [stdout] test merkle::tests::different_contents_produce_different_hashes ... ok [INFO] [stdout] test merkle::tests::walk_and_hash_empty_dir_is_stable ... ok [INFO] [stdout] test ignore_rules::tests::cache_dir_parsed_from_config ... ok [INFO] [stdout] test merkle::tests::order_matters ... ok [INFO] [stdout] test ignore_rules::tests::ignore_config_load_defaults_when_no_file ... ok [INFO] [stdout] test merkle::tests::walk_and_hash_subdirectory_changes_propagate ... ok [INFO] [stdout] test merkle::tests::walk_and_hash_reflects_file_content ... ok [INFO] [stdout] test heuristics::tests::inert_heuristics_matches_defaults ... ok [INFO] [stdout] test merkle::tests::walk_and_hash_with_ignored_dir_does_not_affect_hash ... ok [INFO] [stdout] test output::tests::format_text_insufficient_data ... ok [INFO] [stdout] test output::tests::format_json_is_valid ... ok [INFO] [stdout] test output::tests::format_text_with_file_path ... ok [INFO] [stdout] test output::tests::format_text_with_signals ... ok [INFO] [stdout] test output::tests::output_format_eq ... ok [INFO] [stdout] test pipeline::tests::aggregate_empty_signals_returns_zero_confidence ... ok [INFO] [stdout] test pipeline::tests::blend_half_averages_scores ... ok [INFO] [stdout] test pipeline::tests::blend_one_returns_ml ... ok [INFO] [stdout] test merkle::tests::walk_and_hash_with_ignores_matched_files ... ok [INFO] [stdout] test pipeline::tests::blend_preserves_normalization ... ok [INFO] [stdout] test pipeline::tests::blend_zero_returns_heuristic ... ok [INFO] [stdout] test output::tests::format_text_contains_verdict ... ok [INFO] [stdout] test pipeline::tests::run_symbols_empty_for_unsupported_extension ... ok [INFO] [stdout] test pipeline::tests::run_symbols_returns_one_report_per_function ... ok [INFO] [stdout] test pipeline::tests::without_scorer_behavior_unchanged ... ok [INFO] [stdout] test pipeline::tests::with_model_blend_clamped ... ok [INFO] [stdout] test pipeline::tests::run_symbols_python_extracts_functions_and_methods ... ok [INFO] [stdout] test project_tools::tests::detects_agents_md ... ok [INFO] [stdout] test project_tools::tests::detects_claude_md ... ok [INFO] [stdout] test project_tools::tests::detects_aider_config ... ok [INFO] [stdout] test project_tools::tests::detects_cursor_rules_dir ... ok [INFO] [stdout] test project_tools::tests::detects_copilot_instructions ... ok [INFO] [stdout] test pipeline::tests::run_symbols_symbol_reports_have_attribution ... ok [INFO] [stdout] test project_tools::tests::detects_gemini_md ... ok [INFO] [stdout] test pipeline::tests::with_model_scorer_is_called ... ok [INFO] [stdout] test project_tools::tests::empty_dir_detects_nothing ... ok [INFO] [stdout] test project_tools::tests::detects_multiple_tools ... ok [INFO] [stdout] test report::tests::display_name_truncates ... ok [INFO] [stdout] test report::tests::display_name_class_no_parens ... ok [INFO] [stdout] test report::tests::family_id_from_model_family_roundtrip ... ok [INFO] [stdout] test report::tests::display_name_function_appends_parens ... ok [INFO] [stdout] test project_tools::tests::detects_windsurfrules ... ok [INFO] [stdout] test report::tests::family_id_to_model_family_known ... ok [INFO] [stdout] test report::tests::family_id_to_model_family_unknown ... ok [INFO] [stdout] test report::tests::kind_label_class ... ok [INFO] [stdout] test report::tests::kind_label_function_falls_back_to_fn ... ok [INFO] [stdout] test report::tests::family_id_json_roundtrip ... ok [INFO] [stdout] test report::tests::kind_label_method ... ok [INFO] [stdout] test report::tests::family_id_to_model_family_case_insensitive ... ok [INFO] [stdout] test report::tests::model_family_display ... ok [INFO] [stdout] test report::tests::signal_new_roundtrip ... ok [INFO] [stdout] test merkle::tests::walk_and_hash_children_sorted ... ok [INFO] [stdout] test project_tools::tests::detects_cursorrules ... ok [INFO] [stdout] test tests::analyze_directory_with_empty_dir_returns_empty ... ok [INFO] [stdout] test tests::analyze_directory_ignores_non_source_files ... ok [INFO] [stdout] test tests::analyze_directory_with_ignores_pattern_matched_file ... ok [INFO] [stdout] test tests::analyze_file_no_cache_works ... ok [INFO] [stdout] test tests::analyze_file_cache_hit_returns_consistent_result ... ok [INFO] [stdout] test tests::analyze_directory_with_rust_file ... ok [INFO] [stdout] test tests::analyze_directory_public_wrapper_finds_rust_file ... ok [INFO] [stdout] test tests::analyze_file_symbols_no_cache_works ... ok [INFO] [stdout] test tests::analyze_directory_with_cache_second_run_uses_dir_cache ... ok [INFO] [stdout] test tests::analyze_string_returns_report ... ok [INFO] [stdout] test tests::analyze_file_works ... ok [INFO] [stdout] test tests::analyze_directory_recurses_into_subdirs ... ok [INFO] [stdout] test tests::analyze_file_symbols_cache_hit_returns_consistent_result ... ok [INFO] [stdout] test tests::analyze_file_symbols_works ... ok [INFO] [stdout] test heuristics::tests::no_family_exceeds_35_percent ... ok [INFO] [stdout] test cache::tests::file_cache_miss_returns_none ... ok [INFO] [stdout] test cache::tests::dir_cache_miss_returns_none ... ok [INFO] [stdout] test cache::tests::symbol_cache_round_trip ... ok [INFO] [stdout] test cache::tests::redb_backend_round_trip ... ok [INFO] [stdout] test cache::tests::tiered_backend_promotes_cold_to_hot ... ok [INFO] [stdout] test cache::tests::symbol_cache_miss_returns_none ... ok [INFO] [stdout] test cache::tests::file_cache_round_trip ... ok [INFO] [stdout] test cache::tests::dir_cache_round_trip ... ok [INFO] [stdout] test tests::analyze_directory_with_cache_ignores_pattern_matched_dir ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 212 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.78s [INFO] [stdout] [INFO] [stderr] Running tests/fixture_detection.rs (/opt/rustwide/target/debug/deps/fixture_detection-d6ee126872df33fb) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test gpt_javascript ... ok [INFO] [stdout] test gemini_javascript ... ok [INFO] [stdout] test gpt_python ... ok [INFO] [stdout] test gpt_rust ... ok [INFO] [stdout] test claude_rust ... ok [INFO] [stdout] test claude_javascript ... ok [INFO] [stdout] test gemini_python ... ok [INFO] [stdout] test claude_python ... ok [INFO] [stdout] test copilot_go ... ok [INFO] [stdout] test gemini_go ... ok [INFO] [stdout] test gpt_go ... ok [INFO] [stdout] test copilot_python ... ok [INFO] [stdout] test claude_go ... ok [INFO] [stdout] test gemini_rust ... ok [INFO] [stdout] test copilot_javascript ... ok [INFO] [stdout] test human_javascript ... ok [INFO] [stdout] test human_rust ... ok [INFO] [stdout] test human_go ... ok [INFO] [stdout] test copilot_rust ... ok [INFO] [stdout] test human_python ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Running tests/no_ignored_tests.rs (/opt/rustwide/target/debug/deps/no_ignored_tests-d40c1bef767e79f7) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test no_ignored_tests_in_codebase ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/self_detection.rs (/opt/rustwide/target/debug/deps/self_detection-842965e8522bdf84) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test analyze_string_produces_report ... ok [INFO] [stdout] test human_looking_code_detected ... ok [INFO] [stdout] test single_file_analysis_under_100ms ... ok [INFO] [stdout] test detects_own_source_as_ai_generated ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.61s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vibecheck_ml-0ec57f2e597d03ce) [INFO] [stdout] [INFO] [stdout] running 59 tests [INFO] [stdout] test classifier::tests::classifier_name_returns_expected_string ... ok [INFO] [stdout] test classifier::tests::model_metadata_with_none_accuracy ... ok [INFO] [stdout] test classifier::tests::constant_classifier_returns_single_family ... ok [INFO] [stdout] test classifier::tests::model_metadata_roundtrip ... ok [INFO] [stdout] test ensemble::tests::empty_ensemble_returns_empty_prediction ... ok [INFO] [stdout] test ensemble::tests::ensemble_default_is_empty ... ok [INFO] [stdout] test ensemble::tests::evaluate_accuracy_empty_returns_zero ... ok [INFO] [stdout] test ensemble::tests::decision_tree_trains_and_predicts ... ok [INFO] [stdout] test ensemble::tests::shift_non_negative_with_negative_values ... ok [INFO] [stdout] test ensemble::tests::naive_bayes_trains_and_predicts ... ok [INFO] [stdout] test ensemble::tests::vectorize_single_correct_shape ... ok [INFO] [stdout] test features::tests::empty_constructor ... ok [INFO] [stdout] test markov::tests::encode_sequence_uses_unk_for_unknown ... ok [INFO] [stdout] test markov::tests::families_for_language_lists_trained ... ok [INFO] [stdout] test markov::tests::intern_sequence_grows_vocab ... ok [INFO] [stdout] test markov::tests::markov_classifier_adaptive_backoff ... ok [INFO] [stdout] test markov::tests::markov_classifier_classify_normalizes_to_one ... ok [INFO] [stdout] test markov::tests::markov_classifier_classify_prefers_matching_family ... ok [INFO] [stdout] test markov::tests::markov_classifier_empty_for_unknown_language ... ok [INFO] [stdout] test markov::tests::markov_classifier_json_roundtrip ... ok [INFO] [stdout] test markov::tests::normalize_all_neg_infinity_returns_uniform ... ok [INFO] [stdout] test markov::tests::normalize_log_likelihoods_handles_neg_infinity ... ok [INFO] [stdout] test markov::tests::normalize_log_likelihoods_uniform_for_equal_ll ... ok [INFO] [stdout] test markov::tests::transition_matrix_empty_sequence ... ok [INFO] [stdout] test markov::tests::transition_matrix_json_roundtrip ... ok [INFO] [stdout] test markov::tests::transition_matrix_log_prob_known_context ... ok [INFO] [stdout] test markov::tests::transition_matrix_log_prob_unknown_context ... ok [INFO] [stdout] test markov::tests::transition_matrix_sequence_log_likelihood ... ok [INFO] [stdout] test markov::tests::transition_matrix_train_order1 ... ok [INFO] [stdout] test markov::tests::vocabulary_default ... ok [INFO] [stdout] test markov::tests::vocabulary_intern_and_get ... ok [INFO] [stdout] test markov::tests::vocabulary_is_empty ... ok [INFO] [stdout] test markov::tests::vocabulary_json_roundtrip ... ok [INFO] [stdout] test markov::tests::vocabulary_len ... ok [INFO] [stdout] test markov::tests::vocabulary_resolve ... ok [INFO] [stdout] test markov::tests::vocabulary_unk_is_zero ... ok [INFO] [stdout] test training::tests::build_dataset_shapes ... ok [INFO] [stdout] test training::tests::build_dataset_values_correct ... ok [INFO] [stdout] test training::tests::build_schema_unions_all_features ... ok [INFO] [stdout] test training::tests::label_encoder_decode_roundtrip ... ok [INFO] [stdout] test training::tests::label_encoder_families_returns_sorted ... ok [INFO] [stdout] test training::tests::label_encoder_fit_and_encode ... ok [INFO] [stdout] test training::tests::stratified_split_deterministic ... ok [INFO] [stdout] test training::tests::stratified_split_preserves_classes ... ok [INFO] [stdout] test features::tests::extract_features_fired_signal_has_weight ... ok [INFO] [stdout] test features::tests::extract_features_language_and_loc ... ok [INFO] [stdout] test features::tests::extract_features_includes_all_heuristic_ids ... ok [INFO] [stdout] test features::tests::extract_features_passes_metrics_through ... ok [INFO] [stdout] test ensemble::tests::logistic_regression_trains_and_predicts ... ok [INFO] [stdout] test features::tests::feature_schema_is_sorted ... ok [INFO] [stdout] test features::tests::dimensions_counts_both_signal_and_metric ... ok [INFO] [stdout] test ensemble::tests::ensemble_as_post_scorer ... ok [INFO] [stdout] test ensemble::tests::post_scorer_with_known_language ... ok [INFO] [stdout] test features::tests::to_flat_is_deterministic ... ok [INFO] [stdout] test features::tests::feature_vector_json_roundtrip ... ok [INFO] [stdout] test ensemble::tests::classifier_name_methods ... ok [INFO] [stdout] test ensemble::tests::evaluate_accuracy_computes_correct_ratio ... ok [INFO] [stdout] test ensemble::tests::ensemble_name_and_algorithm_names ... ok [INFO] [stdout] test ensemble::tests::ensemble_combines_classifiers ... ok [INFO] [stderr] Running tests/fixture_markov.rs (/opt/rustwide/target/debug/deps/fixture_markov-ea6ec867825776f3) [INFO] [stdout] [INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test different_languages_produce_different_sequences ... ok [INFO] [stdout] test ast_extraction_produces_nonempty_sequences ... ok [INFO] [stdout] test classifier_produces_scores_for_all_families ... ok [INFO] [stdout] test model_count_matches_trained ... ok [INFO] [stdout] test classifier_scores_normalize_to_one ... ok [INFO] [stdout] test classifier_differentiates_families_above_chance ... ok [INFO] [stdout] test json_roundtrip_preserves_classification ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] [stderr] Doc-tests vibecheck_core [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test vibecheck-core/src/ignore_rules.rs - ignore_rules::PatternIgnore (line 66) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s [INFO] [stdout] [INFO] [stderr] Doc-tests vibecheck_ml [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0404cfe80db5ad494a42cf089947d6ecfd61ef67c724ec4b44396694dbce5e34", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0404cfe80db5ad494a42cf089947d6ecfd61ef67c724ec4b44396694dbce5e34", kill_on_drop: false }` [INFO] [stdout] 0404cfe80db5ad494a42cf089947d6ecfd61ef67c724ec4b44396694dbce5e34