[INFO] cloning repository https://github.com/RMANOV/smartkey
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RMANOV/smartkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRMANOV%2Fsmartkey", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRMANOV%2Fsmartkey'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 39b18d23ad589cacdc8bc17a56d9f518a4dd44b6
[INFO] testing RMANOV/smartkey against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRMANOV%2Fsmartkey" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/RMANOV/smartkey
[INFO] finished tweaking git repo https://github.com/RMANOV/smartkey
[INFO] tweaked toml for git repo https://github.com/RMANOV/smartkey written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/RMANOV/smartkey on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/RMANOV/smartkey 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded is-terminal v0.4.17
[INFO] [stderr]   Downloaded tempfile v3.27.0
[INFO] [stderr]   Downloaded criterion v0.5.1
[INFO] [stderr]   Downloaded criterion-plot v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eacb87f1847d5477a5f3b509e2c1e9587706f3d567d7cb85167d6982b1c9e19e
[INFO] running `Command { std: "docker" "start" "-a" "eacb87f1847d5477a5f3b509e2c1e9587706f3d567d7cb85167d6982b1c9e19e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eacb87f1847d5477a5f3b509e2c1e9587706f3d567d7cb85167d6982b1c9e19e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eacb87f1847d5477a5f3b509e2c1e9587706f3d567d7cb85167d6982b1c9e19e", kill_on_drop: false }`
[INFO] [stdout] eacb87f1847d5477a5f3b509e2c1e9587706f3d567d7cb85167d6982b1c9e19e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7e27b6f089287b599f34ace28826417d6e3218581a775cec2f85e99d5319455f
[INFO] running `Command { std: "docker" "start" "-a" "7e27b6f089287b599f34ace28826417d6e3218581a775cec2f85e99d5319455f", kill_on_drop: false }`
[INFO] [stderr]    Compiling target-lexicon v0.13.5
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling pyo3-build-config v0.28.2
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling pyo3-macros-backend v0.28.2
[INFO] [stderr]    Compiling pyo3-ffi v0.28.2
[INFO] [stderr]    Compiling pyo3 v0.28.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling pyo3-macros v0.28.2
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling smartkey-core v0.5.0 (/opt/rustwide/workdir/crates/smartkey-core)
[INFO] [stderr]    Compiling smartkey-playground v0.1.0 (/opt/rustwide/workdir/crates/smartkey-playground)
[INFO] [stderr]    Compiling smartkey-win v0.5.0 (/opt/rustwide/workdir/crates/smartkey-win)
[INFO] [stderr]    Compiling smartkey-mac v0.5.0 (/opt/rustwide/workdir/crates/smartkey-mac)
[INFO] [stderr]    Compiling smartkey-py v0.5.0 (/opt/rustwide/workdir/crates/smartkey-py)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.68s
[INFO] running `Command { std: "docker" "inspect" "7e27b6f089287b599f34ace28826417d6e3218581a775cec2f85e99d5319455f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e27b6f089287b599f34ace28826417d6e3218581a775cec2f85e99d5319455f", kill_on_drop: false }`
[INFO] [stdout] 7e27b6f089287b599f34ace28826417d6e3218581a775cec2f85e99d5319455f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 29219492094ccee15176136ba122cce7be604148c19290f5d445e23bc9ea0d43
[INFO] running `Command { std: "docker" "start" "-a" "29219492094ccee15176136ba122cce7be604148c19290f5d445e23bc9ea0d43", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling smartkey-core v0.5.0 (/opt/rustwide/workdir/crates/smartkey-core)
[INFO] [stderr]    Compiling smartkey-playground v0.1.0 (/opt/rustwide/workdir/crates/smartkey-playground)
[INFO] [stderr]    Compiling smartkey-win v0.5.0 (/opt/rustwide/workdir/crates/smartkey-win)
[INFO] [stderr]    Compiling smartkey-mac v0.5.0 (/opt/rustwide/workdir/crates/smartkey-mac)
[INFO] [stderr]    Compiling smartkey-py v0.5.0 (/opt/rustwide/workdir/crates/smartkey-py)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 57.03s
[INFO] running `Command { std: "docker" "inspect" "29219492094ccee15176136ba122cce7be604148c19290f5d445e23bc9ea0d43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29219492094ccee15176136ba122cce7be604148c19290f5d445e23bc9ea0d43", kill_on_drop: false }`
[INFO] [stdout] 29219492094ccee15176136ba122cce7be604148c19290f5d445e23bc9ea0d43
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5c6bd8c90687ba7a28709a9497eab3075dcfa06cffc1299478ffce9732166e08
[INFO] running `Command { std: "docker" "start" "-a" "5c6bd8c90687ba7a28709a9497eab3075dcfa06cffc1299478ffce9732166e08", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/smartkey_core-7ffe73017bfb6b77)
[INFO] [stdout] 
[INFO] [stdout] running 379 tests
[INFO] [stdout] test bg_morphology::tests::test_latin_words_ignored ... ok
[INFO] [stdout] test bg_morphology::tests::test_stem_word ... ok
[INFO] [stdout] test bg_morphology::tests::test_frequency_pooling ... ok
[INFO] [stdout] test bg_morphology::tests::test_stem_preserves_long_word ... ok
[INFO] [stdout] test bg_morphology::tests::test_short_words_not_stemmed ... ok
[INFO] [stdout] test bpe::tests::test_bpe_empty_tokenizer ... ok
[INFO] [stdout] test bpe::tests::test_bpe_not_triggered_for_empty ... ok
[INFO] [stdout] test bpe::tests::test_bpe_tokenize_unknown ... ok
[INFO] [stdout] test bpe::tests::test_parse_merge_rules ... ok
[INFO] [stdout] test bpe::tests::test_bpe_tokenize_compound ... ok
[INFO] [stdout] test cache::tests::test_cache_hit_returns_same_results ... ok
[INFO] [stdout] test cache::tests::test_cache_invalidated_on_commit ... ok
[INFO] [stdout] test cache::tests::test_lru_eviction ... ok
[INFO] [stdout] test cache::tests::test_generational_invalidation ... ok
[INFO] [stdout] test cache::tests::test_cache_miss_on_different_context ... ok
[INFO] [stdout] test cache::tests::test_cache_miss_on_different_prefix ... ok
[INFO] [stdout] test cache::tests::test_prefix_invalidation ... ok
[INFO] [stdout] test calibration::tests::observe_nan_is_silently_ignored ... ok
[INFO] [stdout] test calibration::tests::calibrate_still_works_after_nan_observations_are_filtered ... ok
[INFO] [stdout] test calibration::tests::observe_neg_infinity_is_silently_ignored ... ok
[INFO] [stdout] test calibration::tests::test_calibrator_bounds ... ok
[INFO] [stdout] test calibration::tests::observe_infinity_is_silently_ignored ... ok
[INFO] [stdout] test calibration::tests::test_calibrator_not_ready_with_few_samples ... ok
[INFO] [stdout] test bpe::tests::test_bpe_oov_suggestions ... ok
[INFO] [stdout] test bpe::tests::test_bpe_subword_score ... ok
[INFO] [stdout] test calibration::tests::test_calibrator_monotone ... ok
[INFO] [stdout] test calibration::tests::test_calibrator_ready_after_enough_samples ... ok
[INFO] [stdout] test caps::tests::apply_all_caps ... ok
[INFO] [stdout] test caps::tests::capitalize_first_ascii ... ok
[INFO] [stdout] test caps::tests::apply_normal_unchanged ... ok
[INFO] [stdout] test caps::tests::capitalize_first_cyrillic ... ok
[INFO] [stdout] test caps::tests::capitalize_first_empty ... ok
[INFO] [stdout] test caps::tests::detect_camel_case ... ok
[INFO] [stdout] test caps::tests::detect_normal_capitalized ... ok
[INFO] [stdout] test caps::tests::detect_single_upper_is_normal ... ok
[INFO] [stdout] test caps::tests::detect_pascal_case ... ok
[INFO] [stdout] test collocation::tests::test_collocation_detection ... ok
[INFO] [stdout] test context_sampler::tests::analyze_surrounding_empty_string ... ok
[INFO] [stdout] test collocation::tests::test_collocation_boost ... ok
[INFO] [stdout] test caps::tests::detect_normal_lowercase ... ok
[INFO] [stdout] test caps::tests::detect_all_caps ... ok
[INFO] [stdout] test context_sampler::tests::analyze_surrounding_pure_cyrillic_detects_bg ... ok
[INFO] [stdout] test context_sampler::tests::analyze_surrounding_pure_latin_detects_en ... ok
[INFO] [stdout] test context_sampler::tests::analyze_surrounding_recent_words_max_10 ... ok
[INFO] [stdout] test context_sampler::tests::analyze_surrounding_words_are_lowercased ... ok
[INFO] [stdout] test context_sampler::tests::null_sampler_returns_none ... ok
[INFO] [stdout] test corpus::tests::from_json_reports_dropped_entries ... ok
[INFO] [stdout] test corpus::tests::json_round_trip ... ok
[INFO] [stdout] test caps::tests::proper_noun_check ... ok
[INFO] [stdout] test collocation::tests::test_no_context_no_boost ... ok
[INFO] [stdout] test correction_memory::tests::actual_updates_on_new_correction ... ok
[INFO] [stdout] test corpus::tests::load_into_engine_produces_predictions ... ok
[INFO] [stdout] test correction_memory::tests::different_predicted_prefixes_tracked_independently ... ok
[INFO] [stdout] test correction_memory::tests::context_hash_differs_for_different_context ... ok
[INFO] [stdout] test correction_memory::tests::context_hash_is_deterministic ... ok
[INFO] [stdout] test correction_memory::tests::record_and_check_at_threshold ... ok
[INFO] [stdout] test correction_memory::tests::lru_eviction_keeps_within_capacity ... ok
[INFO] [stdout] test correction_memory::tests::context_hash_none_context ... ok
[INFO] [stdout] test correction_memory::tests::record_and_check_below_threshold ... ok
[INFO] [stdout] test correction_memory::tests::snapshot_round_trip ... ok
[INFO] [stdout] test cvm::tests::contains_no_false_positives ... ok
[INFO] [stdout] test cvm::tests::default_decay_lambda ... ok
[INFO] [stdout] test cvm::tests::duplicates_do_not_inflate_buffer ... ok
[INFO] [stdout] test cvm::tests::from_snapshot_missing_age_defaults_to_stale ... ok
[INFO] [stdout] test cvm::tests::empty_counter_estimates_zero ... ok
[INFO] [stdout] test cvm::tests::adaptive_memory_growth ... ok
[INFO] [stdout] test cvm::tests::frequency_score_reflects_survival ... ok
[INFO] [stdout] test cvm::tests::last_seen_cleaned_on_round_eviction ... ok
[INFO] [stdout] test cvm::tests::round_advancement_halves_buffer ... ok
[INFO] [stdout] test cvm::tests::last_seen_cleaned_on_eviction_in_process ... ok
[INFO] [stdout] test cvm::tests::single_element ... ok
[INFO] [stdout] test cvm::tests::snapshot_empty_counter ... ok
[INFO] [stdout] test cvm::tests::snapshot_round_trip_preserves_state ... ok
[INFO] [stdout] test cvm::tests::snapshot_json_serialization ... ok
[INFO] [stdout] test cvm::tests::zero_decay_lambda_matches_undecayed_score ... ok
[INFO] [stdout] test cvm::tests::with_decay_lambda_builder ... ok
[INFO] [stdout] test cvm::tests::many_unique_elements_advances_rounds ... ok
[INFO] [stdout] test dual_buffer::tests::bg_locks_by_char_4 ... ok
[INFO] [stdout] test dual_buffer::tests::lock_requires_4_chars ... ok
[INFO] [stdout] test dual_buffer::tests::no_override_without_prior_on_char_1 ... ok
[INFO] [stdout] test dual_buffer::tests::prior_match_can_lock_one_char_earlier ... ok
[INFO] [stdout] test dual_buffer::tests::prior_mismatch_does_not_early_lock ... ok
[INFO] [stdout] test dual_buffer::tests::prior_no_override_on_char_2_plus ... ok
[INFO] [stdout] test dual_buffer::tests::prior_overrides_corpus_on_char_1 ... ok
[INFO] [stdout] test dual_buffer::tests::tech_winner_returns_en_buffer ... ok
[INFO] [stdout] test dual_buffer::tests::test_bg_wins_with_high_freq ... ok
[INFO] [stdout] test dual_buffer::tests::test_clear_resets_all ... ok
[INFO] [stdout] test dual_buffer::tests::test_en_wins_with_high_freq ... ok
[INFO] [stdout] test dual_buffer::tests::test_flip_detection ... ok
[INFO] [stdout] test dual_buffer::tests::test_last_winner_char ... ok
[INFO] [stdout] test dual_buffer::tests::test_lock_on_high_confidence ... ok
[INFO] [stdout] test dual_buffer::tests::test_no_corpus_support ... ok
[INFO] [stdout] test dual_buffer::tests::test_no_lock_below_threshold ... ok
[INFO] [stdout] test dual_buffer::tests::test_no_lock_single_char ... ok
[INFO] [stdout] test dual_buffer::tests::test_pop ... ok
[INFO] [stdout] test dual_buffer::tests::test_pop_keeps_lock_sticky ... ok
[INFO] [stdout] test dual_buffer::tests::test_push_and_text ... ok
[INFO] [stdout] test ensemble::tests::common_english_completions ... ok
[INFO] [stdout] test ensemble::tests::confidence_all_in_unit_range ... ok
[INFO] [stdout] test dual_buffer::tests::test_push_keycode ... ok
[INFO] [stdout] test ensemble::tests::confidence_limit_one_returns_full_confidence ... ok
[INFO] [stdout] test ensemble::tests::confidence_ordering_matches_score_ordering ... ok
[INFO] [stdout] test ensemble::tests::confidence_single_candidate_is_one ... ok
[INFO] [stdout] test cvm::tests::refresh_resets_decay_clock ... ok
[INFO] [stdout] test ensemble::tests::confidence_single_garbage_score_gets_full_confidence ... ok
[INFO] [stdout] test ensemble::tests::confidence_sum_equals_one ... ok
[INFO] [stdout] test ensemble::tests::confidence_three_candidates_proportional ... ok
[INFO] [stdout] test ensemble::tests::confidence_two_equal_scores_split_evenly ... ok
[INFO] [stdout] test ensemble::tests::predict_no_panic_with_inf_weights ... ok
[INFO] [stdout] test ensemble::tests::predict_no_panic_with_nan_weights ... ok
[INFO] [stdout] test cvm::tests::decay_reduces_score_over_time ... ok
[INFO] [stdout] test ensemble::tests::predict_zero_score_sum_produces_no_confidence_panic ... ok
[INFO] [stdout] test ensemble::tests::test_empty_context ... ok
[INFO] [stdout] test ensemble::tests::session_blend_boosts_recent_words ... ok
[INFO] [stdout] test ensemble::tests::test_empty_prefix ... ok
[INFO] [stdout] test cvm::tests::snapshot_age_increases_after_delay ... ok
[INFO] [stdout] test ensemble::tests::test_exact_matches_rank_above_fuzzy ... ok
[INFO] [stdout] test ensemble::tests::test_from_config_respects_fuzzy_discount ... ok
[INFO] [stdout] test ensemble::tests::confidence_no_results_no_panic ... ok
[INFO] [stdout] test ensemble::tests::test_export_import_personal ... ok
[INFO] [stdout] test ensemble::tests::confidence_single_garbage_score_does_not_nan ... ok
[INFO] [stdout] test ensemble::tests::test_fuzzy_discount_applied ... ok
[INFO] [stdout] test ensemble::tests::test_fuzzy_fallback_misspelled_prefix ... ok
[INFO] [stdout] test ensemble::tests::test_limit_zero ... ok
[INFO] [stdout] test ensemble::tests::test_fuzzy_fallback_substitution ... ok
[INFO] [stdout] test ensemble::tests::test_personal_boost ... ok
[INFO] [stdout] test ensemble::tests::test_markov_normalization_affects_ranking ... ok
[INFO] [stdout] test eval::tests::test_commit_increments_counter ... ok
[INFO] [stdout] test ensemble::tests::test_predict_basic ... ok
[INFO] [stdout] test eval::tests::test_latency_percentiles ... ok
[INFO] [stdout] test ensemble::tests::test_unknown_prefix_returns_empty ... ok
[INFO] [stdout] test eval::tests::test_acceptance_metrics ... ok
[INFO] [stdout] test eval::tests::test_latency_window_bounded ... ok
[INFO] [stdout] test eval::tests::test_mixed_commits_and_acceptances ... ok
[INFO] [stdout] test eval::tests::test_empty_metrics_summary ... ok
[INFO] [stdout] test eval::tests::test_reset_clears_all ... ok
[INFO] [stdout] test ffi_protocol::tests::decode_composing_no_separator ... ok
[INFO] [stdout] test ffi_protocol::tests::decode_replace_invalid_no_separator ... ok
[INFO] [stdout] test ffi_protocol::tests::decode_replace_invalid_non_numeric ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_composing_cyrillic ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_composing_empty_ghost ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_composing_basic ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_replace_cyrillic ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_replace_empty_text ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_replace_text_containing_separator ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_replace_zero_len ... ok
[INFO] [stdout] test frustration::tests::default_is_same_as_new ... ok
[INFO] [stdout] test frustration::tests::escape_key_sets_escape_seen ... ok
[INFO] [stdout] test frustration::tests::abandon_signal_escape_then_char ... ok
[INFO] [stdout] test ffi_protocol::tests::round_trip_replace_basic ... ok
[INFO] [stdout] test frustration::tests::new_detector_has_clean_state ... ok
[INFO] [stdout] test frustration::tests::no_abandon_without_escape ... ok
[INFO] [stdout] test frustration::tests::no_reject_when_tab_accept_old ... ok
[INFO] [stdout] test frustration::tests::rapid_delete_three_backspaces ... ok
[INFO] [stdout] test frustration::tests::reject_signal_backspace_after_tab_accept ... ok
[INFO] [stdout] test frustration::tests::reset_word_clears_all_state ... ok
[INFO] [stdout] test frustration::tests::retype_latin_to_cyrillic ... ok
[INFO] [stdout] test frustration::tests::non_backspace_char_resets_burst ... ok
[INFO] [stdout] test frustration::tests::rapid_delete_severity_scales_with_count ... ok
[INFO] [stdout] test frustration::tests::single_backspace_no_signal ... ok
[INFO] [stdout] test hedge::tests::test_hedge_min_weight_floor ... ok
[INFO] [stdout] test hedge::tests::test_hedge_uniform_init ... ok
[INFO] [stdout] test hedge::tests::test_hedge_update_shifts_weights ... ok
[INFO] [stdout] test hedge::tests::test_hedge_weights_sum_to_one ... ok
[INFO] [stdout] test hedge::tests::test_hedge_decay_toward_defaults ... ok
[INFO] [stdout] test input::tests::config_from_json_fuzzy_max_edits_above_3_clamped ... ok
[INFO] [stdout] test hedge::tests::test_hedge_wrong_size_noop ... ok
[INFO] [stdout] test hedge::tests::test_hedge_with_defaults ... ok
[INFO] [stdout] test hedge::tests::test_hedge_reset ... ok
[INFO] [stdout] test input::tests::config_from_json_ghost_text_min_confidence_stored_unclamped ... ok
[INFO] [stdout] test input::tests::config_from_json_max_candidates_zero_clamped_to_one ... ok
[INFO] [stdout] test input::tests::config_try_from_json_ghost_text_min_confidence_above_1_rejected ... ok
[INFO] [stdout] test input::tests::config_try_from_json_ghost_text_min_confidence_below_0_rejected ... ok
[INFO] [stdout] test input::tests::ghost_gate_default_separation_margin ... ok
[INFO] [stdout] test input::tests::ghost_gate_json_override_separation_margin ... ok
[INFO] [stdout] test input::tests::ghost_gate_json_override_min_score ... ok
[INFO] [stdout] test input::tests::ghost_gate_default_min_score_disabled ... ok
[INFO] [stdout] test input::tests::ghost_gate_score_floor_suppresses_ghost ... ok
[INFO] [stdout] test input::tests::ghost_gate_single_candidate_passes_margin ... ok
[INFO] [stdout] test input::tests::test_config_from_json_defaults ... ok
[INFO] [stdout] test input::tests::test_config_from_json_invalid ... ok
[INFO] [stdout] test input::tests::test_config_from_json_invalid_still_returns_defaults ... ok
[INFO] [stdout] test input::tests::test_config_from_json_overrides ... ok
[INFO] [stdout] test input::tests::test_config_from_json_tuning_overrides ... ok
[INFO] [stdout] test input::tests::test_basic_predict_cycle ... ok
[INFO] [stdout] test input::tests::prediction_uses_hint_context_when_available ... ok
[INFO] [stdout] test input::tests::test_config_validation_fields ... ok
[INFO] [stdout] test input::tests::test_ctrl_alt_forwarded ... ok
[INFO] [stdout] test input::tests::test_backspace_trims ... ok
[INFO] [stdout] test input::tests::navigation_key_clears_stale_context ... ok
[INFO] [stdout] test input::tests::test_context_tracking ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_config_from_json ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_disabled ... ok
[INFO] [stdout] test input::tests::test_digit_during_composing_commits_word ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_backspace ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_bg_wins ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_numbers_passthrough ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_en_wins ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_space_clears ... ok
[INFO] [stdout] test cvm::tests::max_less_than_initial_panics - should panic ... ok
[INFO] [stdout] test cvm::tests::negative_decay_lambda_panics - should panic ... ok
[INFO] [stdout] test cvm::tests::zero_initial_size_panics - should panic ... ok
[INFO] [stdout] test input::tests::test_min_prefix_length ... ok
[INFO] [stdout] test input::tests::test_escape_dismisses ... ok
[INFO] [stdout] test input::tests::test_no_trigger_without_corpus ... ok
[INFO] [stdout] test input::tests::test_kill_switch ... ok
[INFO] [stdout] test input::tests::test_release_events_forwarded ... ok
[INFO] [stdout] test input::tests::test_try_from_json_returns_error_on_invalid ... ok
[INFO] [stdout] test input::tests::test_dual_buffer_special_keys_resolve ... ok
[INFO] [stdout] test input::tests::test_personal_load_missing_file_is_noop ... ok
[INFO] [stdout] test input::tests::test_right_arrow_accepts_one ... ok
[INFO] [stdout] test input::tests::test_wrong_layout_clear_signal ... ok
[INFO] [stdout] test input::tests::test_wrong_layout_english_word_safe ... ok
[INFO] [stdout] test input::tests::test_focus_lost_commits ... ok
[INFO] [stdout] test input::tests::test_space_commits_word ... ok
[INFO] [stdout] test input::tests::test_wrong_layout_cold_start_triggers ... ok
[INFO] [stdout] test keymap::tests::test_bg_phonetic_letters ... ok
[INFO] [stdout] test keymap::tests::test_en_letters ... ok
[INFO] [stdout] test keymap::tests::test_is_alpha_scancode ... ok
[INFO] [stdout] test keymap::tests::test_numbers_same_on_both ... ok
[INFO] [stdout] test keymap::tests::test_scancode_to_both ... ok
[INFO] [stdout] test keymap::tests::test_phonetic_consistency ... ok
[INFO] [stdout] test keymap::tests::test_scancode_to_special ... ok
[INFO] [stdout] test keymap::tests::test_shift_variants_bg ... ok
[INFO] [stdout] test kneser_ney::tests::test_discount_estimation ... ok
[INFO] [stdout] test keymap::tests::test_unknown_scancode_returns_none ... ok
[INFO] [stdout] test kneser_ney::tests::test_discount_estimation_small_corpus ... ok
[INFO] [stdout] test input::tests::test_wrong_layout_momentum_en_blocks ... ok
[INFO] [stdout] test kneser_ney::tests::test_kn_basic_scoring ... ok
[INFO] [stdout] test kneser_ney::tests::test_kn_no_context ... ok
[INFO] [stdout] test kneser_ney::tests::test_kn_bigram_only ... ok
[INFO] [stdout] test input::tests::test_personal_save_load_round_trip ... ok
[INFO] [stdout] test kneser_ney::tests::test_kn_unseen_context ... ok
[INFO] [stdout] test lang_cvm::tests::test_lang_cvm_isolation ... ok
[INFO] [stdout] test lang_detect::tests::switch_en_to_bg_detected_within_3_chars ... ok
[INFO] [stdout] test lang_cvm::tests::test_lang_cvm_contains ... ok
[INFO] [stdout] test kneser_ney::tests::test_kn_continuation_prob ... ok
[INFO] [stdout] test kneser_ney::tests::test_kn_scores_are_bounded ... ok
[INFO] [stdout] test lang_cvm::tests::test_backward_compat_empty_snapshot ... ok
[INFO] [stdout] test lang_detect::tests::test_detect_mixed_converges ... ok
[INFO] [stdout] test lang_detect::tests::test_detect_pure_cyrillic ... ok
[INFO] [stdout] test lang_detect::tests::test_detect_pure_latin ... ok
[INFO] [stdout] test lang_detect::tests::test_instant_classify_ambiguous ... ok
[INFO] [stdout] test lang_detect::tests::test_detect_tech ... ok
[INFO] [stdout] test lang_detect::tests::test_instant_classify_cyrillic ... ok
[INFO] [stdout] test lang_detect::tests::test_instant_classify_latin ... ok
[INFO] [stdout] test lang_detect::tests::test_instant_detect_first_char_cyrillic ... ok
[INFO] [stdout] test lang_detect::tests::test_instant_switch_en_to_bg ... ok
[INFO] [stdout] test lang_detect::tests::test_phonetic_map_basic ... ok
[INFO] [stdout] test lang_detect::tests::test_momentum_window_size ... ok
[INFO] [stdout] test lang_detect::tests::test_momentum_empty ... ok
[INFO] [stdout] test lang_detect::tests::test_momentum_no_majority ... ok
[INFO] [stdout] test lang_detect::tests::test_momentum_clear_majority ... ok
[INFO] [stdout] test lang_detect::tests::test_reset_clears_state ... ok
[INFO] [stdout] test lang_detect::tests::test_transliterate ... ok
[INFO] [stdout] test lang_detect::tests::test_whitespace_preserves_language ... ok
[INFO] [stdout] test lang_model::tests::get_or_all_filters_by_lang ... ok
[INFO] [stdout] test lang_model::tests::bigrams_per_language ... ok
[INFO] [stdout] test light_profile::tests::confidence_floor_adapts_with_accept_rate ... ok
[INFO] [stdout] test lang_model::tests::per_language_isolation ... ok
[INFO] [stdout] test light_profile::tests::default_values_are_sane ... ok
[INFO] [stdout] test light_profile::tests::observe_lang_prior_sums_to_one ... ok
[INFO] [stdout] test light_profile::tests::observe_lang_shifts_prior_toward_observed ... ok
[INFO] [stdout] test light_profile::tests::record_accept_raises_accept_rate ... ok
[INFO] [stdout] test light_profile::tests::record_accept_clears_suppression ... ok
[INFO] [stdout] test light_profile::tests::record_reject_sets_suppression ... ok
[INFO] [stdout] test light_profile::tests::tick_suppression_returns_false_when_zero ... ok
[INFO] [stdout] test light_profile::tests::tick_suppression_decrements_and_returns_true ... ok
[INFO] [stdout] test light_profile::tests::record_reject_lowers_accept_rate ... ok
[INFO] [stdout] test markov::tests::empty_model_does_not_panic ... ok
[INFO] [stdout] test light_profile::tests::tick_suppression_exhausts_counter ... ok
[INFO] [stdout] test markov::tests::bigram_probability ... ok
[INFO] [stdout] test lang_cvm::tests::test_lazy_track_creation ... ok
[INFO] [stdout] test markov::tests::frequency_weighted_backoff_uses_unigram_counts ... ok
[INFO] [stdout] test markov::tests::katz_backoff_bigram_only ... ok
[INFO] [stdout] test markov::tests::katz_backoff_full ... ok
[INFO] [stdout] test markov::tests::frequency_weighted_unigram ... ok
[INFO] [stdout] test lang_cvm::tests::test_lang_cvm_snapshot_roundtrip ... ok
[INFO] [stdout] test markov::tests::rank_candidates_ordering ... ok
[INFO] [stdout] test markov::tests::trigram_probability ... ok
[INFO] [stdout] test markov::tests::test_precomputed_total_matches_sum ... ok
[INFO] [stdout] test markov::tests::unseen_word_gets_floor_score ... ok
[INFO] [stdout] test master_loop::tests::handle_key_char_enters_tracking_phase ... ok
[INFO] [stdout] test master_loop::tests::anticipate_returns_hints_with_confidence_floor ... ok
[INFO] [stdout] test master_loop::tests::light_profile_accessible ... ok
[INFO] [stdout] test master_loop::tests::correction_count_starts_at_zero ... ok
[INFO] [stdout] test master_loop::tests::navigation_resets_anticipation_cycle ... ok
[INFO] [stdout] test master_loop::tests::new_starts_in_anticipating_phase ... ok
[INFO] [stdout] test markov::tests::with_lambdas_uses_custom_weights ... ok
[INFO] [stdout] test master_loop::tests::focus_lost_resets_anticipated_flag ... ok
[INFO] [stdout] test master_loop::tests::handle_key_returns_actions_vec ... ok
[INFO] [stdout] test master_loop::tests::initial_state_is_clean ... ok
[INFO] [stdout] test master_loop::tests::phase_debug_format ... ok
[INFO] [stdout] test master_loop::tests::persisted_correction_overrides_ghost_prediction ... ok
[INFO] [stdout] test master_loop::tests::suppress_countdown_clamped_from_max_f64_severity ... ok
[INFO] [stdout] test master_loop::tests::suppress_countdown_nan_severity_does_not_panic ... ok
[INFO] [stdout] test master_loop::tests::suppress_countdown_zero_severity_produces_zero_or_one ... ok
[INFO] [stdout] test master_loop::tests::with_context_sampler_creates_instance ... ok
[INFO] [stdout] test master_loop::tests::suppress_countdown_no_overflow_with_extreme_severity ... ok
[INFO] [stdout] test master_loop::tests::reset_clears_current_word ... ok
[INFO] [stdout] test ngram::tests::cyrillic_support ... ok
[INFO] [stdout] test ngram::tests::empty_prefix_returns_all ... ok
[INFO] [stdout] test ngram::tests::fuzzy_cyrillic ... ok
[INFO] [stdout] test master_loop::tests::phase_is_readable ... ok
[INFO] [stdout] test master_loop::tests::suppress_countdown_rapid_delete_nan_severity_does_not_panic ... ok
[INFO] [stdout] test master_loop::tests::surrounding_text_biases_predictions ... ok
[INFO] [stdout] test input::tests::test_wrong_layout_with_momentum_bg ... ok
[INFO] [stdout] test ngram::tests::fuzzy_deletion ... ok
[INFO] [stdout] test ngram::tests::fuzzy_empty_trie ... ok
[INFO] [stdout] test ngram::tests::fuzzy_limit_respected ... ok
[INFO] [stdout] test ngram::tests::fuzzy_distance_two ... ok
[INFO] [stdout] test ngram::tests::fuzzy_limit_zero ... ok
[INFO] [stdout] test ngram::tests::fuzzy_misspelled_function ... ok
[INFO] [stdout] test ngram::tests::fuzzy_exact_match_distance_zero ... ok
[INFO] [stdout] test ngram::tests::fuzzy_insertion ... ok
[INFO] [stdout] test ngram::tests::fuzzy_sort_order ... ok
[INFO] [stdout] test ngram::tests::insert_and_lookup ... ok
[INFO] [stdout] test ngram::tests::is_empty_and_default ... ok
[INFO] [stdout] test ngram::tests::insert_overwrites_frequency ... ok
[INFO] [stdout] test ngram::tests::prefix_not_found ... ok
[INFO] [stdout] test ngram::tests::fuzzy_substitution ... ok
[INFO] [stdout] test ngram::tests::test_fuzzy_arena_correct_for_deep_word ... ok
[INFO] [stdout] test ngram::tests::limit_truncates_results ... ok
[INFO] [stdout] test paths::tests::config_dir_ends_with_smartkey ... ok
[INFO] [stdout] test paths::tests::config_file_is_json ... ok
[INFO] [stdout] test paths::tests::personal_profile_path_is_json ... ok
[INFO] [stdout] test paths::tests::corpus_files_no_panic ... ok
[INFO] [stdout] test personal::tests::test_backward_compat_v1_bare_cvm ... ok
[INFO] [stdout] test personal::tests::test_invalid_json_returns_error ... ok
[INFO] [stdout] test personal::tests::test_personal_markov_persists_round_trip ... ok
[INFO] [stdout] test personal::tests::test_personal_profile_round_trip ... ok
[INFO] [stdout] test ppm::tests::test_ppm_empty_model ... ok
[INFO] [stdout] test ppm::tests::test_ppm_cyrillic ... ok
[INFO] [stdout] test ppm::tests::test_ppm_prune ... ok
[INFO] [stdout] test ppm::tests::test_ppm_score_known_word ... ok
[INFO] [stdout] test ppm::tests::test_ppm_order_fallback ... ok
[INFO] [stdout] test reranker::tests::empty_batch_returns_zero_loss ... ok
[INFO] [stdout] test reranker::tests::forward_returns_finite_value ... ok
[INFO] [stdout] test reranker::tests::forward_with_large_values ... ok
[INFO] [stdout] test reranker::tests::forward_with_negative_values ... ok
[INFO] [stdout] test ppm::tests::test_ppm_short_prefix_ranking ... ok
[INFO] [stdout] test reranker::tests::forward_with_zeros ... ok
[INFO] [stdout] test ngram::tests::fuzzy_empty_prefix ... ok
[INFO] [stdout] test ngram::tests::fuzzy_max_edits_respected ... ok
[INFO] [stdout] test reranker::tests::rerank_blends_scores_conservatively ... ok
[INFO] [stdout] test reranker::tests::serde_roundtrip ... ok
[INFO] [stdout] test reranker::tests::sigmoid_edge_cases ... ok
[INFO] [stdout] test reranker::tests::untrained_reranker_does_not_modify_scores ... ok
[INFO] [stdout] test session_cache::tests::test_session_cache_clear ... ok
[INFO] [stdout] test session_cache::tests::test_session_cache_decay ... ok
[INFO] [stdout] test reranker::tests::disabled_reranker_skips_reranking ... ok
[INFO] [stdout] test session_cache::tests::test_session_cache_boosts_repeated_word ... ok
[INFO] [stdout] test session_cache::tests::test_session_cache_eviction ... ok
[INFO] [stdout] test session_cache::tests::test_session_cache_unseen_word ... ok
[INFO] [stdout] test session_cache::tests::test_session_cache_zero_decay ... ok
[INFO] [stdout] test tech_vocab::tests::test_case_insensitive_prefix_match ... ok
[INFO] [stdout] test tech_vocab::tests::test_contains_unknown_term ... ok
[INFO] [stdout] test tech_vocab::tests::test_score_empty_prefix_returns_everything_up_to_limit ... ok
[INFO] [stdout] test tech_vocab::tests::test_contains_known_terms ... ok
[INFO] [stdout] test tech_vocab::tests::test_score_returns_prefix_matches ... ok
[INFO] [stdout] test tech_vocab::tests::test_score_limit_respected ... ok
[INFO] [stdout] test tech_vocab::tests::test_score_sorted_by_score_descending ... ok
[INFO] [stdout] test tech_vocab::tests::test_score_unknown_prefix_returns_empty ... ok
[INFO] [stdout] test tech_vocab::tests::test_score_values_in_range ... ok
[INFO] [stdout] test typing_regime::tests::test_deliberate_prose_detection ... ok
[INFO] [stdout] test ngram::tests::fuzzy_transposition ... ok
[INFO] [stdout] test tech_vocab::tests::test_vocab_has_minimum_size ... ok
[INFO] [stdout] test reranker::tests::training_reduces_loss ... ok
[INFO] [stdout] test ppm::tests::test_ppm_guided_candidate_generation ... ok
[INFO] [stdout] test typing_regime::tests::test_ema_update ... ok
[INFO] [stdout] test typing_regime::tests::test_fast_coding_detection ... ok
[INFO] [stdout] test typing_regime::tests::test_language_switch_detection ... ok
[INFO] [stdout] test typing_regime::tests::test_regime_and_confidence_accessor ... ok
[INFO] [stdout] test typing_regime::tests::test_new_topic_detection ... ok
[INFO] [stdout] test typing_regime::tests::test_sigmoid_norm_bounds ... ok
[INFO] [stdout] test typing_regime::tests::test_warmup_caps_confidence ... ok
[INFO] [stdout] test reranker::tests::trained_reranker_boosts_correct_candidate ... ok
[INFO] [stdout] test typing_regime::tests::test_mixed_language_detection ... ok
[INFO] [stdout] test ppm::tests::test_ppm_no_overflow_on_heavy_training ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 379 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ffi_contract.rs (/opt/rustwide/target/debug/deps/ffi_contract-ba0830fb50af729f)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test cffi_strips_null_bytes_from_replace_text ... ok
[INFO] [stdout] test composing_round_trip_basic ... ok
[INFO] [stdout] test composing_round_trip_empty_ghost ... ok
[INFO] [stdout] test encode_decode_identity_replace ... ok
[INFO] [stdout] test composing_round_trip_cyrillic ... ok
[INFO] [stdout] test pyo3_and_cffi_produce_identical_payloads ... ok
[INFO] [stdout] test python_decodes_cffi_payload ... ok
[INFO] [stdout] test composing_no_separator_fallback ... ok
[INFO] [stdout] test python_decodes_pyo3_payload ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-009d656d26146c04)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test multi_language_latin_and_cyrillic ... ok
[INFO] [stdout] test tab_acceptance_then_bigram_boost ... ok
[INFO] [stdout] test full_pipeline_predict_and_ghost ... ok
[INFO] [stdout] test kill_switch_disables_and_reenables ... ok
[INFO] [stdout] test personal_round_trip_persists_boost ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/virtual_typer.rs (/opt/rustwide/target/debug/deps/virtual_typer-407c7ade192df6cd)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test test_ascii_to_scancode_full_alphabet ... ok
[INFO] [stdout] test test_ascii_to_scancode_shift_for_uppercase ... ok
[INFO] [stdout] test test_backspace_trims_word ... ok
[INFO] [stdout] test test_accuracy_metrics_calculation ... ok
[INFO] [stdout] test test_escape_dismisses_ghost ... ok
[INFO] [stdout] test test_ghost_appears_and_tab_accepts ... ok
[INFO] [stdout] test test_personal_learning_boosts_word_tokio_inline ... ok
[INFO] [stdout] test test_personal_learning_elevates_rank ... ok
[INFO] [stdout] test test_dual_buffer_flip_emits_replace_with_controlled_corpus has been running for over 60 seconds
[INFO] [stdout] test test_dual_buffer_replace_action_possible has been running for over 60 seconds
[INFO] [stdout] test test_en_session_two_words has been running for over 60 seconds
[INFO] [stdout] test test_en_then_cyrillic_char_input has been running for over 60 seconds
[INFO] [stdout] test test_hello_detected_as_english has been running for over 60 seconds
[INFO] [stdout] test test_mixed_language_session_predictions_persist has been running for over 60 seconds
[INFO] [stdout] test test_personal_learning_boosts_word_sqlite has been running for over 60 seconds
[INFO] [stdout] test test_prediction_for_hel_includes_hello_or_help has been running for over 60 seconds
[INFO] [stderr] error: test failed, to rerun pass `-p smartkey-core --test virtual_typer`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/virtual_typer-407c7ade192df6cd` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "5c6bd8c90687ba7a28709a9497eab3075dcfa06cffc1299478ffce9732166e08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c6bd8c90687ba7a28709a9497eab3075dcfa06cffc1299478ffce9732166e08", kill_on_drop: false }`
[INFO] [stdout] 5c6bd8c90687ba7a28709a9497eab3075dcfa06cffc1299478ffce9732166e08
