[INFO] fetching crate vultan 1.0.1...
[INFO] testing vultan-1.0.1 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate vultan 1.0.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate vultan 1.0.1
[INFO] finished tweaking crates.io crate vultan 1.0.1
[INFO] tweaked toml for crates.io crate vultan 1.0.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate vultan 1.0.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate vultan 1.0.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded time-core v0.1.0
[INFO] [stderr]   Downloaded itoa v1.0.5
[INFO] [stderr]   Downloaded rstest v0.15.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.12
[INFO] [stderr]   Downloaded predicates-tree v1.0.5
[INFO] [stderr]   Downloaded termtree v0.2.4
[INFO] [stderr]   Downloaded fragile v1.2.1
[INFO] [stderr]   Downloaded time v0.3.17
[INFO] [stderr]   Downloaded mockall_double v0.3.0
[INFO] [stderr]   Downloaded markdown-tui v0.1.3
[INFO] [stderr]   Downloaded predicates-core v1.0.3
[INFO] [stderr]   Downloaded custom_error v1.9.2
[INFO] [stderr]   Downloaded len-trait v0.6.1
[INFO] [stderr]   Downloaded globwalk v0.8.1
[INFO] [stderr]   Downloaded thread_local v1.1.4
[INFO] [stderr]   Downloaded mockall v0.11.2
[INFO] [stderr]   Downloaded parking_lot_core v0.9.5
[INFO] [stderr]   Downloaded semver v1.0.14
[INFO] [stderr]   Downloaded predicates v2.1.1
[INFO] [stderr]   Downloaded assert_fs v1.0.7
[INFO] [stderr]   Downloaded iana-time-zone v0.1.48
[INFO] [stderr]   Downloaded globset v0.4.9
[INFO] [stderr]   Downloaded rstest_macros v0.14.0
[INFO] [stderr]   Downloaded mockall_derive v0.11.2
[INFO] [stderr]   Downloaded clap_complete v4.6.3
[INFO] [stderr]   Downloaded ron v0.8.1
[INFO] [stderr]   Downloaded bumpalo v3.11.0
[INFO] [stderr]   Downloaded ignore v0.4.18
[INFO] [stderr]   Downloaded aho-corasick v0.7.19
[INFO] [stderr]   Downloaded chrono v0.4.22
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac
[INFO] running `Command { std: "docker" "start" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot_core v0.9.5
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling either v1.8.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling ryu v1.0.12
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling instability v0.3.10
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling itoa v1.0.5
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling miniz_oxide v0.6.2
[INFO] [stderr]    Compiling anyhow v1.0.66
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling serde_json v1.0.91
[INFO] [stderr]    Compiling time-core v0.1.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling time v0.3.17
[INFO] [stderr]    Compiling constant_time_eq v0.1.5
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling iana-time-zone v0.1.48
[INFO] [stderr]    Compiling flate2 v1.0.25
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling custom_error v1.9.2
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling time v0.1.44
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling password-hash v0.4.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling bzip2 v0.4.4
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling clap_complete v4.6.3
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling chrono v0.4.22
[INFO] [stderr]    Compiling markdown-tui v0.1.3
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling vultan v1.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.58s
[INFO] running `Command { std: "docker" "inspect" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling semver v1.0.14
[INFO] [stderr]    Compiling slab v0.4.7
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling crossbeam-utils v0.8.12
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling bstr v0.2.17
[INFO] [stderr]    Compiling aho-corasick v0.7.19
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling predicates-core v1.0.3
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling thread_local v1.1.4
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling termtree v0.2.4
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling predicates-tree v1.0.5
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling fastrand v1.8.0
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling fragile v1.2.1
[INFO] [stderr]    Compiling len-trait v0.6.1
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling tempfile v3.3.0
[INFO] [stderr]    Compiling rstest_macros v0.14.0
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling instability v0.3.10
[INFO] [stderr]    Compiling globset v0.4.9
[INFO] [stderr]    Compiling predicates v2.1.1
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling ignore v0.4.18
[INFO] [stderr]    Compiling globwalk v0.8.1
[INFO] [stderr]    Compiling assert_fs v1.0.7
[INFO] [stderr]    Compiling futures-executor v0.3.25
[INFO] [stderr]    Compiling futures v0.3.25
[INFO] [stderr]    Compiling markdown-tui v0.1.3
[INFO] [stderr]    Compiling vultan v1.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling mockall_derive v0.11.2
[INFO] [stderr]    Compiling mockall_double v0.3.0
[INFO] [stderr]    Compiling rstest v0.15.0
[INFO] [stderr]    Compiling mockall v0.11.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 28.06s
[INFO] running `Command { std: "docker" "inspect" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vultan-f711c60b4ac5faf6)
[INFO] [stdout] 
[INFO] [stdout] running 173 tests
[INFO] [stdout] test anki::tests::bad_due_warning_returns_none_for_new_card ... ok
[INFO] [stdout] test anki::tests::anki_card_state_returns_new_for_fresh_card_even_with_state_on ... ok
[INFO] [stdout] test anki::tests::render_card_markdown_uses_vultan_format ... ok
[INFO] [stdout] test anki::tests::anki_card_state_treats_nondefault_factor_as_progress ... ok
[INFO] [stdout] test anki::tests::anki_card_state_treats_nonzero_interval_as_progress ... ok
[INFO] [stdout] test anki::tests::anki_to_vultan_clamps_factor_to_floor ... ok
[INFO] [stdout] test anki::tests::slugify_disambiguates_empty_slugs_with_hash_suffix ... ok
[INFO] [stdout] test anki::tests::anki_card_state_handles_overdue_cards_with_negative_due ... ok
[INFO] [stdout] test anki::tests::anki_card_state_rounds_interval_half_up ... ok
[INFO] [stdout] test anki::tests::anki_card_state_returns_new_when_with_state_false ... ok
[INFO] [stdout] test anki::tests::is_importable_model_only_accepts_basic_with_one_or_two_templates ... ok
[INFO] [stdout] test anki::tests::anki_card_state_emits_review_queue_when_reviewed_and_with_state ... ok
[INFO] [stdout] test config::unit_tests::config_load_from_returns_default_when_file_missing ... ok
[INFO] [stdout] test config::unit_tests::config_load_from_returns_err_on_malformed_file ... ok
[INFO] [stdout] test state::backup::tests::first_rotation_moves_target_to_bak_0 ... ok
[INFO] [stdout] test anki::tests::compute_due_unix_seconds_handles_review_and_learning_queues ... ok
[INFO] [stdout] test config::unit_tests::resolve_default_path_treats_empty_xdg_as_unset ... ok
[INFO] [stdout] test anki::tests::anki_card_state_rounds_due_days_to_nearest ... ok
[INFO] [stdout] test anki::tests::strip_html_removes_tags_and_decodes_entities ... ok
[INFO] [stdout] test config::unit_tests::resolve_default_path_errors_when_both_env_vars_are_unset ... ok
[INFO] [stdout] test config::unit_tests::resolve_default_path_errors_when_xdg_empty_and_home_unset ... ok
[INFO] [stdout] test state::backup::tests::missing_intermediate_slot_is_tolerated ... ok
[INFO] [stdout] test config::unit_tests::resolve_default_path_honors_xdg_config_home ... ok
[INFO] [stdout] test config::unit_tests::resolve_default_path_falls_back_to_home_dot_config_when_xdg_missing ... ok
[INFO] [stdout] test state::backup::tests::no_op_when_target_missing ... ok
[INFO] [stdout] test anki::tests::slugify_takes_last_segment_and_normalises ... ok
[INFO] [stdout] test anki::tests::slugify_empty_input_yields_a_default_with_suffix ... ok
[INFO] [stdout] test anki::tests::bad_due_warning_returns_none_for_representable_timestamp ... ok
[INFO] [stdout] test state::backup::tests::second_rotation_pushes_bak_0_to_bak_1 ... ok
[INFO] [stdout] test state::backup::tests::oldest_rotation_is_dropped_at_n_backups ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parsing_config::default ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_easy_interval::case_1_default ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_easy_interval::case_2_when_pass_interval_is_high ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_easy_interval::case_3_when_memorisation_factor_is_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_easy_interval::case_4_when_pass_coef_is_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_easy_interval::case_5_when_easy_coef_is_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_fail_interval::case_1_when_non_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_hard_interval::case_1_default ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_hard_interval::case_3_when_pass_coef_is_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_interval_with_fail_score::case_1_fail_score ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_interval_with_fail_score::case_2_hard_score ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_fail_interval::case_2_when_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_interval_with_fail_score::case_3_pass_score ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_interval_with_fail_score::case_4_easy_score ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::from_default_config_escapes_user_supplied_tags ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_due_date ... ok
[INFO] [stdout] test anki::tests::bad_due_warning_flags_unrepresentable_timestamps ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_2_when_fail_and_factor_lt_1300 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_3_when_hard_and_factor_gt_1300 ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse_treats_user_supplied_tags_with_regex_metacharacters_as_literals ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse::case_4_with_question_expression_that_have_no_captures ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_5_when_pass_and_factor_gt_1300 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_1_when_fail_and_factor_gt_1300 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_7_when_easy_and_factor_gt_1300 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_8_when_easy_and_factor_lt_1300 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_pass_interval::case_1_default ... ok
[INFO] [stdout] test config::unit_tests::config_save_then_load_roundtrip ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_pass_interval::case_3_when_memorisation_factor_is_0 ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse::case_3_with_decks_expression_that_have_no_captures ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_pass_interval::case_2_when_pass_coef_is_0 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_pass_interval::case_4_when_hard_interval_is_high ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::create_interval_calculation_settings::case_2_when_days_overdue_is_fractional ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::transform::case_1_when_fail ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse::case_5_with_answer_expression_that_have_no_captures ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::new ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::transform::case_2_when_hard ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse::case_1_with_default_config ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_possible_intervals ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse::case_2_with_multi_line_decks_single_line_question_single_line_answer ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::create_interval_calculation_settings::case_1_default ... ok
[INFO] [stdout] test state::card::unit_tests::default ... ok
[INFO] [stdout] test config::unit_tests::config_save_to_creates_missing_parent_directories ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::create_interval_calculation_settings::case_3_when_fail_coef_is_0 ... ok
[INFO] [stdout] test state::card::unit_tests::in_deck::case_2_when_decks_do_not_contain_id ... ok
[INFO] [stdout] test state::card::unit_tests::is_due_when_due_date_in_past::case_1_when_due_date_in_past ... ok
[INFO] [stdout] test state::card::unit_tests::is_due_when_due_date_in_past::case_2_when_due_date_in_present ... ok
[INFO] [stdout] test state::card::unit_tests::from_where_file_read_fails ... ok
[INFO] [stdout] test state::card::unit_tests::from_where_parser_fails ... ok
[INFO] [stdout] test state::card::unit_tests::transform ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_4_when_hard_and_factor_lt_1300 ... ok
[INFO] [stdout] test state::card::unit_tests::is_due_when_due_date_in_past::case_3_when_due_date_in_future ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_new_memorisation_factor::case_6_when_pass_and_factor_lt_1300 ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::default ... ok
[INFO] [stdout] test state::card::unit_tests::merge ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::transform::case_3_when_pass ... ok
[INFO] [stdout] test state::card::unit_tests::from ... ok
[INFO] [stdout] test state::card::unit_tests::in_deck::case_1_when_decks_contains_id ... ok
[INFO] [stdout] test state::card::unit_tests::new ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse_returns_correct_error_variant_per_field_failure::case_3_answer_failure ... ok
[INFO] [stdout] test state::card::unit_tests::uid ... ok
[INFO] [stdout] test state::deck::unit_tests::merge ... ok
[INFO] [stdout] test state::deck::unit_tests::uid ... ok
[INFO] [stdout] test state::deck::interval_coefficients::unit_tests::default ... ok
[INFO] [stdout] test state::deck::interval_coefficients::unit_tests::new ... ok
[INFO] [stdout] test state::deck::unit_tests::new ... ok
[INFO] [stdout] test state::card::unit_tests::with_review_recorded_appends_to_history_and_log ... ok
[INFO] [stdout] test state::card::unit_tests::with_revision_settings ... ok
[INFO] [stdout] test state::deck::unit_tests::with_interval_coefficients ... ok
[INFO] [stdout] test state::file::unit_tests::exposes_path_getter ... ok
[INFO] [stdout] test state::hand::unit_tests::apply_limit_keeps_only_the_n_most_overdue_cards ... ok
[INFO] [stdout] test state::file::unit_tests::read::case_2_should_propagate_error ... ok
[INFO] [stdout] test state::file::unit_tests::from ... ok
[INFO] [stdout] test state::hand::unit_tests::apply_limit_no_op_when_limit_is_none_or_exceeds_queue ... ok
[INFO] [stdout] test state::hand::unit_tests::from::case_1_creates_shuffled_card_queue_from_deck_and_cards ... ok
[INFO] [stdout] test state::hand::unit_tests::from::case_3_creates_shuffled_card_queue_containing_cards_in_deck_only ... ok
[INFO] [stdout] test state::hand::unit_tests::from::case_5_returns_no_due_cards_error_if_no_cards_due_in_deck ... ok
[INFO] [stdout] test state::file::unit_tests::read::case_1_should_call_read_file ... ok
[INFO] [stdout] test state::hand::unit_tests::from_due_includes_due_cards_from_any_deck ... ok
[INFO] [stdout] test state::hand::unit_tests::number_of_due_cards ... ok
[INFO] [stdout] test state::hand::shuffle::unit_tests::shuffling_cards ... ok
[INFO] [stdout] test state::card::unit_tests::reparse_picks_up_disk_changes_and_preserves_revision_settings ... ok
[INFO] [stdout] test state::file::unit_tests::write::case_1_should_call_write_file ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_bury_defers_card_to_tomorrow_without_score ... ok
[INFO] [stdout] test state::hand::unit_tests::from::case_2_creates_shuffled_card_queue_containing_due_cards_only ... ok
[INFO] [stdout] test state::hand::unit_tests::from::case_4_returns_empty_deck_error_if_no_cards_exist_for_deck ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_cycles_for_failed_cards ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_handles_quit_outcome ... ok
[INFO] [stdout] test state::file::unit_tests::write_does_not_corrupt_target_when_temp_create_fails ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_transforms_cards_based_on_their_score ... ok
[INFO] [stdout] test state::file::unit_tests::write::case_2_should_propagate_error ... ok
[INFO] [stdout] test state::stats::unit_tests::all_due_stats_dedupes_cards_in_multiple_decks ... ok
[INFO] [stdout] test state::stats::unit_tests::deck_stats_counts_currently_due_cards ... ok
[INFO] [stdout] test state::stats::unit_tests::deck_stats_counts_due_within_a_week_excluding_currently_due ... ok
[INFO] [stdout] test state::stats::unit_tests::deck_stats_honors_per_deck_factor_mastered_override ... ok
[INFO] [stdout] test state::stats::unit_tests::deck_stats_returns_one_row_per_deck_sorted_by_name ... ok
[INFO] [stdout] test state::unit_tests::deal ... ok
[INFO] [stdout] test state::unit_tests::default ... ok
[INFO] [stdout] test state::stats::unit_tests::deck_stats_classifies_mastered_cards ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_replaces_current_card_without_scoring ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_skip_rotates_card_to_back_untransformed ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_undoes_the_last_score ... ok
[INFO] [stdout] test state::hand::unit_tests::revise_until_none_fail_with_empty_queue ... ok
[INFO] [stdout] test state::unit_tests::due_per_day_in_next_n_days_buckets_upcoming_dues ... ok
[INFO] [stdout] test state::unit_tests::from_file_when_ron_fails ... ok
[INFO] [stdout] test state::unit_tests::get_deck ... ok
[INFO] [stdout] test state::unit_tests::deal_when_deck_does_not_exist ... ok
[INFO] [stdout] test state::unit_tests::from_file ... ok
[INFO] [stdout] test state::unit_tests::read_propagates_error_when_vultan_ron_is_malformed ... ok
[INFO] [stdout] test state::unit_tests::new ... ok
[INFO] [stdout] test state::unit_tests::record_study_session_increments_streak_when_run_on_consecutive_day ... ok
[INFO] [stdout] test state::unit_tests::record_study_session_is_idempotent_within_one_day ... ok
[INFO] [stdout] test state::unit_tests::record_study_session_resets_streak_when_gap_in_days ... ok
[INFO] [stdout] test state::unit_tests::record_study_session_starts_streak_at_one_when_first_session ... ok
[INFO] [stdout] test state::unit_tests::reviews_in_last_n_days_sums_per_card_history_within_window ... ok
[INFO] [stdout] test state::unit_tests::reviews_per_day_in_last_n_days_buckets_history_by_day ... ok
[INFO] [stdout] test state::stats::unit_tests::deck_stats_classifies_forgotten_cards ... ok
[INFO] [stdout] test state::unit_tests::from_file_when_file_handle_read_fails ... ok
[INFO] [stdout] test state::unit_tests::get_deck_when_deck_does_not_exist ... ok
[INFO] [stdout] test state::unit_tests::with_merged_cards_when_new_card_has_same_path_as_old_card ... ok
[INFO] [stdout] test state::unit_tests::with_merged_cards_when_new_card_has_different_path_from_old_card ... ok
[INFO] [stdout] test state::unit_tests::read_legacy_file_without_schema_version_defaults_to_one ... ok
[INFO] [stdout] test state::unit_tests::with_merged_decks_when_new_deck_has_different_name_from_old_deck ... ok
[INFO] [stdout] test state::unit_tests::with_merged_decks_when_new_deck_has_same_name_as_old_deck ... ok
[INFO] [stdout] test state::unit_tests::with_overriden_cards_when_new_card_has_different_path_from_old_card ... ok
[INFO] [stdout] test state::unit_tests::with_overriden_decks_when_new_deck_has_different_name_from_old_deck ... ok
[INFO] [stdout] test state::unit_tests::with_overriden_decks_when_new_deck_has_same_name_as_old_deck ... ok
[INFO] [stdout] test state::unit_tests::read ... ok
[INFO] [stdout] test state::unit_tests::write ... ok
[INFO] [stdout] test state::unit_tests::with_overriden_cards_when_new_card_has_same_path_as_old_card ... ok
[INFO] [stdout] test state::unit_tests::write_when_file_handle_write_fails ... ok
[INFO] [stdout] test state::unit_tests::write_when_ron_fails ... ok
[INFO] [stdout] test state::unit_tests::read_returns_default_state_when_vultan_ron_is_missing ... ok
[INFO] [stdout] test state::file::unit_tests::write_uses_temp_file_and_atomic_rename ... ok
[INFO] [stdout] test state::unit_tests::read_surfaces_card_load_failures ... ok
[INFO] [stdout] test state::card::unit_tests::try_load_many_cards ... ok
[INFO] [stdout] test state::unit_tests::schema_version_round_trips_through_write_then_read ... ok
[INFO] [stdout] test state::unit_tests::revision_settings_persist_when_notes_dirpath_changes ... ok
[INFO] [stdout] test state::deck::unit_tests::many_decks_from_cards ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::calculate_hard_interval::case_2_when_interval_is_high ... ok
[INFO] [stdout] test state::card::revision_settings::unit_tests::transform::case_4_when_easy ... ok
[INFO] [stdout] test state::unit_tests::with_card_parsing_config ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse_returns_correct_error_variant_per_field_failure::case_1_deck_failure ... ok
[INFO] [stdout] test state::card::parser::unit_tests::parser::parse_returns_correct_error_variant_per_field_failure::case_2_question_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 173 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/vultan/main.rs (/opt/rustwide/target/debug/deps/vultan-cbcc85ac264bb260)
[INFO] [stdout] 
[INFO] [stdout] running 130 tests
[INFO] [stdout] test addcard::tests::enter_with_empty_input_sets_error ... ok
[INFO] [stdout] test addcard::tests::enter_with_input_returns_submit_with_trimmed_title ... ok
[INFO] [stdout] test addcard::tests::generate_filename_omits_slug_when_title_has_no_alnum ... ok
[INFO] [stdout] test addcard::tests::generate_filename_has_timestamp_and_slug ... ok
[INFO] [stdout] test change_notes_dir::tests::esc_returns_cancel ... ok
[INFO] [stdout] test addcard::tests::card_template_includes_deck_tag_and_question_answer_markers ... ok
[INFO] [stdout] test dashboard::tests::esc_during_filter_clears_state ... ok
[INFO] [stdout] test dashboard::tests::handle_key_enter_on_all_due_row_returns_study_all ... ok
[INFO] [stdout] test change_notes_dir::tests::enter_with_missing_dir_sets_error ... ok
[INFO] [stdout] test dashboard::tests::enter_during_filter_studies_selected_match ... ok
[INFO] [stdout] test dashboard::tests::handle_key_g_returns_global_settings ... ok
[INFO] [stdout] test dashboard::tests::handle_key_enter_returns_study_with_selected_deck_name ... ok
[INFO] [stdout] test addcard::tests::esc_returns_cancel ... ok
[INFO] [stdout] test addcard::tests::slugify_lowercases_replaces_non_alnum_and_strips_trailing_dashes ... ok
[INFO] [stdout] test dashboard::tests::handle_key_question_toggles_help_overlay ... ok
[INFO] [stdout] test change_notes_dir::tests::backspace_removes_last_char ... ok
[INFO] [stdout] test dashboard::tests::help_overlay_swallows_other_keys ... ok
[INFO] [stdout] test dashboard::tests::next_selection_advances_normally ... ok
[INFO] [stdout] test dashboard::tests::next_selection_clamps_at_top ... ok
[INFO] [stdout] test dashboard::tests::handle_key_q_returns_quit ... ok
[INFO] [stdout] test dashboard::tests::handle_key_p_returns_show_problems ... ok
[INFO] [stdout] test change_notes_dir::tests::enter_with_existing_dir_submits ... ok
[INFO] [stdout] test find_card::tests::down_arrow_clamps_at_last_match ... ok
[INFO] [stdout] test find_card::tests::empty_input_shows_no_matches ... ok
[INFO] [stdout] test addcard::tests::render_shows_deck_name_and_input ... ok
[INFO] [stdout] test dashboard::tests::slash_opens_filter_and_chars_append_to_pattern ... ok
[INFO] [stdout] test find_card::tests::results_are_capped_at_max ... ok
[INFO] [stdout] test dashboard::tests::next_selection_clamps_at_bottom ... ok
[INFO] [stdout] test find_card::tests::enter_with_no_matches_is_noop ... ok
[INFO] [stdout] test find_card::tests::substring_matches_answer_too ... ok
[INFO] [stdout] test find_card::tests::esc_returns_cancel ... ok
[INFO] [stdout] test global_settings::tests::auto_commit_state_value_renders_on_off ... ok
[INFO] [stdout] test global_settings::tests::daily_review_limit_value_renders_unlimited_when_unset ... ok
[INFO] [stdout] test find_card::tests::typing_recomputes_matches ... ok
[INFO] [stdout] test global_settings::tests::render_pattern_string_for_tagged_shows_tag ... ok
[INFO] [stdout] test find_card::tests::enter_returns_edit_outcome_for_selected ... ok
[INFO] [stdout] test global_settings::tests::render_pattern_string_for_wrapped_shows_both_tags ... ok
[INFO] [stdout] test help_overlay::tests::render_includes_title_and_entries ... ok
[INFO] [stdout] test change_notes_dir::tests::typing_appends_to_input ... ok
[INFO] [stdout] test history::tests::render_shows_factor_sparkline_section ... ok
[INFO] [stdout] test onboarding::tests::complete_path_with_home_completes_unique_match ... ok
[INFO] [stdout] test dashboard::tests::handle_key_f5_returns_refresh ... ok
[INFO] [stdout] test find_card::tests::f2_returns_history_outcome_for_selected ... ok
[INFO] [stdout] test find_card::tests::substring_matches_question ... ok
[INFO] [stdout] test onboarding::tests::complete_path_with_home_returns_input_unchanged_when_no_match ... ok
[INFO] [stdout] test onboarding::tests::onboarding_enter_sets_error_when_path_missing ... ok
[INFO] [stdout] test onboarding::tests::complete_path_with_home_returns_longest_common_prefix_for_ambiguous_match ... ok
[INFO] [stdout] test onboarding::tests::onboarding_enter_submits_existing_directory ... ok
[INFO] [stdout] test onboarding::tests::onboarding_esc_quits ... ok
[INFO] [stdout] test onboarding::tests::onboarding_handles_backspace ... ok
[INFO] [stdout] test onboarding::tests::onboarding_handles_typed_chars ... ok
[INFO] [stdout] test global_settings::tests::render_lists_all_globals_and_parsing_fields ... ok
[INFO] [stdout] test onboarding::tests::complete_path_with_home_filters_out_files ... ok
[INFO] [stdout] test onboarding::tests::onboarding_renders_error_in_status_when_set ... ok
[INFO] [stdout] test history::tests::render_orders_most_recent_review_first ... ok
[INFO] [stdout] test onboarding::tests::complete_path_with_home_expands_leading_tilde ... ok
[INFO] [stdout] test pattern_edit::tests::backspace_pops_focused_field ... ok
[INFO] [stdout] test pattern_edit::tests::down_clamps_at_last_field ... ok
[INFO] [stdout] test onboarding::tests::onboarding_tab_invokes_completion_and_clears_error ... ok
[INFO] [stdout] test pattern_edit::tests::enter_with_valid_wrapped_returns_submit ... ok
[INFO] [stdout] test pattern_edit::tests::esc_returns_cancel ... ok
[INFO] [stdout] test onboarding::tests::onboarding_renders_typed_input ... ok
[INFO] [stdout] test pattern_edit::tests::enter_with_valid_tagged_returns_submit ... ok
[INFO] [stdout] test pattern_edit::tests::opens_with_tagged_pattern_populated ... ok
[INFO] [stdout] test pattern_edit::tests::opens_with_wrapped_pattern_populated ... ok
[INFO] [stdout] test pattern_edit::tests::tab_toggles_variant_and_resets_focus ... ok
[INFO] [stdout] test onboarding::tests::onboarding_renders_prompt_and_blank_input ... ok
[INFO] [stdout] test problems::tests::handle_key_e_returns_edit_with_selected_path ... ok
[INFO] [stdout] test problems::tests::handle_key_m_does_not_open_prompt_when_no_failures ... ok
[INFO] [stdout] test problems::tests::handle_key_m_opens_move_prompt_when_failures_present ... ok
[INFO] [stdout] test dashboard::tests::dashboard_render_includes_load_failure_count ... ok
[INFO] [stdout] test pattern_edit::tests::typing_appends_to_focused_field ... ok
[INFO] [stdout] test problems::tests::move_prompt_enter_with_empty_input_sets_error ... ok
[INFO] [stdout] test problems::tests::handle_key_e_on_empty_list_does_nothing ... ok
[INFO] [stdout] test problems::tests::handle_key_q_returns_back ... ok
[INFO] [stdout] test problems::tests::move_prompt_chars_append_to_input ... ok
[INFO] [stdout] test problems::tests::move_prompt_enter_with_existing_dir_returns_move_all ... ok
[INFO] [stdout] test problems::tests::move_prompt_esc_cancels ... ok
[INFO] [stdout] test problems::tests::next_selection_clamps_at_top_and_bottom ... ok
[INFO] [stdout] test pattern_edit::tests::enter_with_empty_field_sets_error ... ok
[INFO] [stdout] test random::tests::a_toggles_answer_visibility ... ok
[INFO] [stdout] test random::tests::q_returns_back ... ok
[INFO] [stdout] test random::tests::n_advances_to_next_card_and_resets_answer ... ok
[INFO] [stdout] test history::tests::render_shows_empty_state_when_no_reviews ... ok
[INFO] [stdout] test history::tests::render_lists_reviews_in_table ... ok
[INFO] [stdout] test problems::tests::move_prompt_render_replaces_commands_footer ... ok
[INFO] [stdout] test dashboard::tests::dashboard_render_highlights_selected_row ... ok
[INFO] [stdout] test problems::tests::problems_render_handles_empty_list ... ok
[INFO] [stdout] test repl::tests::format_elapsed_under_an_hour ... ok
[INFO] [stdout] test repl::tests::format_elapsed_over_an_hour ... ok
[INFO] [stdout] test repl::tests::format_pace_computes_reviews_per_minute ... ok
[INFO] [stdout] test repl::tests::format_pace_dashes_when_session_is_too_short ... ok
[INFO] [stdout] test dashboard::tests::dashboard_renders_one_row_per_deck_plus_all_due ... ok
[INFO] [stdout] test dashboard::tests::dashboard_render_includes_globals_command ... ok
[INFO] [stdout] test problems::tests::move_prompt_enter_when_dest_is_a_file_sets_error ... ok
[INFO] [stdout] test dashboard::tests::dashboard_render_includes_activity_and_upcoming_panels ... ok
[INFO] [stdout] test repl::tests::help_overlay_renders_keybinds_when_show_help_is_set ... ok
[INFO] [stdout] test settings::tests::enter_returns_save_with_deck_settings ... ok
[INFO] [stdout] test history::tests::render_shows_header_and_question ... ok
[INFO] [stdout] test settings::tests::r_resets_field_to_default ... ok
[INFO] [stdout] test settings::tests::navigation_clamps_top_and_bottom ... ok
[INFO] [stdout] test repl::tests::deck_info_panel_shows_streak_elapsed_and_pace ... ok
[INFO] [stdout] test random::tests::renders_empty_state_when_no_cards ... ok
[INFO] [stdout] test string_edit::tests::enter_with_empty_input_allowed_when_flag_set ... ok
[INFO] [stdout] test string_edit::tests::enter_with_empty_input_blocked_when_required ... ok
[INFO] [stdout] test repl::tests::quit_confirm_render_shows_prompt_with_remaining_count ... ok
[INFO] [stdout] test random::tests::renders_question_by_default ... ok
[INFO] [stdout] test string_edit::tests::enter_with_text_returns_submit ... ok
[INFO] [stdout] test tests::format_stats_table_includes_header_and_one_row_per_deck_plus_all_due ... ok
[INFO] [stdout] test repl::tests::study_card_view_in_answer_mode_shows_answer_and_scoring_keys_with_intervals ... ok
[INFO] [stdout] test string_edit::tests::esc_returns_cancel ... ok
[INFO] [stdout] test string_edit::tests::typing_appends_chars ... ok
[INFO] [stdout] test tests::resolve_notes_dirpath_returns_config_when_arg_missing ... ok
[INFO] [stdout] test tui_layout::tests::places_inner_in_the_centre_when_outer_is_larger ... ok
[INFO] [stdout] test tests::resolve_notes_dirpath_arg_does_not_overwrite_existing_config ... ok
[INFO] [stdout] test tests::resolve_notes_dirpath_returns_arg_without_persisting ... ok
[INFO] [stdout] test tui_layout::tests::area_smaller_than_inner_does_not_panic ... ok
[INFO] [stdout] test problems::tests::problems_render_shows_selected_failure_error_in_details_panel ... ok
[INFO] [stdout] test dashboard::tests::dashboard_render_includes_problems_command ... ok
[INFO] [stdout] test dashboard::tests::dashboard_render_includes_streak_in_header ... ok
[INFO] [stdout] test tui_layout::tests::respects_outer_origin_offset ... ok
[INFO] [stdout] test repl::tests::study_card_view_renders_markdown_inline_formatting ... ok
[INFO] [stdout] test settings::tests::renders_deck_section_and_all_six_fields ... ok
[INFO] [stdout] test repl::tests::no_cards_due_view_announces_nothing_to_review ... ok
[INFO] [stdout] test problems::tests::problems_render_lists_each_failure_path ... ok
[INFO] [stdout] test repl::tests::deck_info_panel_reflects_live_pending_and_reviews_counters ... ok
[INFO] [stdout] test repl::tests::deck_info_panel_shows_current_card_source_path ... ok
[INFO] [stdout] test settings::tests::right_increments_pass_coef_by_zero_point_one ... ok
[INFO] [stdout] test string_edit::tests::backspace_pops_last_char ... ok
[INFO] [stdout] test repl::tests::study_card_view_in_question_mode_shows_question_and_question_commands ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 130 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests vultan
[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" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac", kill_on_drop: false }`
[INFO] [stdout] 1e0100cc68618ec9e8146aa59127905234d11f94131674a7df52e58e02d09eac
