[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 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fo-k-a-y%2Fvibecheck" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/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-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/o-k-a-y/vibecheck on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tree-sitter-language v0.1.7
[INFO] [stderr]   Downloaded ndarray-rand v0.15.0
[INFO] [stderr]   Downloaded notify-types v1.0.1
[INFO] [stderr]   Downloaded linfa-bayes v0.8.1
[INFO] [stderr]   Downloaded inotify v0.10.2
[INFO] [stderr]   Downloaded rand_xoshiro v0.7.0
[INFO] [stderr]   Downloaded notify v7.0.0
[INFO] [stderr]   Downloaded argmin-math v0.5.1
[INFO] [stderr]   Downloaded ndarray-stats v0.6.0
[INFO] [stderr]   Downloaded sprs v0.11.2
[INFO] [stderr]   Downloaded noisy_float v0.2.1
[INFO] [stderr]   Downloaded linfa v0.8.1
[INFO] [stderr]   Downloaded tree-sitter v0.25.10
[INFO] [stderr]   Downloaded argmin v0.11.0
[INFO] [stderr]   Downloaded redb v2.6.3
[INFO] [stderr]   Downloaded tree-sitter-python v0.25.0
[INFO] [stderr]   Downloaded linfa-logistic v0.8.1
[INFO] [stderr]   Downloaded linfa-trees v0.8.1
[INFO] [stderr]   Downloaded tree-sitter-rust v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2c5edee9a8f7064c0e15202304e4483bc9bd70e53b66193ba096642c27a14624
[INFO] running `Command { std: "docker" "start" "-a" "2c5edee9a8f7064c0e15202304e4483bc9bd70e53b66193ba096642c27a14624", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c5edee9a8f7064c0e15202304e4483bc9bd70e53b66193ba096642c27a14624", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c5edee9a8f7064c0e15202304e4483bc9bd70e53b66193ba096642c27a14624", kill_on_drop: false }`
[INFO] [stdout] 2c5edee9a8f7064c0e15202304e4483bc9bd70e53b66193ba096642c27a14624
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a18194d760d7e0363f1c7f47db6b54301790c5bfdb8fb61599ced39878d53c0
[INFO] running `Command { std: "docker" "start" "-a" "4a18194d760d7e0363f1c7f47db6b54301790c5bfdb8fb61599ced39878d53c0", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde v1.0.228
[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 smallvec v1.15.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling tree-sitter-go v0.23.4
[INFO] [stderr]    Compiling tree-sitter-rust v0.24.0
[INFO] [stderr]    Compiling tree-sitter-javascript v0.23.1
[INFO] [stderr]    Compiling tree-sitter-python v0.25.0
[INFO] [stderr]    Compiling redb v2.6.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling linfa v0.8.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling tree-sitter v0.25.10
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling noisy_float v0.2.1
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[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 thiserror v2.0.18
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling 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 strum v0.26.3
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling clap v4.5.60
[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 toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ndarray v0.16.1
[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 vibecheck-core v0.6.0 (/opt/rustwide/workdir/vibecheck-core)
[INFO] [stderr]    Compiling sprs v0.11.2
[INFO] [stderr]    Compiling ndarray-stats v0.6.0
[INFO] [stderr]    Compiling argmin-math v0.5.1
[INFO] [stderr]    Compiling ndarray-rand v0.15.0
[INFO] [stderr]    Compiling argmin v0.11.0
[INFO] [stderr]    Compiling vibecheck-cli v0.6.0 (/opt/rustwide/workdir/vibecheck-cli)
[INFO] [stderr]    Compiling linfa-bayes v0.8.1
[INFO] [stderr]    Compiling linfa-trees v0.8.1
[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 25s
[INFO] running `Command { std: "docker" "inspect" "4a18194d760d7e0363f1c7f47db6b54301790c5bfdb8fb61599ced39878d53c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a18194d760d7e0363f1c7f47db6b54301790c5bfdb8fb61599ced39878d53c0", kill_on_drop: false }`
[INFO] [stdout] 4a18194d760d7e0363f1c7f47db6b54301790c5bfdb8fb61599ced39878d53c0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7ed0b9b0878f0ebb70c9173b3b4636c21d045d40731460bb4115b4d338fef05a
[INFO] running `Command { std: "docker" "start" "-a" "7ed0b9b0878f0ebb70c9173b3b4636c21d045d40731460bb4115b4d338fef05a", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[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 12.69s
[INFO] running `Command { std: "docker" "inspect" "7ed0b9b0878f0ebb70c9173b3b4636c21d045d40731460bb4115b4d338fef05a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ed0b9b0878f0ebb70c9173b3b4636c21d045d40731460bb4115b4d338fef05a", kill_on_drop: false }`
[INFO] [stdout] 7ed0b9b0878f0ebb70c9173b3b4636c21d045d40731460bb4115b4d338fef05a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a6a829009061d52aeeb3f8b41d7b4a2f2bdc07a6d5d8f24a572ece8cb734f37d
[INFO] running `Command { std: "docker" "start" "-a" "a6a829009061d52aeeb3f8b41d7b4a2f2bdc07a6d5d8f24a572ece8cb734f37d", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/vibecheck-2efdd4d6e8b6d732)
[INFO] [stdout] 
[INFO] [stdout] running 80 tests
[INFO] [stdout] test commands::analyze::tests::collect_files_single_file ... ok
[INFO] [stdout] test commands::analyze::tests::parse_families_known ... ok
[INFO] [stdout] test commands::analyze::tests::collect_files_respects_ignore ... ok
[INFO] [stdout] test commands::analyze::tests::format_report_pretty_contains_verdict ... ok
[INFO] [stdout] test commands::analyze::tests::format_report_json_is_valid ... ok
[INFO] [stdout] test commands::analyze::tests::parse_families_case_insensitive ... ok
[INFO] [stdout] test commands::analyze::tests::parse_format_pretty ... ok
[INFO] [stdout] test commands::analyze::tests::parse_families_unknown_is_error ... ok
[INFO] [stdout] test commands::analyze::tests::format_report_text_contains_verdict ... ok
[INFO] [stdout] test commands::analyze::tests::collect_files_filters_by_extension ... ok
[INFO] [stdout] test commands::analyze::tests::parse_format_text ... ok
[INFO] [stdout] test commands::analyze::tests::parse_format_unknown_is_error ... 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::history::tests::is_source_file_unsupported ... 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::format_date_epoch ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_empty_reports_returns_empty ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_dir_family_is_dominant_by_weighted_score ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_single_file_at_root ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_dir_confidence_is_weighted_average ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_synthesises_directory_entry ... 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::move_down_clamps_at_last_entry ... ok
[INFO] [stdout] test commands::tui::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_files_sorted_alphabetically ... ok
[INFO] [stdout] test commands::tui::tests::name_to_family_all_known ... 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::scroll_down_clamps_at_content_minus_pane ... ok
[INFO] [stdout] test commands::tui::tests::scroll_down_increases_offset ... ok
[INFO] [stdout] test commands::tui::tests::name_to_family_unknown_falls_back_to_human ... ok
[INFO] [stdout] test commands::tui::tests::scroll_up_clamps_at_zero ... ok
[INFO] [stdout] test commands::tui::tests::scroll_up_decreases_offset ... ok
[INFO] [stdout] test commands::tui::tests::symbol_lines_class_kind_tag ... ok
[INFO] [stdout] test commands::tui::tests::symbol_lines_empty_slice_returns_empty ... ok
[INFO] [stdout] test commands::tui::tests::scroll_right_clamps_at_content_minus_pane ... ok
[INFO] [stdout] test commands::tui::tests::symbol_lines_function_kind_tag ... ok
[INFO] [stdout] test commands::tui::tests::scroll_up_after_down_returns_to_origin ... 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_name_called_name_is_unambiguous ... ok
[INFO] [stdout] test commands::tui::tests::symbol_lines_name_fits_within_22_chars_unchanged ... ok
[INFO] [stdout] test commands::tui::tests::symbol_lines_name_truncated_when_over_22_chars ... 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_zero_confidence_has_no_bar ... ok
[INFO] [stdout] test commands::tui::tests::symbol_lines_full_confidence_fills_bar ... ok
[INFO] [stdout] test commands::tui::tests::toggle_collapse_expands_collapsed_dir ... 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::toggle_collapse_collapses_expanded_dir ... ok
[INFO] [stdout] test commands::tui::tests::visible_empty_app_returns_empty ... ok
[INFO] [stdout] test commands::tui::tests::visible_sibling_dir_stays_visible_when_other_collapsed ... ok
[INFO] [stdout] test commands::watch::tests::chrono_now_is_valid_time_format ... ok
[INFO] [stdout] test commands::watch::tests::is_supported_known_extensions ... ok
[INFO] [stdout] test commands::watch::tests::is_supported_rejects_unsupported ... ok
[INFO] [stdout] test commands::watch::tests::supported_exts_includes_all_expected ... 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_insufficient_data ... ok
[INFO] [stdout] test tests::cli_has_all_subcommands ... ok
[INFO] [stdout] test commands::tui::tests::visible_collapsed_dir_hides_direct_children ... ok
[INFO] [stdout] test tests::cli_version_is_set ... ok
[INFO] [stdout] test tests::cli_parses_without_error ... ok
[INFO] [stderr]      Running tests/bump_version.rs (/opt/rustwide/target/debug/deps/bump_version-04d96cf504f970d7)
[INFO] [stdout] test commands::heuristics::tests::all_heuristics_nonempty ... ok
[INFO] [stdout] test commands::heuristics::tests::run_unknown_format_falls_back_to_table ... 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 output::tests::format_pretty_shows_signals_when_present ... ok
[INFO] [stdout] test output::tests::format_pretty_without_file_path ... ok
[INFO] [stdout] test commands::tui::tests::flat_tree_dirs_appear_before_sibling_files ... ok
[INFO] [stdout] test commands::analyze::tests::parse_format_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test patch_from_absolute_zero ... ok
[INFO] [stdout] test unrelated_dep_version_strings_untouched ... ok
[INFO] [stdout] test missing_cargo_toml_exits_nonzero ... ok
[INFO] [stdout] test invalid_level_exits_nonzero ... ok
[INFO] [stdout] test minor_increments_minor_and_resets_patch ... ok
[INFO] [stdout] test major_increments_major_and_resets_minor_and_patch ... ok
[INFO] [stdout] test old_version_absent_after_bump ... ok
[INFO] [stdout] test stdout_contains_old_to_new_arrow ... ok
[INFO] [stdout] test stdout_contains_commit_hint_with_new_version ... ok
[INFO] [stdout] test major_promotes_from_zero_series ... ok
[INFO] [stdout] test stdout_contains_bump_level_label ... ok
[INFO] [stdout] test cargo_toml_with_no_version_line_exits_nonzero ... ok
[INFO] [stdout] test both_version_occurrences_updated ... ok
[INFO] [stdout] test no_arguments_exits_nonzero ... ok
[INFO] [stdout] test minor_produces_double_digit_minor ... ok
[INFO] [stdout] test patch_increments_patch ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vibecheck_core-6705cf6272eef369)
[INFO] [stdout] 
[INFO] [stdout] running 212 tests
[INFO] [stdout] test analyzers::cst::go::tests::extract_symbol_line_numbers ... ok
[INFO] [stdout] test analyzers::cst::go::tests::extract_top_level_functions ... 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::go::tests::extract_method_declaration ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::async_await_metrics ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::optional_chaining_metrics ... ok
[INFO] [stdout] test analyzers::cst::go::tests::err_nil_check_metrics ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::extract_function_declaration ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::extract_symbol_line_numbers ... ok
[INFO] [stdout] test analyzers::cst::python::tests::extract_symbol_line_numbers ... 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::fstring_metrics ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::extract_arrow_function_const ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::high_arrow_ratio_metrics ... ok
[INFO] [stdout] test analyzers::cst::python::tests::nested_functions_not_extracted ... ok
[INFO] [stdout] test analyzers::cst::python::tests::type_annotation_metrics ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::then_chains_metrics ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::non_function_const_not_extracted ... ok
[INFO] [stdout] test analyzers::cst::javascript::tests::extract_class_methods ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::nested_functions_not_extracted ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::extract_methods_from_impl ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::extract_free_functions ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::doc_coverage_metrics ... ok
[INFO] [stdout] test analyzers::cst::python::tests::docstring_coverage_metrics ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::avg_fn_length_computed ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::extract_symbol_line_numbers ... ok
[INFO] [stdout] test analyzers::tests::analyze_go_defaults_to_analyze ... ok
[INFO] [stdout] test analyzers::cst::rust::tests::sorted_imports_metrics ... 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::low_complexity_metrics ... ok
[INFO] [stdout] test analyzers::tests::analyze_with_language_dispatches_none_as_rust ... ok
[INFO] [stdout] test analyzers::tests::analyze_with_language_dispatches_all_variants ... 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_javascript_defaults_to_analyze ... ok
[INFO] [stdout] test analyzers::tests::default_cst_analyzers_are_nonempty ... ok
[INFO] [stdout] test analyzers::text::ai_signals::tests::javascript_no_todo_is_claude ... ok
[INFO] [stdout] test analyzers::text::ai_signals::tests::python_no_todo_is_claude ... ok
[INFO] [stdout] test analyzers::text::ai_signals::tests::go_no_todo_is_claude ... ok
[INFO] [stdout] test analyzers::text::ai_signals::tests::no_todo_in_large_file_is_claude ... 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::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::low_annotation_ratio_is_gemini ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::high_comment_density_is_claude ... ok
[INFO] [stdout] test analyzers::text::ai_signals::tests::short_source_no_signals ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::empty_source_no_signals ... ok
[INFO] [stdout] test analyzers::text::code_structure::tests::python_sorted_imports_is_gpt ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::javascript_high_comment_density_is_claude ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::five_doc_comments_is_claude ... ok
[INFO] [stdout] test analyzers::text::ai_signals::tests::todo_present_suppresses_no_todo_signal ... ok
[INFO] [stdout] test analyzers::text::code_structure::tests::sorted_imports_is_gpt ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::teaching_voice_1_is_gpt ... ok
[INFO] [stdout] test analyzers::text::code_structure::tests::go_short_lines_is_gemini ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::go_high_comment_density_is_claude ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::python_high_comment_density_is_claude ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::teaching_voice_3_plus_is_claude ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::terse_markers_is_human ... 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::two_panics_is_human ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::two_expect_calls_is_claude ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::three_question_marks_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::five_unwraps_is_human ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::five_iterator_methods_is_claude ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::short_source_no_signals ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::go_goroutines_is_gpt ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::go_interface_check_is_claude ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::go_error_returns_is_claude ... 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::code_structure::tests::python_short_lines_is_gemini ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_const_declarations_is_copilot ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::go_defer_stmts_is_gemini ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_async_await_is_gemini ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_var_declarations_is_human ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::javascript_optional_chaining_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_fstrings_is_claude ... 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_destructuring_is_gemini ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::three_string_concatenations_is_human ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::two_impl_from_is_claude ... ok
[INFO] [stdout] test analyzers::text::naming::tests::five_vars_no_single_char_is_claude ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::python_type_annotated_functions_is_claude ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::three_if_let_is_claude ... ok
[INFO] [stdout] test analyzers::text::naming::tests::long_variable_names_is_claude ... ok
[INFO] [stdout] test analyzers::text::naming::tests::go_long_names_is_claude ... ok
[INFO] [stdout] test analyzers::text::naming::tests::python_long_names_is_claude ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::python_old_format_is_human ... ok
[INFO] [stdout] test analyzers::text::naming::tests::javascript_long_names_is_claude ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::python_list_comprehensions_is_claude ... ok
[INFO] [stdout] test analyzers::text::naming::tests::three_single_char_names_is_human ... ok
[INFO] [stdout] test analyzers::text::naming::tests::python_short_source_no_signals ... ok
[INFO] [stdout] test analyzers::text::idiom_usage::tests::rust_iterator_signal_not_emitted_for_python_file ... ok
[INFO] [stdout] test cache::tests::in_memory_backend_respects_max_entries ... ok
[INFO] [stdout] test cache::tests::default_path_ends_with_vibecheck ... ok
[INFO] [stdout] test cache::tests::custom_backend_via_with_backend ... ok
[INFO] [stdout] test cache::tests::in_memory_backend_allows_update_when_full ... ok
[INFO] [stdout] test analyzers::text::naming::tests::short_source_no_signals ... ok
[INFO] [stdout] test analyzers::text::naming::tests::short_variable_names_is_human ... ok
[INFO] [stdout] test cache::tests::namespaces_isolate_data ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::one_to_three_unwraps_is_copilot ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::javascript_try_catch_is_human ... ok
[INFO] [stdout] test analyzers::tests::default_analyzers_are_nonempty ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::python_broad_except_is_human ... ok
[INFO] [stdout] test analyzers::text::error_handling::tests::zero_unwrap_in_large_file_is_claude ... ok
[INFO] [stdout] test cache::tests::resolve_path_config_override_takes_priority ... 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::abbrev_nonempty_for_all_families ... ok
[INFO] [stdout] test colors::tests::rgb_round_trips_to_svg ... ok
[INFO] [stdout] test colors::tests::svg_colors_all_families ... ok
[INFO] [stdout] test colors::tests::terminal_colors_all_families ... ok
[INFO] [stdout] test analyzers::text::comment_style::tests::low_comment_density_is_human ... ok
[INFO] [stdout] test heuristics::tests::configured_heuristics_zero_disables ... ok
[INFO] [stdout] test heuristics::tests::default_heuristics_returns_correct_weight ... ok
[INFO] [stdout] test heuristics::tests::configured_heuristics_override_applies ... ok
[INFO] [stdout] test heuristics::tests::embedded_toml_parses_successfully ... ok
[INFO] [stdout] test heuristics::tests::signal_id_constants_match_all_heuristics ... ok
[INFO] [stdout] test heuristics::tests::all_heuristics_ids_are_unique ... ok
[INFO] [stdout] test heuristics::tests::no_family_exceeds_35_percent ... ok
[INFO] [stdout] test heuristics::tests::inert_heuristics_matches_defaults ... 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 ignore_rules::tests::cache_dir_parsed_from_config ... 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_valid ... ok
[INFO] [stdout] test ignore_rules::tests::ignore_config_from_file_error_on_bad_toml ... ok
[INFO] [stdout] test ignore_rules::tests::ignore_config_load_defaults_when_no_file ... ok
[INFO] [stdout] test ignore_rules::tests::pattern_ignore_matches_substring ... ok
[INFO] [stdout] test ignore_rules::tests::pattern_ignore_dir_delegates_to_is_ignored ... ok
[INFO] [stdout] test ignore_rules::tests::cache_dir_none_when_not_configured ... ok
[INFO] [stdout] test merkle::tests::empty_dir_hash_is_deterministic ... ok
[INFO] [stdout] test merkle::tests::order_matters ... ok
[INFO] [stdout] test ignore_rules::tests::find_config_root_stops_at_git ... ok
[INFO] [stdout] test merkle::tests::different_contents_produce_different_hashes ... ok
[INFO] [stdout] test ignore_rules::tests::ignore_config_parses_patterns ... ok
[INFO] [stdout] test ignore_rules::tests::cache_dir_absent_section_is_none ... ok
[INFO] [stdout] test merkle::tests::walk_and_hash_empty_dir_is_stable ... ok
[INFO] [stdout] test merkle::tests::walk_and_hash_with_ignored_dir_does_not_affect_hash ... 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 output::tests::format_json_is_valid ... ok
[INFO] [stdout] test merkle::tests::walk_and_hash_children_sorted ... ok
[INFO] [stdout] test output::tests::format_text_contains_verdict ... ok
[INFO] [stdout] test output::tests::format_text_insufficient_data ... ok
[INFO] [stdout] test merkle::tests::walk_and_hash_with_ignores_matched_files ... ok
[INFO] [stdout] test output::tests::format_text_with_signals ... ok
[INFO] [stdout] test output::tests::format_text_with_file_path ... ok
[INFO] [stdout] test pipeline::tests::aggregate_empty_signals_returns_zero_confidence ... ok
[INFO] [stdout] test pipeline::tests::blend_one_returns_ml ... ok
[INFO] [stdout] test pipeline::tests::blend_zero_returns_heuristic ... ok
[INFO] [stdout] test pipeline::tests::blend_half_averages_scores ... ok
[INFO] [stdout] test pipeline::tests::blend_preserves_normalization ... ok
[INFO] [stdout] test output::tests::output_format_eq ... ok
[INFO] [stdout] test pipeline::tests::run_symbols_symbol_reports_have_attribution ... ok
[INFO] [stdout] test pipeline::tests::run_symbols_python_extracts_functions_and_methods ... ok
[INFO] [stdout] test pipeline::tests::run_symbols_empty_for_unsupported_extension ... ok
[INFO] [stdout] test pipeline::tests::without_scorer_behavior_unchanged ... ok
[INFO] [stdout] test pipeline::tests::run_symbols_returns_one_report_per_function ... ok
[INFO] [stdout] test project_tools::tests::detects_agents_md ... ok
[INFO] [stdout] test pipeline::tests::with_model_scorer_is_called ... ok
[INFO] [stdout] test pipeline::tests::with_model_blend_clamped ... ok
[INFO] [stdout] test project_tools::tests::detects_aider_config ... ok
[INFO] [stdout] test project_tools::tests::detects_claude_md ... 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 project_tools::tests::detects_cursorrules ... ok
[INFO] [stdout] test project_tools::tests::detects_multiple_tools ... ok
[INFO] [stdout] test project_tools::tests::detects_windsurfrules ... ok
[INFO] [stdout] test project_tools::tests::detects_gemini_md ... ok
[INFO] [stdout] test project_tools::tests::empty_dir_detects_nothing ... ok
[INFO] [stdout] test report::tests::display_name_class_no_parens ... ok
[INFO] [stdout] test report::tests::display_name_function_appends_parens ... ok
[INFO] [stdout] test report::tests::family_id_from_model_family_roundtrip ... ok
[INFO] [stdout] test report::tests::display_name_truncates ... ok
[INFO] [stdout] test report::tests::family_id_to_model_family_case_insensitive ... ok
[INFO] [stdout] test report::tests::family_id_json_roundtrip ... 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::kind_label_method ... ok
[INFO] [stdout] test report::tests::model_family_display ... ok
[INFO] [stdout] test report::tests::signal_new_roundtrip ... 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_directory_with_empty_dir_returns_empty ... ok
[INFO] [stdout] test tests::analyze_directory_public_wrapper_finds_rust_file ... 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_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_directory_recurses_into_subdirs ... ok
[INFO] [stdout] test tests::analyze_file_symbols_works ... ok
[INFO] [stdout] test tests::analyze_file_no_cache_works ... ok
[INFO] [stdout] test tests::analyze_file_symbols_cache_hit_returns_consistent_result ... ok
[INFO] [stdout] test tests::analyze_string_returns_report ... ok
[INFO] [stdout] test tests::analyze_file_works ... ok
[INFO] [stdout] test cache::tests::file_cache_round_trip ... ok
[INFO] [stdout] test cache::tests::tiered_backend_promotes_cold_to_hot ... ok
[INFO] [stdout] test cache::tests::redb_backend_round_trip ... ok
[INFO] [stdout] test cache::tests::dir_cache_round_trip ... ok
[INFO] [stdout] test cache::tests::dir_cache_miss_returns_none ... ok
[INFO] [stdout] test cache::tests::file_cache_miss_returns_none ... ok
[INFO] [stdout] test cache::tests::symbol_cache_round_trip ... ok
[INFO] [stdout] test cache::tests::symbol_cache_miss_returns_none ... 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 1.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fixture_detection.rs (/opt/rustwide/target/debug/deps/fixture_detection-29ebbf895d50eca2)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test gpt_javascript ... ok
[INFO] [stdout] test gemini_rust ... ok
[INFO] [stdout] test copilot_python ... ok
[INFO] [stdout] test claude_rust ... ok
[INFO] [stdout] test copilot_rust ... ok
[INFO] [stdout] test gemini_javascript ... ok
[INFO] [stdout] test gpt_go ... ok
[INFO] [stdout] test gemini_python ... ok
[INFO] [stdout] test gpt_python ... ok
[INFO] [stdout] test copilot_go ... ok
[INFO] [stdout] test claude_javascript ... ok
[INFO] [stdout] test claude_python ... ok
[INFO] [stdout] test claude_go ... ok
[INFO] [stdout] test gpt_rust ... ok
[INFO] [stdout] test copilot_javascript ... ok
[INFO] [stdout] test human_python ... ok
[INFO] [stdout] test human_javascript ... ok
[INFO] [stdout] test human_go ... ok
[INFO] [stdout] test human_rust ... ok
[INFO] [stdout] test gemini_go ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/no_ignored_tests.rs (/opt/rustwide/target/debug/deps/no_ignored_tests-97ec6227c3e84caf)
[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-6aae4ea466640825)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test human_looking_code_detected ... ok
[INFO] [stdout] test analyze_string_produces_report ... 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.99s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vibecheck_ml-803ecc4f5b973147)
[INFO] [stdout] 
[INFO] [stdout] running 59 tests
[INFO] [stdout] test classifier::tests::classifier_name_returns_expected_string ... ok
[INFO] [stdout] test classifier::tests::constant_classifier_returns_single_family ... ok
[INFO] [stdout] test classifier::tests::model_metadata_roundtrip ... ok
[INFO] [stdout] test classifier::tests::model_metadata_with_none_accuracy ... ok
[INFO] [stdout] test ensemble::tests::empty_ensemble_returns_empty_prediction ... ok
[INFO] [stdout] test ensemble::tests::evaluate_accuracy_empty_returns_zero ... 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 ensemble::tests::decision_tree_trains_and_predicts ... ok
[INFO] [stdout] test ensemble::tests::ensemble_default_is_empty ... ok
[INFO] [stdout] test ensemble::tests::ensemble_combines_classifiers ... 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 ensemble::tests::logistic_regression_trains_and_predicts ... 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_json_roundtrip ... ok
[INFO] [stdout] test markov::tests::normalize_all_neg_infinity_returns_uniform ... ok
[INFO] [stdout] test markov::tests::encode_sequence_uses_unk_for_unknown ... 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::markov_classifier_empty_for_unknown_language ... 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::vocabulary_default ... ok
[INFO] [stdout] test markov::tests::transition_matrix_train_order1 ... 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 markov::tests::normalize_log_likelihoods_handles_neg_infinity ... ok
[INFO] [stdout] test ensemble::tests::ensemble_name_and_algorithm_names ... ok
[INFO] [stdout] test ensemble::tests::evaluate_accuracy_computes_correct_ratio ... ok
[INFO] [stdout] test features::tests::feature_schema_is_sorted ... ok
[INFO] [stdout] test ensemble::tests::ensemble_as_post_scorer ... ok
[INFO] [stdout] test features::tests::extract_features_includes_all_heuristic_ids ... ok
[INFO] [stdout] test features::tests::feature_vector_json_roundtrip ... ok
[INFO] [stdout] test features::tests::to_flat_is_deterministic ... ok
[INFO] [stdout] test features::tests::extract_features_passes_metrics_through ... ok
[INFO] [stdout] test features::tests::dimensions_counts_both_signal_and_metric ... 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 ensemble::tests::post_scorer_with_known_language ... ok
[INFO] [stdout] test ensemble::tests::classifier_name_methods ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fixture_markov.rs (/opt/rustwide/target/debug/deps/fixture_markov-fac92e7dbfea0998)
[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 json_roundtrip_preserves_classification ... 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] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[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] [stderr]    Doc-tests vibecheck_ml
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
[INFO] [stdout] 
[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" "a6a829009061d52aeeb3f8b41d7b4a2f2bdc07a6d5d8f24a572ece8cb734f37d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6a829009061d52aeeb3f8b41d7b4a2f2bdc07a6d5d8f24a572ece8cb734f37d", kill_on_drop: false }`
[INFO] [stdout] a6a829009061d52aeeb3f8b41d7b4a2f2bdc07a6d5d8f24a572ece8cb734f37d
