[INFO] cloning repository https://github.com/ankurCES/wargames
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ankurCES/wargames" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FankurCES%2Fwargames", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FankurCES%2Fwargames'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6fb755ebec8228076e38220efbf9f6aa47826199
[INFO] testing ankurCES/wargames against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FankurCES%2Fwargames" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ankurCES/wargames
[INFO] finished tweaking git repo https://github.com/ankurCES/wargames
[INFO] tweaked toml for git repo https://github.com/ankurCES/wargames written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ankurCES/wargames on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ankurCES/wargames 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded webpki-roots v1.0.8
[INFO] [stderr]   Downloaded rustc-hash v2.1.3
[INFO] [stderr]   Downloaded ratatui v0.30.2
[INFO] [stderr]   Downloaded ratatui-widgets v0.3.2
[INFO] [stderr]   Downloaded strum_macros v0.28.0
[INFO] [stderr]   Downloaded strum v0.28.0
[INFO] [stderr]   Downloaded ratatui-core v0.1.2
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.2
[INFO] [stderr]   Downloaded pest_derive v2.8.7
[INFO] [stderr]   Downloaded pest_generator v2.8.7
[INFO] [stderr]   Downloaded pest_meta v2.8.7
[INFO] [stderr]   Downloaded pest v2.8.7
[INFO] [stderr]   Downloaded termina v0.3.3
[INFO] [stderr]   Downloaded ratatui-macros v0.7.2
[INFO] [stderr]   Downloaded ratatui-termina v0.1.0
[INFO] [stderr]   Downloaded ratatui-crossterm v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261
[INFO] running `Command { std: "docker" "start" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", 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" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", 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" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling webpki-roots v1.0.8
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling lru v0.18.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling wargames-core v0.1.0 (/opt/rustwide/workdir/crates/wargames-core)
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling wargames-tui v0.1.0 (/opt/rustwide/workdir/crates/wargames-tui)
[INFO] [stdout] warning: variant `Action` is never constructed
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub enum PaneKind {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 116 |     Action,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PaneKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next` and `prev` are never used
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl PaneKind {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn next(self) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn prev(self) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Settings` is never constructed
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub enum ViewKind {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 179 |     Settings,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ViewKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl ViewKind {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn label(self) -> &'static str {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ViewRects` is never constructed
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub struct ViewRects {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ViewRect` is never constructed
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:289:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct ViewRect {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:295:18
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl ViewRect {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 295 |     pub const fn empty(view: ViewKind) -> Self {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `view_layout` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn view_layout(area: Rect, active: ViewKind, mode: PaneLock) -> ViewRects {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `legacy_game_layout` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/panes.rs:557:8
[INFO] [stdout]     |
[INFO] [stdout] 557 | pub fn legacy_game_layout(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap_with_overflow_hint` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/text.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn wrap_with_overflow_hint(s: &str, width: usize, max_lines: usize) -> (Vec<String>, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `overflow_hint_line` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/text.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn overflow_hint_line(hidden: usize, width: usize, hint: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `slug` and `resolve` are never used
[INFO] [stdout]    --> crates/wargames-tui/src/theme.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl ThemeName {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 158 |     /// Stable string identifier used in settings + log lines.
[INFO] [stdout] 159 |     pub fn slug(self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn resolve(self) -> Theme {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BRAILLE_FRAMES` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/ui_anim.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const BRAILLE_FRAMES: &[char] = &['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧'];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `braille_spinner` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/ui_anim.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn braille_spinner(tick: u64) -> char {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `advance` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/ui_anim.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl TypewriterState {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn advance(&mut self, text: &str, chars_per_tick: usize) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pulse_style` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/ui_anim.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn pulse_style(tick: u64, period: u64, bright: Color, dim: Color) -> Style {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSLATIONS` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/widget_comms.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const TRANSLATIONS: &[(&str, Language, &str)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_comms.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn translate(english_source: &str, target: Language) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_comms.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn render(
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_for` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_comms.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 254 | fn line_for(entry: &LogEntry, theme: &theme::Theme, tick: u64) -> Line<'static> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translation_lines_for` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_comms.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn translation_lines_for(entry: &LogEntry, theme: &theme::Theme) -> Vec<Line<'static>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSLATION_TARGETS` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_comms.rs:338:7
[INFO] [stdout]     |
[INFO] [stdout] 338 | const TRANSLATION_TARGETS: &[Language] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefconGauge` is never constructed
[INFO] [stdout]   --> crates/wargames-tui/src/widget_defcon.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct DefconGauge {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `note_change`, `lines`, `is_pulsing`, and `render` are never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_defcon.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl DefconGauge {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  35 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub fn note_change(&mut self, tick: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn lines(&self, world: &WorldState, tick: u64) -> Vec<Line<'static>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn is_pulsing(&self, tick: u64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn render(&self, frame: &mut Frame, area: Rect, world: &WorldState, tick: u64) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rung_color` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_defcon.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn rung_color(rung: u8) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rung_label` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_defcon.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn rung_label(rung: u8) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHIMMER` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/widget_spinner.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const SHIMMER: &[char] = &['█', '▓', '▒', '░'];
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shimmer_len` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_spinner.rs:267:14
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub const fn shimmer_len() -> usize {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `braille_len` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_spinner.rs:272:14
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub const fn braille_len() -> usize {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `progress_total_frames` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_spinner.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub const fn progress_total_frames() -> usize {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bar_width` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_spinner.rs:282:14
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub const fn bar_width() -> usize {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Location` is never constructed
[INFO] [stdout]   --> crates/wargames-tui/src/widget_world.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Location {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCATIONS` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/widget_world.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const LOCATIONS: &[Location] = &[
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONTINENTS` is never used
[INFO] [stdout]   --> crates/wargames-tui/src/widget_world.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const CONTINENTS: &[&[(f32, f32)]] = &[
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cities_for_theater` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_world.rs:160:4
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn cities_for_theater(theater: Theater) -> &'static [&'static str] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreatDot` is never constructed
[INFO] [stdout]    --> crates/wargames-tui/src/widget_world.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub struct ThreatDot {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `threats_for` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_world.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn threats_for(world: &WorldState) -> Vec<ThreatDot> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_world.rs:223:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub fn render(frame: &mut Frame, area: Rect, world: &WorldState, tick: u64) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `project` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_world.rs:364:4
[INFO] [stdout]     |
[INFO] [stdout] 364 | fn project(lat: f32, lon: f32, w: usize, h: usize) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line` is never used
[INFO] [stdout]    --> crates/wargames-tui/src/widget_world.rs:375:4
[INFO] [stdout]     |
[INFO] [stdout] 375 | fn draw_line(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s
[INFO] running `Command { std: "docker" "inspect" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", 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" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling wargames-core v0.1.0 (/opt/rustwide/workdir/crates/wargames-core)
[INFO] [stderr]    Compiling wargames-tui v0.1.0 (/opt/rustwide/workdir/crates/wargames-tui)
[INFO] [stdout] warning: unused variable: `after`
[INFO] [stdout]    --> crates/wargames-core/src/engine.rs:352:13
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let after = apply_action(&s, Side::Us, Action::Patrol); // any non-strike, non-disarm
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `after`
[INFO] [stdout]    --> crates/wargames-core/src/engine.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let after = apply_action(&s, Side::Opp, Action::Mobilize);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.50s
[INFO] running `Command { std: "docker" "inspect" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", 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" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `after`
[INFO] [stderr]    --> crates/wargames-core/src/engine.rs:352:13
[INFO] [stderr]     |
[INFO] [stderr] 352 |         let after = apply_action(&s, Side::Us, Action::Patrol); // any non-strike, non-disarm
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `after`
[INFO] [stderr]    --> crates/wargames-core/src/engine.rs:354:13
[INFO] [stderr]     |
[INFO] [stderr] 354 |         let after = apply_action(&s, Side::Opp, Action::Mobilize);
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_after`
[INFO] [stderr] 
[INFO] [stderr] warning: `wargames-core` (lib test) generated 2 warnings (run `cargo fix --lib -p wargames-core --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wargames_core-950c3cd52910a7e3)
[INFO] [stdout] 
[INFO] [stdout] running 63 tests
[INFO] [stdout] test agents::learning::tests::empty_learner_returns_zero_weights ... ok
[INFO] [stdout] test agents::learning::tests::learner_converges_after_consistent_good_outcomes ... ok
[INFO] [stdout] test agents::learning::tests::terminal_samples_clamp_to_strong_negative_reward ... ok
[INFO] [stdout] test agents::personas::tests::personas_produce_strictly_different_weight_vectors_on_same_state ... ok
[INFO] [stdout] test agents::personas::tests::personas_yield_different_distributions_on_high_tension ... ok
[INFO] [stdout] test engine::tests::all_proxy_actions_round_trip_through_serde ... ok
[INFO] [stdout] test engine::tests::cut_support_raises_tension_from_retaliation ... ok
[INFO] [stdout] test engine::tests::budget_decays_each_turn ... ok
[INFO] [stdout] test engine::tests::defcon_clamps_at_1 ... ok
[INFO] [stdout] test agents::tests::summary_turns_played_advances ... ok
[INFO] [stdout] test agents::tests::learner_receives_outcomes_per_turn ... ok
[INFO] [stdout] test engine::tests::defection_when_budget_exhausted_under_hardened ... ok
[INFO] [stdout] test engine::tests::defcon_clamps_at_5 ... ok
[INFO] [stdout] test agents::tests::ai_vs_ai_match_runs_to_terminal_or_bounded_turns ... ok
[INFO] [stdout] test engine::tests::detection_drifts_with_aggression ... ok
[INFO] [stdout] test engine::tests::disarm_terminates_immediately ... ok
[INFO] [stdout] test engine::tests::escalate_via_mobilize_lowers_defcon ... ok
[INFO] [stdout] test engine::tests::fund_proxy_decreases_budget_and_raises_tension ... ok
[INFO] [stdout] test engine::tests::strike_proxy_terminates_non_terminal_and_raises_detection ... ok
[INFO] [stdout] test engine::tests::sanction_keeps_terminal_none_and_modest_tension ... ok
[INFO] [stdout] test engine::tests::negotiate_increases_defcon ... ok
[INFO] [stdout] test engine::tests::strike_terminates_immediately ... ok
[INFO] [stdout] test engine::tests::world_state_round_trips_with_proxies_and_alliances ... ok
[INFO] [stdout] test language::tests::deserializes_missing_field_as_english ... ok
[INFO] [stdout] test language::tests::deserializes_explicit_russian ... ok
[INFO] [stdout] test language::tests::rtl_classification ... ok
[INFO] [stdout] test log::tests::comm_with_lang_builder_sets_fields ... ok
[INFO] [stdout] test proxies::tests::actor_defaults_for_missing_capability_and_autonomy ... ok
[INFO] [stdout] test proxies::tests::alliance_kind_serializes_as_snake_case ... ok
[INFO] [stdout] test proxies::tests::alliance_involves_checks_both_sides ... ok
[INFO] [stdout] test language::tests::default_is_english ... ok
[INFO] [stdout] test proxies::tests::sponsor_serializes_as_snake_case ... ok
[INFO] [stdout] test log::tests::deserialize_without_language_defaults_to_english ... ok
[INFO] [stdout] test proxies::tests::freelance_strike_risk_is_radicalization_times_autonomy ... ok
[INFO] [stdout] test scenario::corpus::tests::briefings_are_nonempty ... ok
[INFO] [stdout] test scenario::corpus::tests::every_corpus_has_at_least_three_recent_events ... ok
[INFO] [stdout] test scenario::generator::tests::era_override_takes_precedence_over_default ... ok
[INFO] [stdout] test scenario::generator::tests::different_theaters_differ ... ok
[INFO] [stdout] test agents::learning::tests::ring_is_bounded ... ok
[INFO] [stdout] test log::tests::deserialize_with_russian_language ... ok
[INFO] [stdout] test scenario::generator::tests::different_seeds_produce_variation ... ok
[INFO] [stdout] test scenario::corpus::tests::lookup_resolves_all_bundled_theaters ... ok
[INFO] [stdout] test scenario::generator::tests::faction_override_takes_precedence_over_default ... ok
[INFO] [stdout] test scenario::generator::tests::detection_pct_lands_in_safe_band ... ok
[INFO] [stdout] test scenario::generator::tests::opener_cites_corpus_event_and_theater_name ... ok
[INFO] [stdout] test scenario::generator::tests::generated_scenario_round_trips_through_serde ... ok
[INFO] [stdout] test scenario::generator::tests::same_seed_same_theater_is_deterministic ... ok
[INFO] [stdout] test scenario::generator::tests::stub_compiles ... ok
[INFO] [stdout] test scenario::tests::red_sea_freelance_actors_are_all_independent ... ok
[INFO] [stdout] test scenario::tests::eastern_med_world_state_includes_terror_actors ... ok
[INFO] [stdout] test scenario::tests::infers_taiwan_theater ... ok
[INFO] [stdout] test scenario::tests::eastern_med_proxy_actors_have_opposing_sponsors ... ok
[INFO] [stdout] test scenario::tests::proxy_scenarios_load_with_terror_actors_and_alliances ... ok
[INFO] [stdout] test scenario::tests::parses_real_scenario_shape ... ok
[INFO] [stdout] test state::tests::posture_aggression_is_monotonic ... ok
[INFO] [stdout] test state::tests::side_opposite_flips ... ok
[INFO] [stdout] test triggers::tests::kaliningrad_fires_when_conditions_met ... ok
[INFO] [stdout] test triggers::tests::trigger_does_not_fire_wrong_theater ... ok
[INFO] [stdout] test scenario::generator::tests::sample_era_only_returns_distributions_supported_by_theater ... ok
[INFO] [stdout] test predict::tests::predict_is_deterministic ... ok
[INFO] [stdout] test language::tests::tags_are_stable_snake_case ... ok
[INFO] [stdout] test predict::tests::probabilities_sum_to_at_most_one ... ok
[INFO] [stdout] test log::tests::comm_default_builder_is_english ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wargames_tui-7b52b1301716e232)
[INFO] [stdout] 
[INFO] [stdout] running 237 tests
[INFO] [stdout] test app::playable_flow_tests::fade_clears_after_window_using_clock_seam ... ok
[INFO] [stdout] test app::playable_flow_tests::country_to_scenario_to_game_is_reachable ... ok
[INFO] [stdout] test app::playable_flow_tests::app_default_clock_returns_monotonic_instants ... ok
[INFO] [stdout] test app::playable_flow_tests::fixture_layout_probe ... ignored, touches /tmp fixtures; run with `cargo test -- --ignored`
[INFO] [stdout] test app::playable_flow_tests::fit_to_status_width_does_not_panic_on_multibyte_ascii_fits ... ok
[INFO] [stdout] test app::playable_flow_tests::fit_to_status_width_handles_cjk ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::app_new_starts_on_login_screen ... ok
[INFO] [stdout] test app::playable_flow_tests::fit_to_status_width_handles_em_dash_and_ellipsis ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::backspace_removes_last_char ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::backtab_cycle_on_game_wraps_backwards ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::correct_password_joshua_advances_to_picker ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::enter_on_game_no_longer_toggles_pane_lock ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::correct_password_lowercase_joshua_accepted ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::m_key_on_game_toggles_split_and_full ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::escape_during_login_quits_app ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::tab_cycle_on_game_advances_view_kind_and_resets_split ... ok
[INFO] [stdout] test app::playable_flow_tests::login_tests::wrong_password_keeps_user_on_login_screen ... ok
[INFO] [stdout] test app::playable_flow_tests::parse_action_str_accepts_every_variant ... ok
[INFO] [stdout] test app::playable_flow_tests::picker_enter_on_country_shows_progress_affordance ... ok
[INFO] [stdout] test app::playable_flow_tests::proxy_scenario_full_loop_applies_new_actions ... ok
[INFO] [stdout] test app::playable_flow_tests::fit_to_status_width_zero_budget_returns_empty ... ok
[INFO] [stdout] test app::playable_flow_tests::radar_contacts_is_empty_when_no_world_exists ... ok
[INFO] [stdout] test app::playable_flow_tests::ai_vs_ai_mode_routes_to_generated_scenario_not_player_game ... ok
[INFO] [stdout] test app::playable_flow_tests::log_scroll_resets_to_tail_on_world_mutation ... ok
[INFO] [stdout] test app::playable_flow_tests::radar_contacts_present_and_deterministic_at_game_start ... ok
[INFO] [stdout] test app::playable_flow_tests::s_opens_settings_and_esc_returns_to_game ... ok
[INFO] [stdout] test app::playable_flow_tests::settings_navigate_then_esc_reverts_theme ... ok
[INFO] [stdout] test app::playable_flow_tests::settings_q_quits_but_esc_closes_only ... ok
[INFO] [stdout] test app::playable_flow_tests::fresh_picker_render_does_not_show_phantom_empty_state ... ok
[INFO] [stdout] test config::tests::documented_sample_parses_and_resolves_router ... ok
[INFO] [stdout] test config::tests::hardcoded_path_targets_blumi_settings ... ok
[INFO] [stdout] test app::playable_flow_tests::comm_scroll_keys_route_to_comm_strip_post_completion ... ok
[INFO] [stdout] test app::playable_flow_tests::picker_enter_during_loading_paints_spinner_in_rendered_frame ... ok
[INFO] [stdout] test app::playable_flow_tests::render_status_line_with_multibyte_streaming_buffer_does_not_panic_narrow ... ok
[INFO] [stdout] test app::playable_flow_tests::commit_action_during_fade_resets_fade_window ... ok
[INFO] [stdout] test app::playable_flow_tests::apply_opponent_action_populates_last_comm ... ok
[INFO] [stdout] test llm::tests::no_tool_use_returns_none ... ok
[INFO] [stdout] test config::tests::loads_minimax_provider ... ok
[INFO] [stdout] test llm::tests::sse_delta_assembles_commander_action ... ok
[INFO] [stdout] test login::tests::authenticated_phase_eventually_marks_done ... ok
[INFO] [stdout] test llm::tests::sse_record_finder_handles_lf_and_crlf ... ok
[INFO] [stdout] test config::tests::missing_file_is_a_typed_error ... ok
[INFO] [stdout] test login::tests::authenticated_typewriter_reveals_chars_progressively ... ok
[INFO] [stdout] test app::playable_flow_tests::commit_action_advances_turn_and_requests_opponent ... ok
[INFO] [stdout] test app::playable_flow_tests::enter_ai_vs_ai_creates_generated_scenario_and_advances_world ... ok
[INFO] [stdout] test llm::tests::decide_stream_live_extracts_action_from_text_only_stream ... ok
[INFO] [stdout] test llm::tests::decide_stream_live_returns_varied_actions_against_mock_sse ... ok
[INFO] [stdout] test app::playable_flow_tests::streaming_comm_replaces_placeholder_in_place ... ok
[INFO] [stdout] test app::playable_flow_tests::comm_strip_does_not_render_partial_streaming_tokens ... ok
[INFO] [stdout] test login::tests::fresh_state_is_on_prompt_phase ... ok
[INFO] [stdout] test login::tests::push_char_caps_buffer_at_32_chars ... ok
[INFO] [stdout] test login::tests::submit_with_wrong_text_enters_wrong_phase ... ok
[INFO] [stdout] test login::tests::submit_with_joshua_authenticates ... ok
[INFO] [stdout] test login::tests::submit_is_case_insensitive ... ok
[INFO] [stdout] test login::tests::push_char_and_backspace_edit_buffer ... ok
[INFO] [stdout] test app::playable_flow_tests::ai_vs_ai_blocks_player_input_but_allows_esc_and_predict ... ok
[INFO] [stdout] test panes::tests::classify_picks_compact_at_or_below_80_cols ... ok
[INFO] [stdout] test panes::tests::classify_marks_too_small_when_below_minimum ... ok
[INFO] [stdout] test panes::tests::classify_picks_wide_at_or_above_120_cols ... ok
[INFO] [stdout] test panes::tests::classify_promotes_to_compact_at_small_height ... ok
[INFO] [stdout] test llm::tests::sse_stream_assembles_varied_commander_actions ... ok
[INFO] [stdout] test login::tests::wrong_phase_eventually_resets_to_prompt ... ok
[INFO] [stdout] test login::tests::push_char_ignored_during_authenticated_phase ... ok
[INFO] [stdout] test panes::tests::game_layout_compact_fits_inside_area ... ok
[INFO] [stdout] test app::playable_flow_tests::receiving_popup_paints_label_when_visible ... ok
[INFO] [stdout] test login::tests::render_at_various_sizes_does_not_panic ... ok
[INFO] [stdout] test panes::tests::pane_lock_default_is_split_left ... ok
[INFO] [stdout] test panes::tests::game_layout_too_small_returns_default_rects ... ok
[INFO] [stdout] test panes::tests::view_kind_labels_are_uppercase_short_strings ... ok
[INFO] [stdout] test panes::tests::view_kind_next_wraps_around_cycle ... ok
[INFO] [stdout] test panes::tests::view_kind_prev_wraps_around_cycle ... ok
[INFO] [stdout] test panes::tests::view_kind_settings_is_reachable_but_not_in_cycle ... ok
[INFO] [stdout] test panes::tests::view_kind_tab_order_excludes_settings ... ok
[INFO] [stdout] test panes::tests::view_layout_compact_always_promotes_to_full ... ok
[INFO] [stdout] test panes::tests::view_layout_full_paints_one_view_at_body_width ... ok
[INFO] [stdout] test panes::tests::view_layout_split_handles_zero_width_area ... ok
[INFO] [stdout] test panes::tests::game_layout_medium_shows_split_left_and_log_plus_action_strip ... ok
[INFO] [stdout] test panes::tests::legacy_game_layout_matches_new_layout ... ok
[INFO] [stdout] test app::playable_flow_tests::heuristic_opponent_completes_and_prediction_updates ... ok
[INFO] [stdout] test panes::tests::view_layout_split_fits_inside_area_at_medium_and_wide ... ok
[INFO] [stdout] test panes::tests::view_layout_too_small_returns_empty_primary ... ok
[INFO] [stdout] test panes::tests::pane_kind_cycles_through_three_tab_panes ... ok
[INFO] [stdout] test picker::tests::advance_from_mode_to_country_latches_mode_choice ... ok
[INFO] [stdout] test panes::tests::view_rect_empty_is_zero_sized ... ok
[INFO] [stdout] test picker::tests::advance_resets_scenario_index ... ok
[INFO] [stdout] test picker::tests::ai_vs_ai_advance_from_scenario_returns_true_every_time ... ok
[INFO] [stdout] test picker::tests::back_from_country_preserves_mode_highlight ... ok
[INFO] [stdout] test picker::tests::ai_vs_ai_scenario_step_lists_theaters_not_bundled_json ... ok
[INFO] [stdout] test picker::tests::back_walks_through_all_three_steps ... ok
[INFO] [stdout] test picker::tests::default_theaters_returns_all_eight_supported_theaters ... ok
[INFO] [stdout] test picker::tests::empty_state_sets_error_message ... ok
[INFO] [stdout] test picker::tests::every_faction_advances_to_scenarios_with_results ... ok
[INFO] [stdout] test picker::tests::fresh_picker_on_country_step_has_no_error_and_empty_cache ... ok
[INFO] [stdout] test picker::tests::fresh_picker_on_mode_step_has_no_error_and_empty_cache ... ok
[INFO] [stdout] test picker::tests::dprk_sees_us_nato_only ... ok
[INFO] [stdout] test picker::tests::human_vs_ai_selected_scenario_returns_bundled_entry ... ok
[INFO] [stdout] test login::tests::render_after_submit_handles_all_phases ... ok
[INFO] [stdout] test panes::tests::game_layout_compact_log_and_left_are_side_by_side ... ok
[INFO] [stdout] test picker::tests::mode_step_lists_exactly_two_modes ... ok
[INFO] [stdout] test picker::tests::soviet_sees_us_nato_and_soviet_scenarios ... ok
[INFO] [stdout] test picker::tests::stale_error_on_country_step_is_cleared_by_rebuild_cache ... ok
[INFO] [stdout] test settings::tests::load_returns_empty_on_missing_file ... ok
[INFO] [stdout] test picker::tests::usa_sees_us_and_nato_scenarios ... ok
[INFO] [stdout] test settings::tests::settings_file_default_version_is_1 ... ok
[INFO] [stdout] test settings::tests::settings_file_round_trips ... ok
[INFO] [stdout] test picker::tests::ai_vs_ai_selected_scenario_returns_theater_with_seed ... ok
[INFO] [stdout] test picker::tests::fresh_picker_starts_on_mode_step_with_human_vs_ai_default ... ok
[INFO] [stdout] test panes::tests::view_kind_default_is_map ... ok
[INFO] [stdout] test splash::tests::render_at_pathological_dimensions_does_not_panic ... ok
[INFO] [stdout] test panes::tests::view_layout_split_partitions_body_with_divider ... ok
[INFO] [stdout] test panes::tests::view_layout_split_picks_sensible_partner_view ... ok
[INFO] [stdout] test splash::tests::render_at_compact_does_not_panic ... ok
[INFO] [stdout] test picker::tests::prc_sees_modern_great_power_set ... ok
[INFO] [stdout] test panes::tests::game_layout_compact_handles_narrow_terminal_without_panic ... ok
[INFO] [stdout] test text::tests::display_width_counts_cjk_as_two_cells ... ok
[INFO] [stdout] test text::tests::display_width_handles_ascii_and_wide ... ok
[INFO] [stdout] test text::tests::no_panic_on_empty_or_zero_width ... ok
[INFO] [stdout] test text::tests::pad_right_pads_to_width ... ok
[INFO] [stdout] test text::tests::truncate_with_ellipsis_no_op_when_fits ... ok
[INFO] [stdout] test text::tests::truncate_with_ellipsis_keeps_full_text_when_room ... ok
[INFO] [stdout] test text::tests::wrap_to_width_handles_cjk ... ok
[INFO] [stdout] test text::tests::no_silent_data_loss_for_cjk ... ok
[INFO] [stdout] test text::tests::truncate_with_ellipsis_appends_when_cut ... ok
[INFO] [stdout] test splash::tests::render_at_tiny_does_not_panic ... ok
[INFO] [stdout] test panes::tests::game_layout_wide_left_pane_takes_more_than_log ... ok
[INFO] [stdout] test text::tests::display_width_counts_combining_marks_zero_extra ... ok
[INFO] [stdout] test text::tests::wrap_to_width_no_change_when_already_fits ... ok
[INFO] [stdout] test text::tests::wrap_with_overflow_hint_no_hidden_when_fits ... ok
[INFO] [stdout] test text::tests::wrap_to_width_keeps_words_intact ... ok
[INFO] [stdout] test text::tests::wrap_to_width_hard_breaks_one_long_word ... ok
[INFO] [stdout] test theme::tests::by_name_resolves_all_seeds ... ok
[INFO] [stdout] test theme::tests::every_seed_theme_has_distinct_palette ... ok
[INFO] [stdout] test theme::tests::serializes_through_blumi_settings ... ok
[INFO] [stdout] test text::tests::wrap_with_overflow_hint_returns_hidden_count ... ok
[INFO] [stdout] test theme::tests::set_current_swaps_then_resets ... ok
[INFO] [stdout] test splash::tests::render_at_wide_does_not_panic ... ok
[INFO] [stdout] test theme::tests::theme_name_slug_matches_its_field ... ok
[INFO] [stdout] test ui_anim::tests::braille_spinner_cycles_after_full_loop ... ok
[INFO] [stdout] test ui_anim::tests::pulse_style_alternates_bright_and_dim ... ok
[INFO] [stdout] test ui_anim::tests::typewriter_reset_returns_to_start ... ok
[INFO] [stdout] test ui_anim::tests::typewriter_handles_multibyte_char_boundaries ... ok
[INFO] [stdout] test theme::tests::defaults_to_og_wopr ... ok
[INFO] [stdout] test widget_action::tests::all_actions_covers_every_action_variant ... ok
[INFO] [stdout] test widget_action::tests::all_actions_includes_proxy_variants ... ok
[INFO] [stdout] test widget_action::tests::all_actions_has_no_duplicates ... ok
[INFO] [stdout] test theme::tests::current_defaults_to_og_wopr ... ok
[INFO] [stdout] test ui_anim::tests::typewriter_advances_and_caps_at_text_length ... ok
[INFO] [stdout] test ui_anim::tests::braille_spinner_cycles_through_eight_frames ... ok
[INFO] [stdout] test widget_action::tests::render_at_typical_width_does_not_panic ... ok
[INFO] [stdout] test widget_action::tests::every_action_fits_in_widest_row_width ... ok
[INFO] [stdout] test widget_action::tests::render_at_narrow_width_does_not_panic ... ok
[INFO] [stdout] test widget_comms::tests::render_handles_sub_minimum_area ... ok
[INFO] [stdout] test widget_comms::tests::non_comm_entries_are_skipped ... ok
[INFO] [stdout] test theme::tests::by_name_falls_back_to_og_wopr_for_garbage ... ok
[INFO] [stdout] test widget_comms::tests::rtl_comm_renders_left_arrow ... ok
[INFO] [stdout] test widget_comms::tests::respects_max_lines_cap ... ok
[INFO] [stdout] test widget_action::tests::widest_row_width_is_at_least_min_inner_width ... ok
[INFO] [stdout] test widget_comms::tests::render_panel_shows_translations_beneath_canonical_comm ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_known_arabic_string ... ok
[INFO] [stdout] test widget_comms::tests::empty_log_renders_placeholder ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_known_hebrew_string ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_known_korean_string ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_known_mandarin_string ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_none_for_unknown_source ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_known_russian_string ... ok
[INFO] [stdout] test widget_comms::tests::opp_comm_renders_with_arrow ... ok
[INFO] [stdout] test theme::tests::og_wopr_matches_legacy_palette ... ok
[INFO] [stdout] test widget_comms::tests::translate_returns_none_for_unsupported_pair ... ok
[INFO] [stdout] test widget_comms::tests::translation_lines_for_rtl_uses_left_arrow ... ok
[INFO] [stdout] test widget_comms::tests::translation_lines_for_unknown_source_emits_nothing ... ok
[INFO] [stdout] test widget_defcon::tests::fresh_gauge_has_no_pulse ... ok
[INFO] [stdout] test widget_defcon::tests::ladder_renders_all_five_rungs ... ok
[INFO] [stdout] test widget_defcon::tests::note_change_starts_pulse ... ok
[INFO] [stdout] test widget_defcon::tests::render_handles_sub_minimum_area ... ok
[INFO] [stdout] test widget_defcon::tests::defcon_clamped_to_valid_range ... ok
[INFO] [stdout] test widget_comms::tests::translate_trims_trailing_whitespace ... ok
[INFO] [stdout] test widget_comms::tests::translation_lines_for_skips_source_language ... ok
[INFO] [stdout] test widget_defcon::tests::lines_include_current_defcon_digit ... ok
[INFO] [stdout] test widget_log::tests::ltr_comm_row_places_leading_arrow ... ok
[INFO] [stdout] test widget_log::tests::render_at_ultra_narrow_width_shows_friendly_hint ... ok
[INFO] [stdout] test widget_log::tests::render_at_narrow_width_does_not_panic ... ok
[INFO] [stdout] test panes::tests::game_layout_wide_keeps_action_panel_full_width_and_below_log ... ok
[INFO] [stdout] test widget_log::tests::non_latin_scripts_render_without_panic ... ok
[INFO] [stdout] test app::playable_flow_tests::radar_contacts_change_after_commit_action_advances_turn ... ok
[INFO] [stdout] test widget_log::tests::wraps_long_messages_to_pane_width ... ok
[INFO] [stdout] test widget_predict::tests::bar_width_floor_keeps_a_readable_bar ... ok
[INFO] [stdout] test widget_predict::tests::bar_width_scales_with_pane ... ok
[INFO] [stdout] test widget_radar::tests::render_at_narrow_width_does_not_panic ... ok
[INFO] [stdout] test widget_predict::tests::render_at_narrow_width_does_not_panic ... ok
[INFO] [stdout] test widget_defcon::tests::render_does_not_panic_at_various_sizes ... ok
[INFO] [stdout] test widget_log::tests::render_with_scroll_offset_must_not_panic_and_must_clip_to_window ... ok
[INFO] [stdout] test widget_radar::tests::render_at_pathological_dimensions_does_not_panic ... ok
[INFO] [stdout] test widget_log::tests::scroll_hint_mentions_jk_keys_alongside_pgup_pgdn ... ok
[INFO] [stdout] test widget_log::tests::rtl_comm_row_places_trailing_arrow ... ok
[INFO] [stdout] test widget_receiving_popup::tests::centered_rect_is_zero_when_too_short ... ok
[INFO] [stdout] test widget_radar::tests::sample_contacts_populates_polar_fields ... ok
[INFO] [stdout] test widget_receiving_popup::tests::centered_rect_is_zero_when_too_narrow ... ok
[INFO] [stdout] test widget_receiving_popup::tests::centered_rect_sits_at_expected_x_y ... ok
[INFO] [stdout] test panes::tests::game_layout_no_pane_exceeds_area_at_any_size ... ok
[INFO] [stdout] test widget_radar::tests::render_with_empty_contacts_does_not_panic ... ok
[INFO] [stdout] test widget_receiving_popup::tests::popup_width_equals_minimum_for_current_label ... ok
[INFO] [stdout] test widget_radar::tests::polar_radar_places_contacts_in_their_compass_quadrants ... ok
[INFO] [stdout] test widget_radar::tests::sample_contacts_is_deterministic_for_a_seed ... ok
[INFO] [stdout] test widget_radar::tests::polar_radar_renders_cardinals_and_legend ... ok
[INFO] [stdout] test widget_receiving_popup::tests::popup_height_equals_minimum_minus_one ... ok
[INFO] [stdout] test widget_receiving_popup::tests::render_is_noop_on_subminimum_frame ... ok
[INFO] [stdout] test widget_radar::tests::sample_contacts_changes_with_seed ... ok
[INFO] [stdout] test widget_spinner::tests::braille_cycles_through_all_frames ... ok
[INFO] [stdout] test widget_spinner::tests::format_elapsed_is_well_formed ... ok
[INFO] [stdout] test widget_receiving_popup::tests::render_paints_braille_glyph_and_label ... ok
[INFO] [stdout] test widget_spinner::tests::phase_verbs_cycle_through_full_list ... ok
[INFO] [stdout] test widget_spinner::tests::progress_bar_is_zero_at_start_and_full_at_end ... ok
[INFO] [stdout] test widget_spinner::tests::progress_percent_is_monotonic_and_bounds ... ok
[INFO] [stdout] test widget_spinner::tests::rect_helpers_clamp_on_tiny_frames ... ok
[INFO] [stdout] test widget_spinner::tests::rect_helpers_never_overflow_frame ... ok
[INFO] [stdout] test widget_spinner::tests::shimmer_set_has_four_glyphs ... ok
[INFO] [stdout] test widget_state::tests::bar_clamps_to_minimum_one_cell ... ok
[INFO] [stdout] test widget_state::tests::bar_uses_requested_width ... ok
[INFO] [stdout] test widget_state::tests::bar_zero_percent_is_all_pad ... ok
[INFO] [stdout] test widget_state::tests::render_at_narrow_width_does_not_panic ... ok
[INFO] [stdout] test widget_state::tests::text_helper_width_can_be_used_for_padding ... ok
[INFO] [stdout] test widget_world::tests::high_tension_yields_more_threats_than_low_tension ... ok
[INFO] [stdout] test widget_world::tests::project_clamps_to_buffer_bounds ... ok
[INFO] [stdout] test widget_world::tests::render_at_narrow_width_does_not_panic ... ok
[INFO] [stdout] test widget_world::tests::threats_zero_when_tension_is_minimal ... ok
[INFO] [stdout] test widget_world::tests::render_at_pathological_dimensions_does_not_panic ... ok
[INFO] [stdout] test widget_log::tests::reverse_mode_puts_newest_entry_at_the_top ... ok
[INFO] [stdout] test widget_world::tests::continents_render_some_outline_glyphs ... ok
[INFO] [stdout] test settings::tests::save_and_reload_round_trip ... FAILED
[INFO] [stdout] test settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it ... FAILED
[INFO] [stdout] test settings::tests::settings_path_resolves_under_home_config ... FAILED
[INFO] [stdout] test widget_world::tests::render_at_typical_width_does_not_panic ... ok
[INFO] [stdout] test widget_world::tests::render_at_wide_width_does_not_panic ... ok
[INFO] [stdout] test widget_world::tests::washington_and_moscow_always_rendered ... ok
[INFO] [stdout] test widget_radar::tests::render_at_typical_width_does_not_panic ... ok
[INFO] [stdout] test app::playable_flow_tests::log_scroll_keys_advance_offset_and_quit_still_works ... ok
[INFO] [stdout] test app::playable_flow_tests::full_playthrough_loop_is_stable_for_many_turns ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- settings::tests::save_and_reload_round_trip stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'settings::tests::save_and_reload_round_trip' (2449) panicked at crates/wargames-tui/src/settings.rs:315:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: None
[INFO] [stdout]  right: Some("tron")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6436c26bb228 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6436c26bb228 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6436c26bb228 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6436c26bb228 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6436c26d3baa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6436c26d3baa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x6436c26c06d2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x6436c26c06d2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x6436c2696af6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6436c2696af6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6436c26b1ee9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6436c24bbaac - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x6436c24bbaac - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x6436c26b2162 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x6436c26b2162 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6436c2696bb2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6436c268b8a9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6436c2697d0d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6436c26d439c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6436c26d4223 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x6436c1f49536 - core[8fb95b77d25ab6c8]::panicking::assert_failed::<core[8fb95b77d25ab6c8]::option::Option<&str>, core[8fb95b77d25ab6c8]::option::Option<&str>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x6436c1fe8b61 - wargames_tui[3e45fda4fd0cc5e6]::settings::tests::save_and_reload_round_trip
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/wargames-tui/src/settings.rs:315:9
[INFO] [stdout]   22:     0x6436c1fde2d7 - wargames_tui[3e45fda4fd0cc5e6]::settings::tests::save_and_reload_round_trip::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/wargames-tui/src/settings.rs:299:36
[INFO] [stdout]   23:     0x6436c1f9a916 - <wargames_tui[3e45fda4fd0cc5e6]::settings::tests::save_and_reload_round_trip::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6436c24aeb8b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6436c24aeb8b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x6436c24bc405 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x6436c24bc405 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x6436c24bc405 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6436c24bc405 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6436c24bc405 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6436c24bc405 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x6436c24bc405 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x6436c24b5d14 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x6436c24b5d14 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x6436c24bf482 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x6436c24bf482 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x6436c24bf482 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x6436c24bf482 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x6436c24bf482 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6436c24bf482 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x6436c24bf482 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6436c26ba19f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x6436c26ba19f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7bd8d8509aa4 - <unknown>
[INFO] [stdout]   45:     0x7bd8d8596a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it' (2450) panicked at crates/wargames-tui/src/settings.rs:339:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: None
[INFO] [stdout]  right: Some("non-existent-theme")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6436c26bb228 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6436c26bb228 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6436c26bb228 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6436c26bb228 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6436c26d3baa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6436c26d3baa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x6436c26c06d2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x6436c26c06d2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x6436c2696af6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6436c2696af6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6436c26b1ee9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6436c24bbaac - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x6436c24bbaac - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x6436c26b2162 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x6436c26b2162 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6436c2696bb2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6436c268b8a9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6436c2697d0d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6436c26d439c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6436c26d4223 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x6436c1f49536 - core[8fb95b77d25ab6c8]::panicking::assert_failed::<core[8fb95b77d25ab6c8]::option::Option<&str>, core[8fb95b77d25ab6c8]::option::Option<&str>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x6436c1fe95f1 - wargames_tui[3e45fda4fd0cc5e6]::settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/wargames-tui/src/settings.rs:339:9
[INFO] [stdout]   22:     0x6436c1fde397 - wargames_tui[3e45fda4fd0cc5e6]::settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/wargames-tui/src/settings.rs:321:65
[INFO] [stdout]   23:     0x6436c1f9aa16 - <wargames_tui[3e45fda4fd0cc5e6]::settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6436c24aeb8b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6436c24aeb8b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x6436c24bc405 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x6436c24bc405 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x6436c24bc405 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6436c24bc405 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6436c24bc405 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6436c24bc405 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x6436c24bc405 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x6436c24b5d14 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x6436c24b5d14 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x6436c24bf482 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x6436c24bf482 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x6436c24bf482 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x6436c24bf482 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x6436c24bf482 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6436c24bf482 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x6436c24bf482 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6436c26ba19f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x6436c26ba19f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7bd8d8509aa4 - <unknown>
[INFO] [stdout]   45:     0x7bd8d8596a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- settings::tests::settings_path_resolves_under_home_config stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'settings::tests::settings_path_resolves_under_home_config' (2453) panicked at crates/wargames-tui/src/settings.rs:273:9:
[INFO] [stdout] assertion failed: p.ends_with("wargames/wargames_settings.json")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6436c26bb228 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6436c26bb228 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6436c26bb228 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6436c26bb228 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6436c26d3baa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6436c26d3baa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x6436c26c06d2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x6436c26c06d2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x6436c2696af6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6436c2696af6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6436c26b1ee9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6436c24bbaac - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x6436c24bbaac - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x6436c26b2162 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x6436c26b2162 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6436c2696be4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x6436c268b8a9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6436c2697d0d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6436c26d439c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6436c26d4362 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x6436c1fe9210 - wargames_tui[3e45fda4fd0cc5e6]::settings::tests::settings_path_resolves_under_home_config
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/wargames-tui/src/settings.rs:273:9
[INFO] [stdout]   21:     0x6436c1fde367 - wargames_tui[3e45fda4fd0cc5e6]::settings::tests::settings_path_resolves_under_home_config::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/wargames-tui/src/settings.rs:269:50
[INFO] [stdout]   22:     0x6436c1f9a9d6 - <wargames_tui[3e45fda4fd0cc5e6]::settings::tests::settings_path_resolves_under_home_config::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6436c24aeb8b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6436c24aeb8b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x6436c24bc405 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x6436c24bc405 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x6436c24bc405 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x6436c24bc405 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x6436c24bc405 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x6436c24bc405 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x6436c24bc405 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x6436c24b5d14 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x6436c24b5d14 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x6436c24bf482 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x6436c24bf482 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x6436c24bf482 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x6436c24bf482 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x6436c24bf482 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x6436c24bf482 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x6436c24bf482 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x6436c26ba19f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   42:     0x6436c26ba19f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7bd8d8509aa4 - <unknown>
[INFO] [stdout]   44:     0x7bd8d8596a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     settings::tests::save_and_reload_round_trip
[INFO] [stdout]     settings::tests::save_rejects_unknown_slug_only_by_silently_accepting_it
[INFO] [stdout]     settings::tests::settings_path_resolves_under_home_config
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 233 passed; 3 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.89s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p wargames-tui --lib`
[INFO] running `Command { std: "docker" "inspect" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261", kill_on_drop: false }`
[INFO] [stdout] 4e60be49f6e96778df202693b714e35e580e5bc5b4433be4a46bf3e070992261
