[INFO] fetching crate saints-mile 1.0.2...
[INFO] testing saints-mile-1.0.2 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate saints-mile 1.0.2 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate saints-mile 1.0.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate saints-mile 1.0.2
[INFO] tweaked toml for crates.io crate saints-mile 1.0.2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate saints-mile 1.0.2 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate saints-mile 1.0.2 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dd2960dc302a41ea33f05b0da16e0b0e50c07561151764d794670791edca6e77
[INFO] running `Command { std: "docker" "start" "-a" "dd2960dc302a41ea33f05b0da16e0b0e50c07561151764d794670791edca6e77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dd2960dc302a41ea33f05b0da16e0b0e50c07561151764d794670791edca6e77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd2960dc302a41ea33f05b0da16e0b0e50c07561151764d794670791edca6e77", kill_on_drop: false }`
[INFO] [stdout] dd2960dc302a41ea33f05b0da16e0b0e50c07561151764d794670791edca6e77
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c311da94fe018dc8e81c52e528a74b00efa30c60abecb7128a7eecc3cccb9c2a
[INFO] running `Command { std: "docker" "start" "-a" "c311da94fe018dc8e81c52e528a74b00efa30c60abecb7128a7eecc3cccb9c2a", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling ron v0.8.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling saints-mile v1.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/combat/crowd.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/combat/reckoning.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]  --> src/state/evidence.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::argument`
[INFO] [stdout]   --> src/content/ropehouse_blood.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::state::argument;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::types::*`
[INFO] [stdout]  --> src/content/long_wire.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::combat::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::split_party`
[INFO] [stdout]  --> src/content/long_wire.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::combat::split_party;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::types::*`
[INFO] [stdout]  --> src/content/saints_mile_again.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::combat::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::store::StateStore`
[INFO] [stdout]  --> src/dev/quickstart.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::state::store::StateStore;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::types::GameState`
[INFO] [stdout]   --> src/dev/fixtures.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::state::types::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncounterPhase`
[INFO] [stdout]  --> src/ui/screens/standoff.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table`
[INFO] [stdout]  --> src/ui/screens/combat.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stdout]   |                                        ^^^^^                             ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Gauge`
[INFO] [stdout]  --> src/ui/screens/escort.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Gauge`
[INFO] [stdout]  --> src/ui/screens/crowd.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table`
[INFO] [stdout]  --> src/ui/screens/transmission.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stdout]   |                                        ^^^^  ^^^^^^^^             ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActionResult` and `EncounterPhase`
[INFO] [stdout]   --> src/ui/mod.rs:17:45
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SkillLine`
[INFO] [stdout]   --> src/ui/mod.rs:18:56
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine};
[INFO] [stdout]    |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/scene/runner.rs:237:55
[INFO] [stdout]     |
[INFO] [stdout] 237 |                     Condition::Reputation { axis, op, threshold } => {
[INFO] [stdout]     |                                                       ^^^^^^^^^ help: try ignoring the field: `threshold: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `any_killed`
[INFO] [stdout]     --> src/combat/engine.rs:1164:17
[INFO] [stdout]      |
[INFO] [stdout] 1164 |             let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/ui/input.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hp_text`
[INFO] [stdout]    --> src/ui/screens/combat.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let hp_text = format!(" HP {}/{}  ", c.hp, c.max_hp);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/ui/screens/transmission.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ui: &TransmissionUi,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/ui/mod.rs:780:47
[INFO] [stdout]     |
[INFO] [stdout] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction {
[INFO] [stdout]     |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actor_id`
[INFO] [stdout]    --> src/ui/mod.rs:795:50
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool {
[INFO] [stdout]     |                                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.05s
[INFO] running `Command { std: "docker" "inspect" "c311da94fe018dc8e81c52e528a74b00efa30c60abecb7128a7eecc3cccb9c2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c311da94fe018dc8e81c52e528a74b00efa30c60abecb7128a7eecc3cccb9c2a", kill_on_drop: false }`
[INFO] [stdout] c311da94fe018dc8e81c52e528a74b00efa30c60abecb7128a7eecc3cccb9c2a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9ea91011a1499b58a211f8446eabe43c4d696757434e8e3ce0deca8ef463cbc1
[INFO] running `Command { std: "docker" "start" "-a" "9ea91011a1499b58a211f8446eabe43c4d696757434e8e3ce0deca8ef463cbc1", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.4.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling saints-mile v1.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/combat/crowd.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/combat/reckoning.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]  --> src/state/evidence.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::argument`
[INFO] [stdout]   --> src/content/ropehouse_blood.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::state::argument;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::types::*`
[INFO] [stdout]  --> src/content/long_wire.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::combat::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::split_party`
[INFO] [stdout]  --> src/content/long_wire.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::combat::split_party;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::types::*`
[INFO] [stdout]  --> src/content/saints_mile_again.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::combat::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::store::StateStore`
[INFO] [stdout]  --> src/dev/quickstart.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::state::store::StateStore;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::types::GameState`
[INFO] [stdout]   --> src/dev/fixtures.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::state::types::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncounterPhase`
[INFO] [stdout]  --> src/ui/screens/standoff.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table`
[INFO] [stdout]  --> src/ui/screens/combat.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stdout]   |                                        ^^^^^                             ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Gauge`
[INFO] [stdout]  --> src/ui/screens/escort.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Gauge`
[INFO] [stdout]  --> src/ui/screens/crowd.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table`
[INFO] [stdout]  --> src/ui/screens/transmission.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stdout]   |                                        ^^^^  ^^^^^^^^             ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActionResult` and `EncounterPhase`
[INFO] [stdout]   --> src/ui/mod.rs:17:45
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SkillLine`
[INFO] [stdout]   --> src/ui/mod.rs:18:56
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine};
[INFO] [stdout]    |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]    --> src/scene/runner.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 307 |     use crate::types::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/combat/crowd.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]   --> src/combat/reckoning.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::types::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]  --> src/state/evidence.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::argument`
[INFO] [stdout]   --> src/content/ropehouse_blood.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::state::argument;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::types::*`
[INFO] [stdout]  --> src/content/long_wire.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::combat::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::split_party`
[INFO] [stdout]  --> src/content/long_wire.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::combat::split_party;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::combat::types::*`
[INFO] [stdout]  --> src/content/saints_mile_again.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::combat::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::store::StateStore`
[INFO] [stdout]  --> src/dev/quickstart.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::state::store::StateStore;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::types::GameState`
[INFO] [stdout]   --> src/dev/fixtures.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::state::types::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncounterPhase`
[INFO] [stdout]  --> src/ui/screens/standoff.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table`
[INFO] [stdout]  --> src/ui/screens/combat.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stdout]   |                                        ^^^^^                             ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Gauge`
[INFO] [stdout]  --> src/ui/screens/escort.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Gauge`
[INFO] [stdout]  --> src/ui/screens/crowd.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table`
[INFO] [stdout]  --> src/ui/screens/transmission.rs:8:40
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stdout]   |                                        ^^^^  ^^^^^^^^             ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActionResult` and `EncounterPhase`
[INFO] [stdout]   --> src/ui/mod.rs:17:45
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SkillLine`
[INFO] [stdout]   --> src/ui/mod.rs:18:56
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine};
[INFO] [stdout]    |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/scene/runner.rs:237:55
[INFO] [stdout]     |
[INFO] [stdout] 237 |                     Condition::Reputation { axis, op, threshold } => {
[INFO] [stdout]     |                                                       ^^^^^^^^^ help: try ignoring the field: `threshold: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `any_killed`
[INFO] [stdout]     --> src/combat/engine.rs:1164:17
[INFO] [stdout]      |
[INFO] [stdout] 1164 |             let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/scene/runner.rs:237:55
[INFO] [stdout]     |
[INFO] [stdout] 237 |                     Condition::Reputation { axis, op, threshold } => {
[INFO] [stdout]     |                                                       ^^^^^^^^^ help: try ignoring the field: `threshold: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `any_killed`
[INFO] [stdout]     --> src/combat/engine.rs:1164:17
[INFO] [stdout]      |
[INFO] [stdout] 1164 |             let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hp_before`
[INFO] [stdout]     --> src/combat/engine.rs:2808:13
[INFO] [stdout]      |
[INFO] [stdout] 2808 |         let hp_before = state.enemies[0].hp;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]     --> src/combat/engine.rs:3339:13
[INFO] [stdout]      |
[INFO] [stdout] 3339 |         let events = state.fear_cascade("galen");
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/ui/input.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hp_text`
[INFO] [stdout]    --> src/ui/screens/combat.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let hp_text = format!(" HP {}/{}  ", c.hp, c.max_hp);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/ui/screens/transmission.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ui: &TransmissionUi,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/ui/mod.rs:780:47
[INFO] [stdout]     |
[INFO] [stdout] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction {
[INFO] [stdout]     |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actor_id`
[INFO] [stdout]    --> src/ui/mod.rs:795:50
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool {
[INFO] [stdout]     |                                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/ui/input.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hp_text`
[INFO] [stdout]    --> src/ui/screens/combat.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let hp_text = format!(" HP {}/{}  ", c.hp, c.max_hp);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/ui/screens/transmission.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     ui: &TransmissionUi,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/ui/mod.rs:780:47
[INFO] [stdout]     |
[INFO] [stdout] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction {
[INFO] [stdout]     |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actor_id`
[INFO] [stdout]    --> src/ui/mod.rs:795:50
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool {
[INFO] [stdout]     |                                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condition` and `StateEffect`
[INFO] [stdout]  --> tests/pressure_encounters.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use saints_mile::scene::types::{Condition, StateEffect};
[INFO] [stdout]   |                                 ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scene` is never used
[INFO] [stdout]   --> tests/common/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run_scene(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scene` is never used
[INFO] [stdout]   --> tests/common/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run_scene(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `saints_mile::state::types::GameState`
[INFO] [stdout]   --> tests/feature_wave4.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use saints_mile::state::types::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `saints_mile::scene::types::StateEffect`
[INFO] [stdout]   --> tests/feature_wave4.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use saints_mile::scene::types::StateEffect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stance`
[INFO] [stdout]    --> tests/ropehouse_blood.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |     for (i, stance) in stances.iter().enumerate() {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stance`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `saints_mile::scene::types::SceneTransition`
[INFO] [stdout]  --> tests/adult_act_end.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use saints_mile::scene::types::SceneTransition;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `resolved` is never read
[INFO] [stdout]   --> tests/saints_mile_convoy.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 resolved = true;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thug_hp_start`
[INFO] [stdout]    --> tests/feature_wave4.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let thug_hp_start = state.enemies[0].hp;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thug_hp_mid`
[INFO] [stdout]    --> tests/feature_wave4.rs:479:9
[INFO] [stdout]     |
[INFO] [stdout] 479 |     let thug_hp_mid = state.enemies[0].hp;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_mid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scene` is never used
[INFO] [stdout]   --> tests/common/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run_scene(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scene` is never used
[INFO] [stdout]   --> tests/common/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run_scene(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scene` is never used
[INFO] [stdout]   --> tests/common/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run_scene(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `saints_mile::state::types::GameState`
[INFO] [stdout]   --> tests/full_playthrough.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use saints_mile::state::types::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `builders::*`
[INFO] [stdout]   --> tests/cedar_wake.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | use saints_mile::content::{cedar_wake, builders::*};
[INFO] [stdout]    |                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_scene` is never used
[INFO] [stdout]   --> tests/common/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn run_scene(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]    --> tests/cedar_wake.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 254 |     let dir = TempDir::new().unwrap();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nerve`
[INFO] [stdout]    --> tests/cedar_wake.rs:366:20
[INFO] [stdout]     |
[INFO] [stdout] 366 |     let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) =
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_nerve`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ammo`
[INFO] [stdout]    --> tests/cedar_wake.rs:366:27
[INFO] [stdout]     |
[INFO] [stdout] 366 |     let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) =
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_ammo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adult_ammo`
[INFO] [stdout]    --> tests/cedar_wake.rs:393:29
[INFO] [stdout]     |
[INFO] [stdout] 393 |     let (_, _, adult_hp, _, adult_ammo, adult_speed, adult_accuracy, adult_damage, adult_skills, adult_duos, _) =
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adult_ammo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgePhase`
[INFO] [stdout]  --> tests/morrow_crossing.rs:7:54
[INFO] [stdout]   |
[INFO] [stdout] 7 |     CharacterId, SkillId, FlagValue, ReputationAxis, AgePhase,
[INFO] [stdout]   |                                                      ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_TOM` is never used
[INFO] [stdout]   --> tests/common/mod.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_NELLA` is never used
[INFO] [stdout]   --> tests/common/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELAY_PAPERS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stdout]   --> tests/common/mod.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_combat` is never used
[INFO] [stdout]   --> tests/common/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn run_combat(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 33.97s
[INFO] running `Command { std: "docker" "inspect" "9ea91011a1499b58a211f8446eabe43c4d696757434e8e3ce0deca8ef463cbc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ea91011a1499b58a211f8446eabe43c4d696757434e8e3ce0deca8ef463cbc1", kill_on_drop: false }`
[INFO] [stdout] 9ea91011a1499b58a211f8446eabe43c4d696757434e8e3ce0deca8ef463cbc1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 48db119bfeef5b1e09d349dc0d017ee957c139e780b878a6407ca6a552c98a2a
[INFO] running `Command { std: "docker" "start" "-a" "48db119bfeef5b1e09d349dc0d017ee957c139e780b878a6407ca6a552c98a2a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::types::*`
[INFO] [stderr]   --> src/combat/crowd.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::types::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::*`
[INFO] [stderr]   --> src/combat/reckoning.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::types::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::*`
[INFO] [stderr]  --> src/state/evidence.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::state::argument`
[INFO] [stderr]   --> src/content/ropehouse_blood.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::state::argument;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::combat::types::*`
[INFO] [stderr]  --> src/content/long_wire.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::combat::types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::combat::split_party`
[INFO] [stderr]  --> src/content/long_wire.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::combat::split_party;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::combat::types::*`
[INFO] [stderr]  --> src/content/saints_mile_again.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::combat::types::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::state::store::StateStore`
[INFO] [stderr]  --> src/dev/quickstart.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::state::store::StateStore;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::state::types::GameState`
[INFO] [stderr]   --> src/dev/fixtures.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::state::types::GameState;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncounterPhase`
[INFO] [stderr]  --> src/ui/screens/standoff.rs:9:45
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::combat::engine::{EncounterState, EncounterPhase, LiveCombatant};
[INFO] [stderr]   |                                             ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Cell`, `Gauge`, `Row`, and `Table`
[INFO] [stderr]  --> src/ui/screens/combat.rs:9:40
[INFO] [stderr]   |
[INFO] [stderr] 9 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stderr]   |                                        ^^^^^                             ^^^^^  ^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Gauge`
[INFO] [stderr]  --> src/ui/screens/escort.rs:8:40
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stderr]   |                                        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Gauge`
[INFO] [stderr]  --> src/ui/screens/crowd.rs:8:40
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ratatui::widgets::{Block, Borders, Gauge, List, ListItem, Paragraph};
[INFO] [stderr]   |                                        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Cell`, `ListItem`, `List`, `Row`, and `Table`
[INFO] [stderr]  --> src/ui/screens/transmission.rs:8:40
[INFO] [stderr]   |
[INFO] [stderr] 8 | use ratatui::widgets::{Block, Borders, List, ListItem, Paragraph, Table, Row, Cell};
[INFO] [stderr]   |                                        ^^^^  ^^^^^^^^             ^^^^^  ^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ActionResult` and `EncounterPhase`
[INFO] [stderr]   --> src/ui/mod.rs:17:45
[INFO] [stderr]    |
[INFO] [stderr] 17 | use crate::combat::engine::{EncounterState, EncounterPhase, CombatSide, ActionResult};
[INFO] [stderr]    |                                             ^^^^^^^^^^^^^^              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SkillLine`
[INFO] [stderr]   --> src/ui/mod.rs:18:56
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::combat::types::{Encounter, StandoffPosture, SkillLine};
[INFO] [stderr]    |                                                        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `threshold`
[INFO] [stderr]    --> src/scene/runner.rs:237:55
[INFO] [stderr]     |
[INFO] [stderr] 237 |                     Condition::Reputation { axis, op, threshold } => {
[INFO] [stderr]     |                                                       ^^^^^^^^^ help: try ignoring the field: `threshold: _`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `any_killed`
[INFO] [stderr]     --> src/combat/engine.rs:1164:17
[INFO] [stderr]      |
[INFO] [stderr] 1164 |             let any_killed = self.enemies.iter().any(|e| e.down); // hp = 0
[INFO] [stderr]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_killed`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `app`
[INFO] [stderr]    --> src/ui/input.rs:119:24
[INFO] [stderr]     |
[INFO] [stderr] 119 | fn handle_standoff_key(app: &mut App, key: KeyEvent) -> InputResult {
[INFO] [stderr]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hp_text`
[INFO] [stderr]    --> src/ui/screens/combat.rs:267:9
[INFO] [stderr]     |
[INFO] [stderr] 267 |     let hp_text = format!(" HP {}/{}  ", c.hp, c.max_hp);
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_text`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ui`
[INFO] [stderr]    --> src/ui/screens/transmission.rs:102:5
[INFO] [stderr]     |
[INFO] [stderr] 102 |     ui: &TransmissionUi,
[INFO] [stderr]     |     ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `entry`
[INFO] [stderr]    --> src/ui/mod.rs:780:47
[INFO] [stderr]     |
[INFO] [stderr] 780 | fn build_enemy_action(state: &EncounterState, entry: &crate::combat::engine::TurnEntry) -> crate::combat::engine::CombatAction {
[INFO] [stderr]     |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `actor_id`
[INFO] [stderr]    --> src/ui/mod.rs:795:50
[INFO] [stderr]     |
[INFO] [stderr] 795 | fn is_duo_partner_active(state: &EncounterState, actor_id: &str, duo_id: &str) -> bool {
[INFO] [stderr]     |                                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actor_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::*`
[INFO] [stderr]    --> src/scene/runner.rs:307:9
[INFO] [stderr]     |
[INFO] [stderr] 307 |     use crate::types::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::*`
[INFO] [stderr]   --> src/combat/crowd.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use crate::types::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hp_before`
[INFO] [stderr]     --> src/combat/engine.rs:2808:13
[INFO] [stderr]      |
[INFO] [stderr] 2808 |         let hp_before = state.enemies[0].hp;
[INFO] [stderr]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hp_before`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `events`
[INFO] [stderr]     --> src/combat/engine.rs:3339:13
[INFO] [stderr]      |
[INFO] [stderr] 3339 |         let events = state.fear_cascade("galen");
[INFO] [stderr]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stderr] 
[INFO] [stderr] warning: `saints-mile` (lib) generated 23 warnings (run `cargo fix --lib -p saints-mile` to apply 23 suggestions)
[INFO] [stderr] warning: `saints-mile` (lib test) generated 26 warnings (22 duplicates) (run `cargo fix --lib -p saints-mile --tests` to apply 4 suggestions)
[INFO] [stderr] warning: constant `RELAY_TOM` is never used
[INFO] [stderr]   --> tests/common/mod.rs:17:11
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub const RELAY_TOM: &str = "tom";
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RELAY_NELLA` is never used
[INFO] [stderr]   --> tests/common/mod.rs:18:11
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub const RELAY_NELLA: &str = "nella";
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RELAY_PAPERS` is never used
[INFO] [stderr]   --> tests/common/mod.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const RELAY_PAPERS: &str = "papers";
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `resolved` is never read
[INFO] [stderr]   --> tests/saints_mile_convoy.rs:71:17
[INFO] [stderr]    |
[INFO] [stderr] 71 |                 resolved = true;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_COMBAT_ROUNDS` is never used
[INFO] [stderr]   --> tests/common/mod.rs:46:11
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub const MAX_COMBAT_ROUNDS: usize = 30;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_combat` is never used
[INFO] [stderr]   --> tests/common/mod.rs:53:8
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub fn run_combat(
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_scene` is never used
[INFO] [stderr]   --> tests/common/mod.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn run_scene(
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `saints_mile::scene::types::SceneTransition`
[INFO] [stderr]  --> tests/adult_act_end.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use saints_mile::scene::types::SceneTransition;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `saints-mile` (test "fuse_country") generated 3 warnings
[INFO] [stderr] warning: `saints-mile` (test "saints_mile_convoy") generated 1 warning
[INFO] [stderr] warning: `saints-mile` (test "prologue") generated 5 warnings (3 duplicates)
[INFO] [stderr] warning: `saints-mile` (test "scene_system") generated 6 warnings (5 duplicates)
[INFO] [stderr] warning: `saints-mile` (test "adult_act_end") generated 1 warning (run `cargo fix --test "adult_act_end" -p saints-mile` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `builders::*`
[INFO] [stderr]   --> tests/cedar_wake.rs:12:40
[INFO] [stderr]    |
[INFO] [stderr] 12 | use saints_mile::content::{cedar_wake, builders::*};
[INFO] [stderr]    |                                        ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dir`
[INFO] [stderr]    --> tests/cedar_wake.rs:254:9
[INFO] [stderr]     |
[INFO] [stderr] 254 |     let dir = TempDir::new().unwrap();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nerve`
[INFO] [stderr]    --> tests/cedar_wake.rs:366:20
[INFO] [stderr]     |
[INFO] [stderr] 366 |     let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) =
[INFO] [stderr]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_nerve`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ammo`
[INFO] [stderr]    --> tests/cedar_wake.rs:366:27
[INFO] [stderr]     |
[INFO] [stderr] 366 |     let (_, _, hp, nerve, ammo, speed, accuracy, damage, skills, duo_techs, _) =
[INFO] [stderr]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_ammo`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `adult_ammo`
[INFO] [stderr]    --> tests/cedar_wake.rs:393:29
[INFO] [stderr]     |
[INFO] [stderr] 393 |     let (_, _, adult_hp, _, adult_ammo, adult_speed, adult_accuracy, adult_damage, adult_skills, adult_duos, _) =
[INFO] [stderr]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adult_ammo`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AgePhase`
[INFO] [stderr]  --> tests/morrow_crossing.rs:7:54
[INFO] [stderr]   |
[INFO] [stderr] 7 |     CharacterId, SkillId, FlagValue, ReputationAxis, AgePhase,
[INFO] [stderr]   |                                                      ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stance`
[INFO] [stderr]    --> tests/ropehouse_blood.rs:276:13
[INFO] [stderr]     |
[INFO] [stderr] 276 |     for (i, stance) in stances.iter().enumerate() {
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stance`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Condition` and `StateEffect`
[INFO] [stderr]  --> tests/pressure_encounters.rs:5:33
[INFO] [stderr]   |
[INFO] [stderr] 5 | use saints_mile::scene::types::{Condition, StateEffect};
[INFO] [stderr]   |                                 ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `saints_mile::state::types::GameState`
[INFO] [stderr]   --> tests/full_playthrough.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use saints_mile::state::types::GameState;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `saints-mile` (test "feature_wave2") generated 6 warnings (6 duplicates)
[INFO] [stderr] warning: `saints-mile` (test "cedar_wake") generated 5 warnings (run `cargo fix --test "cedar_wake" -p saints-mile` to apply 5 suggestions)
[INFO] [stderr] warning: `saints-mile` (test "morrow_crossing") generated 1 warning (run `cargo fix --test "morrow_crossing" -p saints-mile` to apply 1 suggestion)
[INFO] [stderr] warning: `saints-mile` (test "ropehouse_blood") generated 1 warning (run `cargo fix --test "ropehouse_blood" -p saints-mile` to apply 1 suggestion)
[INFO] [stderr] warning: `saints-mile` (test "pressure_encounters") generated 1 warning (run `cargo fix --test "pressure_encounters" -p saints-mile` to apply 1 suggestion)
[INFO] [stderr] warning: `saints-mile` (test "feature_wave1") generated 6 warnings (6 duplicates)
[INFO] [stderr] warning: `saints-mile` (test "full_playthrough") generated 7 warnings (6 duplicates) (run `cargo fix --test "full_playthrough" -p saints-mile` to apply 1 suggestion)
[INFO] [stderr] warning: `saints-mile` (test "feature_wave3") generated 6 warnings (6 duplicates)
[INFO] [stderr] warning: unused import: `saints_mile::state::types::GameState`
[INFO] [stderr]   --> tests/feature_wave4.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use saints_mile::state::types::GameState;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `saints_mile::scene::types::StateEffect`
[INFO] [stderr]   --> tests/feature_wave4.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use saints_mile::scene::types::StateEffect;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thug_hp_start`
[INFO] [stderr]    --> tests/feature_wave4.rs:469:9
[INFO] [stderr]     |
[INFO] [stderr] 469 |     let thug_hp_start = state.enemies[0].hp;
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_start`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `thug_hp_mid`
[INFO] [stderr]    --> tests/feature_wave4.rs:479:9
[INFO] [stderr]     |
[INFO] [stderr] 479 |     let thug_hp_mid = state.enemies[0].hp;
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thug_hp_mid`
[INFO] [stderr] 
[INFO] [stderr] warning: `saints-mile` (test "feature_wave4") generated 10 warnings (6 duplicates) (run `cargo fix --test "feature_wave4" -p saints-mile` to apply 4 suggestions)
[INFO] [stderr] warning: `saints-mile` (test "dust_revival") generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/saints_mile-54660b52287d1b4b)
[INFO] [stdout] 
[INFO] [stdout] running 158 tests
[INFO] [stdout] test combat::convoy::tests::day_night_progression ... ok
[INFO] [stdout] test combat::convoy::tests::asset_damage_and_destruction ... ok
[INFO] [stdout] test combat::convoy::tests::member_death_and_finalize ... ok
[INFO] [stdout] test combat::crowd::tests::crowd_breaks_when_surge_reaches_zero ... ok
[INFO] [stdout] test combat::crowd::tests::crowd_disperses_when_nerve_high ... ok
[INFO] [stdout] test combat::crowd::tests::different_actions_affect_crowd_differently ... ok
[INFO] [stdout] test combat::crowd::tests::physical_hold_delays_surge ... ok
[INFO] [stdout] test combat::crowd::tests::shock_calms_briefly_but_worsens_momentum ... ok
[INFO] [stdout] test combat::crowd::tests::broad_calm_restores_nerve ... ok
[INFO] [stdout] test combat::engine::tests::action_execution_uses_ammo ... ok
[INFO] [stdout] test combat::engine::tests::age_variant_affects_damage_in_combat ... ok
[INFO] [stdout] test combat::engine::tests::age_variant_youth_faster_less_accurate ... ok
[INFO] [stdout] test combat::engine::tests::active_objectives_resolve_on_victory ... ok
[INFO] [stdout] test combat::engine::tests::cooldown_ticks_down_each_round ... ok
[INFO] [stdout] test combat::engine::tests::duo_tech_execution ... ok
[INFO] [stdout] test combat::engine::tests::active_objectives_fail_on_defeat ... ok
[INFO] [stdout] test combat::engine::tests::cover_reduces_damage ... ok
[INFO] [stdout] test combat::engine::tests::destructible_cover_breaks_under_damage ... ok
[INFO] [stdout] test combat::engine::tests::combo_first_action_no_bonus ... ok
[INFO] [stdout] test combat::engine::tests::combo_third_same_action_twenty_percent ... ok
[INFO] [stdout] test combat::engine::tests::active_objectives_fail_on_flee ... ok
[INFO] [stdout] test combat::engine::tests::combo_resets_on_different_skill_line ... ok
[INFO] [stdout] test combat::engine::tests::encounter_creates_with_4_slots ... ok
[INFO] [stdout] test combat::engine::tests::duo_tech_fails_when_partner_down ... ok
[INFO] [stdout] test combat::engine::tests::duo_tech_uses_registry_damage ... ok
[INFO] [stdout] test combat::engine::tests::fear_cascade_can_chain ... ok
[INFO] [stdout] test combat::engine::tests::fear_cascade_damages_allies_nerve ... ok
[INFO] [stdout] test combat::engine::tests::fear_cascade_on_enemy_side ... ok
[INFO] [stdout] test combat::engine::tests::fear_cascade_skips_already_panicked ... ok
[INFO] [stdout] test combat::engine::tests::flee_blocked_in_boss_encounter ... ok
[INFO] [stdout] test combat::crowd::tests::crowd_breaks_when_nerve_zero ... ok
[INFO] [stdout] test combat::engine::tests::flee_succeeds_when_party_faster ... ok
[INFO] [stdout] test combat::engine::tests::force_out_of_cover_action ... ok
[INFO] [stdout] test combat::engine::tests::force_out_of_cover_noop_on_open_target ... ok
[INFO] [stdout] test combat::engine::tests::full_combat_round_flows ... ok
[INFO] [stdout] test combat::engine::tests::indestructible_cover_survives ... ok
[INFO] [stdout] test combat::engine::tests::inspired_boosts_damage ... ok
[INFO] [stdout] test combat::engine::tests::named_npc_ada_heals_critical_ally ... ok
[INFO] [stdout] test combat::engine::tests::named_npc_eli_uses_fast_talk ... ok
[INFO] [stdout] test combat::engine::tests::nerve_break_causes_panic ... ok
[INFO] [stdout] test combat::engine::tests::npc_allies_use_character_specific_stats ... ok
[INFO] [stdout] test combat::engine::tests::npc_nervous_takes_cover_when_hurt ... ok
[INFO] [stdout] test combat::engine::tests::npc_professional_attacks_highest_threat ... ok
[INFO] [stdout] test combat::engine::tests::npc_protective_heals_injured_ally ... ok
[INFO] [stdout] test combat::engine::tests::panicked_enemies_excluded_from_turn_queue ... ok
[INFO] [stdout] test combat::engine::tests::partial_cover_reduces_damage_25_percent ... ok
[INFO] [stdout] test combat::crowd::tests::targeted_nerve_breaks_ringleader ... ok
[INFO] [stdout] test combat::convoy::tests::convoy_creates_with_full_cast ... ok
[INFO] [stdout] test combat::engine::tests::reload_at_full_ammo_does_nothing ... ok
[INFO] [stdout] test combat::engine::tests::objective_resolution ... ok
[INFO] [stdout] test combat::engine::tests::reload_caps_at_max_ammo ... ok
[INFO] [stdout] test combat::engine::tests::reload_restores_partial_ammo ... ok
[INFO] [stdout] test combat::engine::tests::scavenge_ammo_from_defeated_enemies ... ok
[INFO] [stdout] test combat::engine::tests::skill_cooldown_blocks_reuse ... ok
[INFO] [stdout] test combat::engine::tests::standoff_early_draw ... ok
[INFO] [stdout] test combat::engine::tests::skill_registry_overrides_damage_and_accuracy ... ok
[INFO] [stdout] test combat::engine::tests::status_effects_expire_after_ticking ... ok
[INFO] [stdout] test combat::engine::tests::take_cover_falls_back_to_partial_when_all_occupied ... ok
[INFO] [stdout] test combat::engine::tests::terrain_burning_applies_damage ... ok
[INFO] [stdout] test combat::engine::tests::terrain_flooded_applies_nerve_penalty ... ok
[INFO] [stdout] test combat::engine::tests::terrain_multiple_modifiers_stack ... ok
[INFO] [stdout] test combat::environment::tests::chain_reaction_accelerates_other_charges ... ok
[INFO] [stdout] test combat::environment::tests::fuse_ticks_and_detonates ... ok
[INFO] [stdout] test combat::engine::tests::turn_queue_speed_ordered ... ok
[INFO] [stdout] test combat::environment::tests::structural_charge_collapses_trestle ... ok
[INFO] [stdout] test combat::environment::tests::physical_disarm ... ok
[INFO] [stdout] test combat::environment::tests::cover_destruction ... ok
[INFO] [stdout] test combat::reckoning::tests::ch9_results_change_opening ... ok
[INFO] [stdout] test combat::engine::tests::stunned_skips_turn ... ok
[INFO] [stdout] test combat::reckoning::tests::eli_act_is_the_hinge ... ok
[INFO] [stdout] test combat::engine::tests::suppressed_reduces_accuracy ... ok
[INFO] [stdout] test combat::reckoning::tests::opposition_degrades_all_bars ... ok
[INFO] [stdout] test combat::engine::tests::take_cover_assigns_terrain_element ... ok
[INFO] [stdout] test combat::reckoning::tests::reckoning_state_tracks_five_bars ... ok
[INFO] [stdout] test combat::engine::tests::terrain_no_modifiers_no_effects ... ok
[INFO] [stdout] test combat::reckoning::tests::sequence_matters ... ok
[INFO] [stdout] test combat::wounds::tests::recover_wound_out_of_bounds ... ok
[INFO] [stdout] test combat::wounds::tests::recover_wound_untreatable ... ok
[INFO] [stdout] test combat::wounds::tests::recover_wound_with_ada ... ok
[INFO] [stdout] test combat::wounds::tests::recover_wound_without_ada_fails ... ok
[INFO] [stdout] test combat::wounds::tests::rest_recovery_empty_wounds ... ok
[INFO] [stdout] test combat::wounds::tests::rest_recovery_heals_oldest_minor ... ok
[INFO] [stdout] test combat::wounds::tests::rest_recovery_skips_major_wounds ... ok
[INFO] [stdout] test pressure::engine::tests::actions_blocked_after_resolution ... ok
[INFO] [stdout] test pressure::engine::tests::available_actions_per_character ... ok
[INFO] [stdout] test pressure::engine::tests::bar_summary_only_shows_visible ... ok
[INFO] [stdout] test pressure::engine::tests::cargo_damage_and_loss ... ok
[INFO] [stdout] test pressure::engine::tests::full_pressure_round_flow ... ok
[INFO] [stdout] test pressure::engine::tests::negative_delta_reduces_bar ... ok
[INFO] [stdout] test pressure::engine::tests::pressure_action_modifies_bar ... ok
[INFO] [stdout] test pressure::engine::tests::pressure_bar_clamps_to_max ... ok
[INFO] [stdout] test pressure::engine::tests::pressure_engine_creates_from_encounter ... ok
[INFO] [stdout] test pressure::engine::tests::pressure_failure_triggers_on_bar_threshold ... ok
[INFO] [stdout] test pressure::engine::tests::pressure_success_when_all_bars_above_fail ... ok
[INFO] [stdout] test scene::runner::tests::describe_lock_reputation_eq ... ok
[INFO] [stdout] test scene::runner::tests::evaluate_choices_available_and_locked ... ok
[INFO] [stdout] test scene::runner::tests::describe_lock_reputation_neq ... ok
[INFO] [stdout] test scene::runner::tests::filter_lines_with_condition_met ... ok
[INFO] [stdout] test scene::runner::tests::execute_choice_applies_effects ... ok
[INFO] [stdout] test scene::runner::tests::memory_callbacks_collected ... ok
[INFO] [stdout] test scene::runner::tests::filter_lines_basic ... ok
[INFO] [stdout] test scene::runner::tests::scene_effects_applied ... ok
[INFO] [stdout] test state::progression::tests::late_game_progression ... ok
[INFO] [stdout] test scene::runner::tests::scene_gated_by_conditions ... ok
[INFO] [stdout] test state::progression::tests::midgame_cannot_go_back_requirement ... ok
[INFO] [stdout] test state::progression::tests::can_enter_next_chapter_from_current ... ok
[INFO] [stdout] test state::progression::tests::can_reenter_current_chapter ... ok
[INFO] [stdout] test state::progression::tests::prologue_always_reachable ... ok
[INFO] [stdout] test state::progression::tests::unknown_chapter_blocked ... ok
[INFO] [stdout] test state::progression::tests::numeric_chapter_ids_work ... ok
[INFO] [stdout] test state::progression::tests::cannot_skip_to_endgame ... ok
[INFO] [stdout] test scene::runner::tests::morrow_crossing_poster_shape ... ok
[INFO] [stdout] test state::settings::tests::apply_text_speed_crisis_stays_zero ... ok
[INFO] [stdout] test state::settings::tests::apply_text_speed_minimum_one ... ok
[INFO] [stdout] test state::settings::tests::apply_text_speed_multiplier ... ok
[INFO] [stdout] test state::settings::tests::default_settings ... ok
[INFO] [stdout] test state::settings::tests::load_missing_returns_default ... ok
[INFO] [stdout] test state::settings::tests::validate_clamps_high ... ok
[INFO] [stdout] test state::settings::tests::load_corrupt_returns_default ... ok
[INFO] [stdout] test state::settings::tests::round_trip ... ok
[INFO] [stdout] test state::settings::tests::validate_clamps_low ... ok
[INFO] [stdout] test state::store::tests::complex_effect_sequence ... ok
[INFO] [stdout] test state::store::tests::condition_checking ... ok
[INFO] [stdout] test state::store::tests::auto_save_creates_file ... ok
[INFO] [stdout] test state::store::tests::delete_empty_slot_fails ... ok
[INFO] [stdout] test state::store::tests::delete_save_removes_file ... ok
[INFO] [stdout] test state::store::tests::eli_loyalty_line_grayed_out ... ok
[INFO] [stdout] test scene::runner::tests::prepare_scene_full_pipeline ... ok
[INFO] [stdout] test state::progression::tests::cannot_skip_chapters ... ok
[INFO] [stdout] test combat::engine::tests::bleeding_deals_damage_per_turn ... ok
[INFO] [stdout] test state::progression::tests::full_chapter_order_length ... ok
[INFO] [stdout] test state::store::tests::evidence_integrity_survives ... ok
[INFO] [stdout] test state::store::tests::save_no_leftover_tmp ... ok
[INFO] [stdout] test state::store::tests::hand_injury_persists ... ok
[INFO] [stdout] test state::store::tests::round_trip_new_game ... ok
[INFO] [stdout] test state::store::tests::dead_drop_persists ... ok
[INFO] [stdout] test state::store::tests::witness_state_branching ... ok
[INFO] [stdout] test state::types::tests::available_party_no_departures ... ok
[INFO] [stdout] test state::store::tests::memory_objects_persist ... ok
[INFO] [stdout] test state::types::tests::collect_evidence_deduplicates ... ok
[INFO] [stdout] test state::store::tests::save_creates_backup ... ok
[INFO] [stdout] test state::types::tests::multiple_departures_ch12 ... ok
[INFO] [stdout] test state::types::tests::relay_evidence_nella_branch ... ok
[INFO] [stdout] test state::types::tests::departed_member_excluded ... ok
[INFO] [stdout] test state::types::tests::relay_evidence_papers_branch ... ok
[INFO] [stdout] test state::types::tests::galen_never_departing ... ok
[INFO] [stdout] test state::store::tests::relay_branch_first_class ... ok
[INFO] [stdout] test state::types::tests::relay_evidence_tom_branch ... ok
[INFO] [stdout] test state::types::tests::has_collected_works ... ok
[INFO] [stdout] test state::types::tests::investigation_wired_to_state ... ok
[INFO] [stdout] test state::types::tests::relay_evidence_none_returns_empty ... ok
[INFO] [stdout] test state::store::tests::version_mismatch_fails_cleanly ... ok
[INFO] [stdout] test state::types::tests::returned_member_included ... ok
[INFO] [stdout] test combat::engine::tests::standoff_bait_can_break_target ... ok
[INFO] [stdout] test combat::engine::tests::combo_reset_clears_actor ... ok
[INFO] [stdout] test combat::engine::tests::combo_second_same_action_ten_percent ... ok
[INFO] [stdout] test combat::environment::tests::shoot_fuse_requires_accuracy ... ok
[INFO] [stdout] test scene::runner::tests::evaluate_choices_unlocked_by_skill ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 158 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/saints_mile-862af93afc89c25a)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/adult_act_end.rs (/opt/rustwide/target/debug/deps/adult_act_end-3bd0710289b25461)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test hand_changes_the_menu ... ok
[INFO] [stdout] test hand_injury_is_system_wound ... ok
[INFO] [stdout] test adult_arc_carry_state ... ok
[INFO] [stdout] test eli_campfire_line ... ok
[INFO] [stdout] test dispersal_is_consequence ... ok
[INFO] [stdout] test peak_synthesis_battle ... ok
[INFO] [stdout] test ada_treatment_bridges_identity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/black_willow.rs (/opt/rustwide/target/debug/deps/black_willow-ab2e45f09debbd76)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test adult_galen_feels_different_from_youth ... ok
[INFO] [stdout] test ada_is_not_just_a_healer ... ok
[INFO] [stdout] test wound_persistence_and_triage ... ok
[INFO] [stdout] test care_versus_pursuit_tension ... ok
[INFO] [stdout] test sheriff_trail_integrates_relay_branch ... ok
[INFO] [stdout] test older_galen_feels_transformed ... ok
[INFO] [stdout] test chapter_3_full_path ... ok
[INFO] [stdout] test relay_branch_entry_variants ... ok
[INFO] [stdout] test three_character_party_combat ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/breakwater_junction.rs (/opt/rustwide/target/debug/deps/breakwater_junction-6eef069ebbf69d68)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test nonexistent_scene_returns_none ... ok
[INFO] [stdout] test victory_scene_has_memory_ref_to_ch13 ... ok
[INFO] [stdout] test hand_injury_scene_has_injury_effect ... ok
[INFO] [stdout] test all_scenes_are_available ... ok
[INFO] [stdout] test victory_scene_sets_completion_flags ... ok
[INFO] [stdout] test breakwater_battle_encounter_exists ... ok
[INFO] [stderr]      Running tests/burned_mission.rs (/opt/rustwide/target/debug/deps/burned_mission-214c7b7cac3ffb9a)
[INFO] [stdout] test entry_scene_sets_ch11_started ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test party_is_the_tool ... ok
[INFO] [stdout] test revelation_is_older_not_bigger ... ok
[INFO] [stdout] test bell_remains_unresolved ... ok
[INFO] [stdout] test chapter_8_full_path ... ok
[INFO] [stdout] test lucien_reads_himself_in_the_walls ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cedar_wake.rs (/opt/rustwide/target/debug/deps/cedar_wake-bbcebfb2eac0a540)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test same_skill_different_meaning ... ok
[INFO] [stdout] test chapter_1_alternate_approach ... ok
[INFO] [stdout] test chapter_1_full_path ... ok
[INFO] [stdout] test youth_galen_identity ... ok
[INFO] [stdout] test bitter_cut_tracks_participation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/combat_party_defs.rs (/opt/rustwide/target/debug/deps/combat_party_defs-23c62ca06760bf70)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test ch3_party_has_three_members ... ok
[INFO] [stdout] test galen_ages_gain_skills_lose_speed ... ok
[INFO] [stdout] test galen_older_is_most_accurate_slowest ... ok
[INFO] [stdout] test galen_youth_has_basic_skills ... ok
[INFO] [stdout] test to_combat_tuple_preserves_values ... ok
[INFO] [stdout] test rosa_is_physical_not_fast ... ok
[INFO] [stdout] test ada_is_the_medic ... ok
[INFO] [stdout] test ch4_party_adds_rosa ... ok
[INFO] [stdout] test ch5_roster_exceeds_party_slots ... ok
[INFO] [stdout] test galen_adult_has_duo_techs ... ok
[INFO] [stdout] test ch3_pre_ada_has_two_members ... ok
[INFO] [stderr]      Running tests/combat_wounds.rs (/opt/rustwide/target/debug/deps/combat_wounds-67073aa9fd822f0b)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test gunshot_wound_penalties ... ok
[INFO] [stdout] test triage_empty_wounds_returns_nothing ... ok
[INFO] [stdout] test nerve_shock_targets_nerve ... ok
[INFO] [stdout] test triage_heals_treatable_wounds ... ok
[INFO] [stdout] test thorough_triage_restores_more_costs_more ... ok
[INFO] [stdout] test exhaustion_affects_all_stats ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/content_lookup.rs (/opt/rustwide/target/debug/deps/content_lookup-f295927ccf072e86)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test get_encounter_nonexistent_encounter_id_returns_none ... ok
[INFO] [stdout] test get_scene_valid_lookup_returns_some ... ok
[INFO] [stdout] test get_encounter_valid_lookup_returns_some ... ok
[INFO] [stdout] test get_encounter_nonexistent_chapter_returns_none ... ok
[INFO] [stderr]      Running tests/deadwater_trial.rs (/opt/rustwide/target/debug/deps/deadwater_trial-353187353d7a2997)
[INFO] [stdout] test get_scene_nonexistent_scene_id_returns_none ... ok
[INFO] [stdout] test get_scene_nonexistent_chapter_returns_none ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test ch9_results_change_deadwater ... ok
[INFO] [stdout] test reckoning_is_combat ... ok
[INFO] [stdout] test eli_loyalty_earned_through_deed ... ok
[INFO] [stdout] test eli_line_is_right ... ok
[INFO] [stdout] test three_sequences_three_textures ... ok
[INFO] [stdout] test no_clean_institutional_win ... ok
[INFO] [stdout] test chapter_10_full_path ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/dev_infrastructure.rs (/opt/rustwide/target/debug/deps/dev_infrastructure-1316191f02b6473b)
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test all_jump_points_create_valid_states ... ok
[INFO] [stdout] test event_log_capture_and_export ... ok
[INFO] [stdout] test jump_point_progression ... ok
[INFO] [stdout] test generate_all_fixtures ... ok
[INFO] [stdout] test jump_points_survive_save_round_trip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/dust_revival.rs (/opt/rustwide/target/debug/deps/dust_revival-ffdc3afc8253b497)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test miriam_is_distinct ... ok
[INFO] [stdout] test crowd_nerve_state_after_actions ... ok
[INFO] [stderr]      Running tests/feature_wave1.rs (/opt/rustwide/target/debug/deps/feature_wave1-e3edd930b5607a3d)
[INFO] [stdout] test crowd_fight_feels_unique ... ok
[INFO] [stdout] test ringleader_presence_affects_crowd_mood ... ok
[INFO] [stdout] test miriam_changes_the_room ... ok
[INFO] [stdout] test chapter_5_force_hold_stance ... ok
[INFO] [stdout] test chapter_5_full_path_miriam_speaks ... ok
[INFO] [stdout] test five_roster_after_ch5 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 35 tests
[INFO] [stdout] test all_16_chapters_have_entry_scenes ... ok
[INFO] [stdout] test breakwater_battle_has_standoff ... ok
[INFO] [stdout] test breakwater_battle_encounter_dispatches ... ok
[INFO] [stdout] test breakwater_battle_has_objectives ... ok
[INFO] [stdout] test confirm_quit_screen_variant_exists ... ok
[INFO] [stdout] test app_starts_with_should_quit_false ... ok
[INFO] [stdout] test active_objectives_resolve_when_enemies_defeated ... ok
[INFO] [stdout] test duo_tech_registry_registers_and_retrieves ... ok
[INFO] [stdout] test early_chapters_accessible_from_game_start ... ok
[INFO] [stdout] test completed_objectives_maintain_status ... ok
[INFO] [stderr]      Running tests/feature_wave2.rs (/opt/rustwide/target/debug/deps/feature_wave2-762603e62ae2fdac)
[INFO] [stdout] test duo_tech_both_members_present_can_execute ... ok
[INFO] [stdout] test duo_tech_dead_member_blocks_execution ... ok
[INFO] [stdout] test duo_tech_missing_member_party_lacks_partner ... ok
[INFO] [stdout] test encounter_state_escapable_defaults_true ... ok
[INFO] [stdout] test encounter_state_carries_skill_registry ... ok
[INFO] [stdout] test flee_action_executes_without_panic ... ok
[INFO] [stdout] test flee_action_variant_exists ... ok
[INFO] [stdout] test chapter_progression_flags_can_be_set ... ok
[INFO] [stdout] test npc_stats_for_unknown_returns_defaults ... ok
[INFO] [stdout] test npc_stats_bale_is_slow_heavy_hitter ... ok
[INFO] [stdout] test npc_stats_cal_are_reasonable ... ok
[INFO] [stdout] test npc_stats_for_known_characters_returns_unique_stats ... ok
[INFO] [stdout] test skill_registry_variant_falls_back_to_first ... ok
[INFO] [stdout] test chapter_entry_scenes_map_to_valid_scenes ... ok
[INFO] [stdout] test skill_registry_variant_lookup_by_age ... ok
[INFO] [stdout] test fled_result_variant_exists ... ok
[INFO] [stdout] test quit_options_have_labels ... ok
[INFO] [stdout] test quit_options_include_save_and_cancel ... ok
[INFO] [stdout] test secondary_objective_fails_when_enemies_killed_not_broken ... ok
[INFO] [stdout] test skill_has_proper_cost_values ... ok
[INFO] [stdout] test skill_registry_returns_none_for_unknown ... ok
[INFO] [stdout] test unknown_chapter_entry_returns_none ... ok
[INFO] [stdout] test skill_registry_registers_and_retrieves ... ok
[INFO] [stdout] test different_npcs_get_different_live_stats ... ok
[INFO] [stdout] test npc_ally_stats_flow_into_encounter_state ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test cover_element_has_durability ... ok
[INFO] [stdout] test ch6_chapter_close_sets_completion_flag ... ok
[INFO] [stdout] test ch8_chapter_close_sets_completion_flag ... ok
[INFO] [stdout] test cover_survives_partial_damage ... ok
[INFO] [stdout] test ch6_has_chapter_close_scene ... ok
[INFO] [stdout] test ch8_chapter_close_has_memory_refs ... ok
[INFO] [stdout] test ch8_has_mission_defense_encounter ... ok
[INFO] [stdout] test ch6_chapter_close_has_memory_refs ... ok
[INFO] [stdout] test destructible_cover_can_be_destroyed_via_environment ... ok
[INFO] [stdout] test evidence_collection_is_idempotent ... ok
[INFO] [stdout] test evidence_can_be_collected_in_game_state ... ok
[INFO] [stdout] test departed_members_tracked_via_flags ... ok
[INFO] [stdout] test iron_ledger_archive_has_records ... ok
[INFO] [stdout] test missing_age_variant_falls_back_to_base ... ok
[INFO] [stdout] test npc_behavior_variants_exist ... ok
[INFO] [stdout] test npc_ally_in_encounter_uses_behavior ... ok
[INFO] [stdout] test position_states_are_comprehensive ... ok
[INFO] [stdout] test partial_cover_position_exists ... ok
[INFO] [stdout] test pressure_actions_blocked_after_resolution ... ok
[INFO] [stdout] test npc_combatant_carries_behavior ... ok
[INFO] [stdout] test pressure_bar_at_fail_threshold_means_failure ... ok
[INFO] [stdout] test pressure_engine_action_modifies_bar ... ok
[INFO] [stdout] test pressure_engine_creates_with_bars ... ok
[INFO] [stdout] test pressure_bar_tracks_current_max_fail ... ok
[INFO] [stdout] test pressure_failure_triggers_at_threshold ... ok
[INFO] [stdout] test reassembly_requires_enough_returning_allies ... ok
[INFO] [stdout] test relay_evidence_differs_by_branch ... ok
[INFO] [stdout] test skill_registry_get_variant_returns_age_specific_stats ... ok
[INFO] [stdout] test verification_result_carries_proof ... ok
[INFO] [stdout] test full_cover_position_exists ... ok
[INFO] [stdout] test returned_flags_track_reassembly ... ok
[INFO] [stdout] test reassembly_fails_with_insufficient_returns ... ok
[INFO] [stdout] test pressure_success_when_all_bars_above_fail ... ok
[INFO] [stdout] test young_man_variant_falls_back_similarly ... ok
[INFO] [stdout] test youth_variant_differs_from_adult_variant ... ok
[INFO] [stdout] test lucien_archive_contribution_varies_by_status ... ok
[INFO] [stdout] test protective_npc_behavior_is_distinct ... ok
[INFO] [stdout] test party_members_can_be_removed_and_readded ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/feature_wave3.rs (/opt/rustwide/target/debug/deps/feature_wave3-64c6367d370c5fed)
[INFO] [stdout] running 33 tests
[INFO] [stdout] test cascade_nerve_damage_is_bounded ... ok
[INFO] [stdout] test cooldown_turns_field_exists_on_skill_cost ... ok
[INFO] [stdout] test ch15_testament_scene_exists ... ok
[INFO] [stdout] test cooldown_zero_means_no_cooldown ... ok
[INFO] [stdout] test auto_save_creates_file_in_autosave_slot ... ok
[INFO] [stdout] test effects_expire_when_duration_reaches_zero ... ok
[INFO] [stdout] test delete_nonexistent_slot_returns_error ... ok
[INFO] [stdout] test encounter_state_has_cooldowns_map ... ok
[INFO] [stdout] test error_screen_variant_exists ... ok
[INFO] [stdout] test cooldown_can_be_set_on_encounter_state ... ok
[INFO] [stdout] test inspired_and_suppressed_have_no_per_turn_damage ... ok
[INFO] [stdout] test multiple_enemies_can_panic_independently ... ok
[INFO] [stdout] test bleeding_per_turn_impact_deals_damage ... ok
[INFO] [stdout] test delete_save_is_idempotent_error ... ok
[INFO] [stdout] test delete_save_removes_file ... ok
[INFO] [stdout] test ch15_testament_has_expanded_content_per_ending ... ok
[INFO] [stdout] test pause_screen_variant_exists ... ok
[INFO] [stdout] test reload_action_executes_without_panic ... ok
[INFO] [stdout] test reload_action_variant_exists ... ok
[INFO] [stdout] test stunned_per_turn_impact_skips_turn ... ok
[INFO] [stdout] test nerve_break_on_party_member_is_trackable ... ok
[INFO] [stdout] test autosave_is_loadable ... ok
[INFO] [stdout] test nerve_break_sets_panicked_flag ... ok
[INFO] [stdout] test status_effect_can_be_applied_with_duration ... ok
[INFO] [stdout] test status_effect_can_be_applied_to_party_member ... ok
[INFO] [stdout] test status_effect_variants_exist ... ok
[INFO] [stdout] test autosave_overwrites_previous ... ok
[INFO] [stdout] test error_screen_holds_message ... ok
[INFO] [stdout] test ch15_testament_has_multiple_endings ... ok
[INFO] [stdout] test ch10_hearing_has_sequence_dependent_lines ... ok
[INFO] [stdout] test ch13_first_contact_has_order_dependent_choices ... ok
[INFO] [stdout] test ch10_hearing_scene_exists ... ok
[INFO] [stdout] test ch13_first_contact_scene_exists ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/feature_wave4.rs (/opt/rustwide/target/debug/deps/feature_wave4-ee1fe694a2396a0f)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test rest_recovery_heals_minor_only ... ok
[INFO] [stdout] test apply_terrain_effects_hits_all_combatants ... ok
[INFO] [stdout] test fear_cascade_triggers_on_nerve_break ... ok
[INFO] [stdout] test npc_ally_uses_named_action_selection ... ok
[INFO] [stdout] test combo_first_use_no_bonus ... ok
[INFO] [stdout] test combo_reset_clears ... ok
[INFO] [stdout] test combo_third_use_max_bonus ... ok
[INFO] [stdout] test cooldowns_tick_on_new_round ... ok
[INFO] [stdout] test combo_multiplier_applied_to_damage ... ok
[INFO] [stdout] test jump_point_convoy_age_transition ... ok
[INFO] [stdout] test jump_point_cascading_carries_flags ... ok
[INFO] [stdout] test combo_resets_on_line_switch ... ok
[INFO] [stdout] test combo_second_use_gives_bonus ... ok
[INFO] [stdout] test rest_recovery_skips_major ... ok
[INFO] [stdout] test screen_variants_constructable ... ok
[INFO] [stdout] test settings_apply_text_speed ... ok
[INFO] [stdout] test jump_points_always_include_galen ... ok
[INFO] [stdout] test settings_default_text_speed ... ok
[INFO] [stdout] test settings_save_load_round_trip ... ok
[INFO] [stdout] test terrain_effects_applied_on_round_boundary ... ok
[INFO] [stdout] test wound_recover_without_ada_fails ... ok
[INFO] [stdout] test settings_text_speed_clamped ... ok
[INFO] [stdout] test terrain_modifier_types_exist ... ok
[INFO] [stdout] test terrain_modifiers_apply_and_check ... ok
[INFO] [stdout] test terrain_modifiers_stack ... ok
[INFO] [stdout] test wound_recover_with_ada_removes_wound ... ok
[INFO] [stdout] test save_backup_created_on_overwrite ... ok
[INFO] [stdout] test save_no_backup_on_first_write ... ok
[INFO] [stderr]      Running tests/fifteen_years_gone.rs (/opt/rustwide/target/debug/deps/fifteen_years_gone-180cfc15c7b2e4d0)
[INFO] [stdout] test confirm_quit_carries_return_screen ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test older_galen_feels_necessary_not_weaker ... ok
[INFO] [stdout] test older_galen_with_modified_context_does_not_panic ... ok
[INFO] [stdout] test first_contact_is_selective ... ok
[INFO] [stdout] test return_is_not_nostalgia ... ok
[INFO] [stdout] test relay_branch_echoes_in_return ... ok
[INFO] [stdout] test wrong_history_is_becoming_permanent ... ok
[INFO] [stdout] test chapter_13_full_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/full_playthrough.rs (/opt/rustwide/target/debug/deps/full_playthrough-a193595150d75502)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test all_jump_points_create_valid_states ... ok
[INFO] [stdout] test state_carries_across_chapter_boundaries ... ok
[INFO] [stdout] test prologue_scene_chain_plays_through ... ok
[INFO] [stdout] test chapter_progression_gates_correctly ... ok
[INFO] [stdout] test save_load_mid_playthrough_preserves_state ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fuse_country.rs (/opt/rustwide/target/debug/deps/fuse_country-005317267057137d)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test environmental_combat_is_real_system ... ok
[INFO] [stdout] test galen_shoots_fuse_with_steady_aim ... ok
[INFO] [stdout] test lucien_is_hateable ... ok
[INFO] [stdout] test structural_collapse_changes_battlefield ... ok
[INFO] [stdout] test lucien_not_recruited_in_ch6 ... ok
[INFO] [stdout] test fuse_charges_have_varied_timing ... ok
[INFO] [stdout] test trestle_has_fuse_state_and_cover ... ok
[INFO] [stdout] test chapter_6_lucien_decision_variants ... ok
[INFO] [stdout] test rosa_physically_disarms ... ok
[INFO] [stdout] test lucien_damage_before_face ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/iron_ledger.rs (/opt/rustwide/target/debug/deps/iron_ledger-9e5ee233d868577d)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test lucien_custody_changes_access ... ok
[INFO] [stdout] test relay_truths_converge_in_archive ... ok
[INFO] [stdout] test lucien_is_necessary_before_forgivable ... ok
[INFO] [stdout] test archive_convergence_scene_branches ... ok
[INFO] [stdout] test no_clean_institutional_win ... ok
[INFO] [stdout] test three_approaches_different_compromises ... ok
[INFO] [stdout] test chapter_7_full_path_with_lucien ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/long_wire.rs (/opt/rustwide/target/debug/deps/long_wire-9ebbc409e3d145fe)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test assignment_is_character ... ok
[INFO] [stdout] test no_single_team_does_everything ... ok
[INFO] [stdout] test synergy_reflects_relationships ... ok
[INFO] [stdout] test truth_moves_by_time ... ok
[INFO] [stdout] test three_assignments_three_textures ... ok
[INFO] [stdout] test chapter_9_full_path ... ok
[INFO] [stdout] test eli_returns_changed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/morrow_crossing.rs (/opt/rustwide/target/debug/deps/morrow_crossing-e2b342905e3eca05)
[INFO] [stdout] running 3 tests
[INFO] [stdout] test divergent_path_homestead_first ... ok
[INFO] [stdout] test golden_path_town_direct ... ok
[INFO] [stdout] test two_paths_different_biographies ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/names_in_dust.rs (/opt/rustwide/target/debug/deps/names_in_dust-83931b221491a64d)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test campfire_adds_memory_object ... ok
[INFO] [stdout] test last_road_completes_adult_arc ... ok
[INFO] [stdout] test aftermath_sets_ch12_started ... ok
[INFO] [stdout] test separations_set_departure_flags ... ok
[INFO] [stdout] test last_road_has_memory_ref_to_ch14 ... ok
[INFO] [stdout] test nonexistent_scene_returns_none ... ok
[INFO] [stdout] test all_scenes_are_available ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/old_friends.rs (/opt/rustwide/target/debug/deps/old_friends-7c2cd3ad2c2810af)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test chapter_14_feels_necessary ... ok
[INFO] [stdout] test each_return_carries_distinct_truth ... ok
[INFO] [stdout] test eli_still_has_the_ledger ... ok
[INFO] [stdout] test reassembly_is_selective_not_total ... ok
[INFO] [stdout] test old_chemistry_is_changed_not_restored ... ok
[INFO] [stdout] test chapter_14_full_path ... ok
[INFO] [stderr]      Running tests/pressure_encounters.rs (/opt/rustwide/target/debug/deps/pressure_encounters-3becc1b60d714c0a)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test crowd_pressure_has_ringleaders ... ok
[INFO] [stdout] test pressure_action_has_delta ... ok
[INFO] [stdout] test pressure_bar_tracks_state ... ok
[INFO] [stdout] test transmission_race_has_channels ... ok
[INFO] [stderr]      Running tests/prologue.rs (/opt/rustwide/target/debug/deps/prologue-da8d42a1470b2176)
[INFO] [stdout] test public_reckoning_has_five_bars ... ok
[INFO] [stdout] test escort_pressure_has_cargo ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test age_phase_is_adult_at_prologue ... ok
[INFO] [stdout] test beat5_town_direct_consequence_in_return ... ok
[INFO] [stdout] test prologue_entry_scene_routing ... ok
[INFO] [stderr]      Running tests/reassembly.rs (/opt/rustwide/target/debug/deps/reassembly-5d8a6f93e4a91990)
[INFO] [stdout] test prologue_branch_homestead_first ... ok
[INFO] [stdout] test prologue_poster_exists_and_has_choices ... ok
[INFO] [stdout] test relay_triage_nella_sets_branch ... ok
[INFO] [stdout] test relay_triage_tom_sets_branch ... ok
[INFO] [stdout] test prologue_branch_town_direct ... ok
[INFO] [stdout] test beat5_homestead_consequence_in_return ... ok
[INFO] [stdout] test relay_triage_papers_sets_branch ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test can_approach_with_enough_body_returns ... ok
[INFO] [stdout] test cannot_approach_with_too_few_body_returns ... ok
[INFO] [stdout] test chapter_14_reassembly_has_five_allies ... ok
[INFO] [stdout] test return_modes_are_diverse ... ok
[INFO] [stdout] test boundary_exactly_three_body_returns ... ok
[INFO] [stdout] test each_ally_carries_truth_and_tension ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ropehouse_blood.rs (/opt/rustwide/target/debug/deps/ropehouse_blood-02dc271806a022fc)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test party_argument_has_memory ... ok
[INFO] [stdout] test rosa_is_a_person ... ok
[INFO] [stdout] test full_party_feels_real ... ok
[INFO] [stdout] test chapter_4_full_path_force ... ok
[INFO] [stdout] test three_stances_different_relationships ... ok
[INFO] [stdout] test chapter_4_full_path_negotiate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/saints_mile_again.rs (/opt/rustwide/target/debug/deps/saints_mile_again-439c3c3983c3809d)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test bell_remains_unresolved ... ok
[INFO] [stdout] test each_ally_contributes_distinct_final_truth ... ok
[INFO] [stdout] test ending_reads_run_state ... ok
[INFO] [stdout] test four_axes_four_legacies ... ok
[INFO] [stdout] test testament_reflects_choice ... ok
[INFO] [stdout] test voss_confrontation_is_about_authorship ... ok
[INFO] [stdout] test chapter_15_the_game_ends ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/saints_mile_convoy.rs (/opt/rustwide/target/debug/deps/saints_mile_convoy-955a4fbb41a8b7e9)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test relay_three_branches_diverge ... ok
[INFO] [stdout] test convoy_memory_objects_persist ... ok
[INFO] [stdout] test convoy_full_path_save_tom ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/scene_system.rs (/opt/rustwide/target/debug/deps/scene_system-ca24bc6a5c2bf65d)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test condition_prologue_choice_evaluation ... ok
[INFO] [stdout] test condition_flag_evaluation ... ok
[INFO] [stdout] test choice_filtering_locked_vs_available ... ok
[INFO] [stdout] test choice_unlocked_by_party_member ... ok
[INFO] [stdout] test effect_set_relationship ... ok
[INFO] [stdout] test condition_relay_branch_evaluation ... ok
[INFO] [stdout] test effect_set_flag ... ok
[INFO] [stdout] test effect_unlock_skill ... ok
[INFO] [stdout] test condition_reputation_all_operators ... ok
[INFO] [stdout] test scene_level_condition_gates_entire_scene ... ok
[INFO] [stdout] test choice_unlocked_by_flag ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/split_party.rs (/opt/rustwide/target/debug/deps/split_party-97475ee7f3b1424f)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test evaluate_synergy_volatile_and_hostile ... ok
[INFO] [stdout] test long_wire_split_creates_three_teams ... ok
[INFO] [stdout] test hostile_signal_tower_still_succeeds ... ok
[INFO] [stdout] test witness_route_eli_miriam_special_report ... ok
[INFO] [stdout] test evaluate_synergy_strong_pairings ... ok
[INFO] [stdout] test resolve_team_produces_flags ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/state_systems.rs (/opt/rustwide/target/debug/deps/state_systems-000085b3c37aa947)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test branch_verification_counts_are_consistent ... ok
[INFO] [stdout] test burned_mission_has_all_domains ... ok
[INFO] [stdout] test branch_verification_is_branch_specific ... ok
[INFO] [stdout] test convergence_requires_all_domains ... ok
[INFO] [stdout] test correct_reader_reveals_fragment ... ok
[INFO] [stdout] test fragment_cannot_be_read_twice ... ok
[INFO] [stdout] test discovered_count_tracks_correctly ... ok
[INFO] [stdout] test iron_ledger_archive_has_records ... ok
[INFO] [stdout] test miriam_silent_in_ch4 ... ok
[INFO] [stdout] test unknown_stance_produces_empty_reactions ... ok
[INFO] [stdout] test reactions_carry_position_text ... ok
[INFO] [stdout] test water_claim_stances_produce_different_reactions ... ok
[INFO] [stdout] test wrong_reader_cannot_reveal ... ok
[INFO] [stdout] test lucien_archive_contribution_varies_by_status ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ui_logic.rs (/opt/rustwide/target/debug/deps/ui_logic-bda1161a088868eb)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test age_labels_are_descriptive ... ok
[INFO] [stdout] test age_menu_titles_differ ... ok
[INFO] [stdout] test ammo_color_thresholds ... ok
[INFO] [stdout] test complete_all_finishes_instantly ... ok
[INFO] [stdout] test crisis_pacing_instant_reveal ... ok
[INFO] [stdout] test empty_lines_complete_immediately ... ok
[INFO] [stdout] test gauge_color_thresholds ... ok
[INFO] [stdout] test intimate_pacing_is_slower ... ok
[INFO] [stdout] test line_visible_tracks_correctly ... ok
[INFO] [stdout] test pacing_reveal_rates_ordered ... ok
[INFO] [stdout] test skip_line_completes_then_advances ... ok
[INFO] [stdout] test pacing_border_varies ... ok
[INFO] [stdout] test skip_line_returns_false_when_complete ... ok
[INFO] [stdout] test exploration_pacing_is_gradual ... ok
[INFO] [stdout] test visible_chars_returns_correct_values ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/version.rs (/opt/rustwide/target/debug/deps/version-3edd143124d199d2)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test cargo_version_is_valid_semver ... ok
[INFO] [stdout] test version_flag_prints_version ... ok
[INFO] [stdout] test help_flag_prints_help ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests saints_mile
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "48db119bfeef5b1e09d349dc0d017ee957c139e780b878a6407ca6a552c98a2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48db119bfeef5b1e09d349dc0d017ee957c139e780b878a6407ca6a552c98a2a", kill_on_drop: false }`
[INFO] [stdout] 48db119bfeef5b1e09d349dc0d017ee957c139e780b878a6407ca6a552c98a2a
