[INFO] cloning repository https://github.com/M4ckie/TurboMux
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/M4ckie/TurboMux" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM4ckie%2FTurboMux", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM4ckie%2FTurboMux'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7d4f5bb8ff6543fba6fa83b8eec2e30137c18b2b
[INFO] testing M4ckie/TurboMux against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM4ckie%2FTurboMux" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/M4ckie/TurboMux
[INFO] finished tweaking git repo https://github.com/M4ckie/TurboMux
[INFO] tweaked toml for git repo https://github.com/M4ckie/TurboMux written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/M4ckie/TurboMux on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/M4ckie/TurboMux already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded line-clipping v0.3.5
[INFO] [stderr]   Downloaded vte_generate_state_changes v0.1.2
[INFO] [stderr]   Downloaded vte v0.13.1
[INFO] [stderr]   Downloaded serial2 v0.2.34
[INFO] [stderr]   Downloaded portable-pty v0.9.0
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.6
[INFO] [stderr]   Downloaded jiff-static v0.2.23
[INFO] [stderr]   Downloaded env_filter v1.0.1
[INFO] [stderr]   Downloaded env_logger v0.11.10
[INFO] [stderr]   Downloaded crossterm v0.28.1
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] [stderr]   Downloaded jiff v0.2.23
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344
[INFO] running `Command { std: "docker" "start" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling vte v0.13.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 socket2 v0.6.3
[INFO] [stderr]    Compiling serial2 v0.2.34
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling turbomux v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.65s
[INFO] running `Command { std: "docker" "inspect" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[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 turbomux v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/claude/hooks.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/file_finder.rs:486:13
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let mut ff = FileFinder::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     /// W moves the file-explorer highlight one row towards the top.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 106 |     let root = make_temp_root("w_up");
[INFO] [stdout]     |     ---------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     /// S moves the file-explorer highlight one row towards the bottom.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 |     let root = make_temp_root("s_down");
[INFO] [stdout]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     /// S at the last entry must not wrap around or panic.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 167 |     let root = make_temp_root("s_clamp");
[INFO] [stdout]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 181 |     /// W at the first entry must not underflow.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 182 |     let root = make_temp_root("w_clamp");
[INFO] [stdout]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     /// D on a collapsed directory expands it — children become visible in the buffer.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 195 |     let root = make_temp_root("d_expand");
[INFO] [stdout]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 223 |     /// D on an already-expanded directory is a no-op — children remain visible.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 224 |     let root = make_temp_root("d_noop");
[INFO] [stdout]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 | /     /// D on a file attempts to open it. Even if PTY spawn fails the focus and
[INFO] [stdout] 261 | |     /// mode transitions are attempted.  We cannot assert the file is open (no
[INFO] [stdout] 262 | |     /// real editor available in CI) but we verify the state machine transitions.
[INFO] [stdout]     | |_________________________________________________________________________________^
[INFO] [stdout] 263 |       let root = make_temp_root("d_file");
[INFO] [stdout]     |       ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     /// A on an expanded directory collapses it — children are removed from the buffer.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 294 |     let root = make_temp_root("a_collapse");
[INFO] [stdout]     |     ---------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     /// A on a file entry navigates the selection to the nearest ancestor directory.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 326 |     let root = make_temp_root("a_parent");
[INFO] [stdout]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:360:5
[INFO] [stdout]     |
[INFO] [stdout] 360 |     /// Space on a directory entry toggles its expanded state.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     let root = make_temp_root("space_toggle");
[INFO] [stdout]     |     ------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     /// Space on a file entry must not change the entry count or crash.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 399 |     let root = make_temp_root("space_file_noop");
[INFO] [stdout]     |     --------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:434:5
[INFO] [stdout]     |
[INFO] [stdout] 434 |     /// F1 must cause a flash message containing "Help" to appear in the frame.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 435 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:455:5
[INFO] [stdout]     |
[INFO] [stdout] 455 |     /// F7 must cause a flash message mentioning "terminal" to appear in the frame.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 456 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:477:5
[INFO] [stdout]     |
[INFO] [stdout] 477 |     /// F11 is intentionally absent from the stub list — it must not set a flash message.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 478 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:495:5
[INFO] [stdout]     |
[INFO] [stdout] 495 | /     /// A Tick event clears a flash message whose Instant is older than 2 seconds.
[INFO] [stdout] 496 | |     ///
[INFO] [stdout] 497 | |     /// We manufacture an already-expired Instant by back-dating it via a helper
[INFO] [stdout] 498 | |     /// that replaces the flash_message tuple with one holding a pre-aged timestamp.
[INFO] [stdout]     | |____________________________________________________________________________________^
[INFO] [stdout] 499 |       let mut app = default_app();
[INFO] [stdout]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:517:5
[INFO] [stdout]     |
[INFO] [stdout] 517 |     /// A Tick event must NOT clear a flash message that was just set.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 518 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:533:5
[INFO] [stdout]     |
[INFO] [stdout] 533 | /     /// When the command palette is open the flash message must not appear in the frame,
[INFO] [stdout] 534 | |     /// even if app.flash_message is Some.
[INFO] [stdout]     | |__________________________________________^
[INFO] [stdout] 535 |       let mut app = default_app();
[INFO] [stdout]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:576:5
[INFO] [stdout]     |
[INFO] [stdout] 576 |     /// The flash popup must appear in the bottom-right quadrant of the screen.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 577 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClipboardBackend`
[INFO] [stdout]  --> tests/integration_phase16.rs:2:38
[INFO] [stdout]   |
[INFO] [stdout] 2 | use turbomux::clipboard::{Clipboard, ClipboardBackend};
[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: `EditorManager`
[INFO] [stdout]   --> tests/integration_phase10.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use turbomux::editor::{EditorManager, EditorTab};
[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: `command::Command`
[INFO] [stdout]   --> tests/integration_phase10.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 | use turbomux::keybindings::{command::Command, InputMode};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbomux::event::AppEvent`
[INFO] [stdout]   --> tests/integration_phase12.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use turbomux::event::AppEvent;
[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: `std::io::Write`
[INFO] [stdout]    --> src/claude/hooks.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration_phase12.rs:396:9
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let mut buf = buf_with_scrollback(80, 5, 10);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/file_finder.rs:486:13
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let mut ff = FileFinder::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.72s
[INFO] running `Command { std: "docker" "inspect" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 105 |     /// W moves the file-explorer highlight one row towards the top.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 106 |     let root = make_temp_root("w_up");
[INFO] [stderr]     |     ---------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:138:5
[INFO] [stderr]     |
[INFO] [stderr] 138 |     /// S moves the file-explorer highlight one row towards the bottom.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 139 |     let root = make_temp_root("s_down");
[INFO] [stderr]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:166:5
[INFO] [stderr]     |
[INFO] [stderr] 166 |     /// S at the last entry must not wrap around or panic.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 167 |     let root = make_temp_root("s_clamp");
[INFO] [stderr]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:181:5
[INFO] [stderr]     |
[INFO] [stderr] 181 |     /// W at the first entry must not underflow.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 182 |     let root = make_temp_root("w_clamp");
[INFO] [stderr]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:194:5
[INFO] [stderr]     |
[INFO] [stderr] 194 |     /// D on a collapsed directory expands it — children become visible in the buffer.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 195 |     let root = make_temp_root("d_expand");
[INFO] [stderr]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:223:5
[INFO] [stderr]     |
[INFO] [stderr] 223 |     /// D on an already-expanded directory is a no-op — children remain visible.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 224 |     let root = make_temp_root("d_noop");
[INFO] [stderr]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:260:5
[INFO] [stderr]     |
[INFO] [stderr] 260 | /     /// D on a file attempts to open it. Even if PTY spawn fails the focus and
[INFO] [stderr] 261 | |     /// mode transitions are attempted.  We cannot assert the file is open (no
[INFO] [stderr] 262 | |     /// real editor available in CI) but we verify the state machine transitions.
[INFO] [stderr]     | |_________________________________________________________________________________^
[INFO] [stderr] 263 |       let root = make_temp_root("d_file");
[INFO] [stderr]     |       ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:293:5
[INFO] [stderr]     |
[INFO] [stderr] 293 |     /// A on an expanded directory collapses it — children are removed from the buffer.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 294 |     let root = make_temp_root("a_collapse");
[INFO] [stderr]     |     ---------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:325:5
[INFO] [stderr]     |
[INFO] [stderr] 325 |     /// A on a file entry navigates the selection to the nearest ancestor directory.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 326 |     let root = make_temp_root("a_parent");
[INFO] [stderr]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:360:5
[INFO] [stderr]     |
[INFO] [stderr] 360 |     /// Space on a directory entry toggles its expanded state.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 361 |     let root = make_temp_root("space_toggle");
[INFO] [stderr]     |     ------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:398:5
[INFO] [stderr]     |
[INFO] [stderr] 398 |     /// Space on a file entry must not change the entry count or crash.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 399 |     let root = make_temp_root("space_file_noop");
[INFO] [stderr]     |     --------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:434:5
[INFO] [stderr]     |
[INFO] [stderr] 434 |     /// F1 must cause a flash message containing "Help" to appear in the frame.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 435 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:455:5
[INFO] [stderr]     |
[INFO] [stderr] 455 |     /// F7 must cause a flash message mentioning "terminal" to appear in the frame.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 456 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:477:5
[INFO] [stderr]     |
[INFO] [stderr] 477 |     /// F11 is intentionally absent from the stub list — it must not set a flash message.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 478 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:495:5
[INFO] [stderr]     |
[INFO] [stderr] 495 | /     /// A Tick event clears a flash message whose Instant is older than 2 seconds.
[INFO] [stderr] 496 | |     ///
[INFO] [stderr] 497 | |     /// We manufacture an already-expired Instant by back-dating it via a helper
[INFO] [stderr] 498 | |     /// that replaces the flash_message tuple with one holding a pre-aged timestamp.
[INFO] [stderr]     | |____________________________________________________________________________________^
[INFO] [stderr] 499 |       let mut app = default_app();
[INFO] [stderr]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:517:5
[INFO] [stderr]     |
[INFO] [stderr] 517 |     /// A Tick event must NOT clear a flash message that was just set.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 518 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:533:5
[INFO] [stderr]     |
[INFO] [stderr] 533 | /     /// When the command palette is open the flash message must not appear in the frame,
[INFO] [stderr] 534 | |     /// even if app.flash_message is Some.
[INFO] [stderr]     | |__________________________________________^
[INFO] [stderr] 535 |       let mut app = default_app();
[INFO] [stderr]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:576:5
[INFO] [stderr]     |
[INFO] [stderr] 576 |     /// The flash popup must appear in the bottom-right quadrant of the screen.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 577 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EditorManager`
[INFO] [stderr]   --> tests/integration_phase10.rs:14:24
[INFO] [stderr]    |
[INFO] [stderr] 14 | use turbomux::editor::{EditorManager, EditorTab};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `command::Command`
[INFO] [stderr]   --> tests/integration_phase10.rs:16:29
[INFO] [stderr]    |
[INFO] [stderr] 16 | use turbomux::keybindings::{command::Command, InputMode};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]    --> src/claude/hooks.rs:145:9
[INFO] [stderr]     |
[INFO] [stderr] 145 |     use std::io::Write;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/file_finder.rs:486:13
[INFO] [stderr]     |
[INFO] [stderr] 486 |         let mut ff = FileFinder::new();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `turbomux::event::AppEvent`
[INFO] [stderr]   --> tests/integration_phase12.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use turbomux::event::AppEvent;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_phase12.rs:396:9
[INFO] [stderr]     |
[INFO] [stderr] 396 |     let mut buf = buf_with_scrollback(80, 5, 10);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ClipboardBackend`
[INFO] [stderr]  --> tests/integration_phase16.rs:2:38
[INFO] [stderr]   |
[INFO] [stderr] 2 | use turbomux::clipboard::{Clipboard, ClipboardBackend};
[INFO] [stderr]   |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `turbomux` (test "integration_phase8") generated 18 warnings
[INFO] [stderr] warning: `turbomux` (test "integration_phase10") generated 2 warnings (run `cargo fix --test "integration_phase10" -p turbomux` to apply 2 suggestions)
[INFO] [stderr] warning: `turbomux` (bin "turbomux" test) generated 2 warnings (run `cargo fix --bin "turbomux" -p turbomux --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `turbomux` (test "integration_phase12") generated 2 warnings (run `cargo fix --test "integration_phase12" -p turbomux` to apply 2 suggestions)
[INFO] [stderr] warning: `turbomux` (test "integration_phase16") generated 1 warning (run `cargo fix --test "integration_phase16" -p turbomux` to apply 1 suggestion)
[INFO] [stderr] warning: `turbomux` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/turbomux-a7d8049a5800578c)
[INFO] [stdout] 
[INFO] [stdout] running 298 tests
[INFO] [stdout] test app::tests::rect_contains_boundary_bottom_right_is_outside ... ok
[INFO] [stdout] test app::tests::rect_contains_boundary_top_left_is_inside ... ok
[INFO] [stdout] test app::tests::rect_contains_returns_false_for_point_outside ... ok
[INFO] [stdout] test app::tests::rect_contains_returns_false_for_zero_size_rect ... ok
[INFO] [stdout] test app::tests::rect_contains_returns_true_for_point_inside ... ok
[INFO] [stdout] test claude::hooks::tests::install_creates_hooks_in_empty_settings ... ok
[INFO] [stdout] test app::tests::sidebar_width_config_sets_layout_default ... ok
[INFO] [stdout] test app::tests::apply_focus_editor_without_pane_sets_normal_mode ... ok
[INFO] [stdout] test claude::hooks::tests::install_preserves_other_hooks ... ok
[INFO] [stdout] test claude::hooks::tests::remove_cleans_up_turbomux_hooks ... ok
[INFO] [stdout] test claude::hooks::tests::remove_on_missing_file_is_ok ... ok
[INFO] [stdout] test app::tests::mouse_click_editor_sets_focus ... ok
[INFO] [stdout] test claude::hooks::tests::remove_preserves_other_hooks ... ok
[INFO] [stdout] test claude::socket::tests::client_can_send_json_and_event_arrives ... ok
[INFO] [stdout] test claude::socket::tests::malformed_json_does_not_crash ... ok
[INFO] [stdout] test claude::socket::tests::socket_file_is_created ... ok
[INFO] [stdout] test claude::tests::claude_activity_entry_tracks_timestamp ... ok
[INFO] [stdout] test claude::tests::claude_activity_variants_construct_and_compare ... ok
[INFO] [stdout] test claude::tests::context_percent_computes_correctly ... ok
[INFO] [stdout] test claude::tests::context_percent_zero_when_context_length_zero ... ok
[INFO] [stdout] test claude::socket::tests::multiple_concurrent_connections ... ok
[INFO] [stdout] test claude::tests::crew_member_extracted_from_agent_tool_use ... ok
[INFO] [stdout] test claude::tests::empty_file_returns_default_metrics ... ok
[INFO] [stdout] test claude::tests::malformed_line_is_skipped_without_error ... ok
[INFO] [stdout] test claude::hooks::tests::install_preserves_existing_settings ... ok
[INFO] [stdout] test claude::tests::crew_member_not_set_for_unknown_subagent_type ... ok
[INFO] [stdout] test claude::tests::model_reflects_most_recent_entry ... ok
[INFO] [stdout] test claude::tests::multiple_entries_accumulate_tokens ... ok
[INFO] [stdout] test claude::tests::sidechain_entries_are_excluded ... ok
[INFO] [stdout] test claude::tests::sidechain_false_is_not_excluded ... ok
[INFO] [stdout] test claude::tests::total_tokens_sums_input_and_output ... ok
[INFO] [stdout] test claude::tests::session_start_comes_from_first_non_sidechain_entry ... ok
[INFO] [stdout] test claude::tests::single_valid_entry_extracts_tokens ... ok
[INFO] [stdout] test clipboard::tests::base64_empty ... ok
[INFO] [stdout] test clipboard::tests::base64_hello_world ... ok
[INFO] [stdout] test clipboard::tests::base64_three_bytes_exact ... ok
[INFO] [stdout] test clipboard::tests::base64_two_bytes ... ok
[INFO] [stdout] test clipboard::tests::base64_single_byte ... ok
[INFO] [stdout] test claude::hooks::tests::install_deduplicates_on_repeat ... ok
[INFO] [stdout] test clipboard::tests::copy_overwrites_previous_internal ... ok
[INFO] [stdout] test clipboard::tests::copy_paste_roundtrip_internal ... ok
[INFO] [stdout] test clipboard::tests::base64_hello ... ok
[INFO] [stdout] ]52;c;dGVzdCB0ZXh0test clipboard::tests::copy_with_osc52_non_internal_backend_no_panic ... ok
[INFO] [stdout] test clipboard::tests::copy_with_osc52_updates_internal ... ok
[INFO] [stdout] test config::tests::build_command_appends_file_path_to_args ... ok
[INFO] [stdout] test config::tests::build_command_returns_correct_command_string ... ok
[INFO] [stdout] test config::tests::build_command_with_base_args_keeps_order ... ok
[INFO] [stdout] test clipboard::tests::copy_with_osc52_oversized_still_copies_internal ... ok
[INFO] [stdout] test app::tests::apply_focus_terminal_without_pane_sets_normal_mode ... ok
[INFO] [stdout] test config::tests::editor_name_extracted_from_full_path ... ok
[INFO] [stdout] test config::tests::embedded_args_in_editor_are_split_correctly ... ok
[INFO] [stdout] test config_file::tests::default_has_all_fields_none ... ok
[INFO] [stdout] test app::tests::apply_focus_sidebar_sets_normal_mode ... ok
[INFO] [stdout] test app::tests::drag_state_cleared_on_mouse_up ... ok
[INFO] [stdout] test config_file::tests::valid_toml_populates_fields ... ok
[INFO] [stdout] test editor::tests::active_pane_id_returns_pane_of_active_tab ... ok
[INFO] [stdout] test editor::tests::add_tab_creates_tab_and_sets_active ... ok
[INFO] [stdout] test editor::tests::add_tab_derives_title_from_filename ... ok
[INFO] [stdout] test editor::tests::add_tab_second_tab_becomes_active ... ok
[INFO] [stdout] test config::tests::detect_uses_editor_env_var ... ok
[INFO] [stdout] test editor::tests::add_tab_sets_split_tree_to_leaf_of_pane ... ok
[INFO] [stdout] test editor::tests::close_tab_adjusts_active_to_last_remaining ... ok
[INFO] [stdout] test app::tests::sidebar_visible_false_config_hides_sidebar ... ok
[INFO] [stdout] test editor::tests::close_tab_removes_and_returns_pane_id ... ok
[INFO] [stdout] test editor::tests::close_tab_sets_active_none_when_all_tabs_gone ... ok
[INFO] [stdout] test editor::tests::close_tab_when_empty_returns_none ... ok
[INFO] [stdout] test editor::tests::find_tab_by_path_returns_correct_index ... ok
[INFO] [stdout] test config_file::tests::invalid_toml_returns_default_without_panicking ... ok
[INFO] [stdout] test config_file::tests::load_with_nonexistent_file_returns_default ... ok
[INFO] [stdout] test editor::tests::find_tab_by_path_returns_none_for_unknown_path ... ok
[INFO] [stdout] test editor::tests::owns_pane_returns_true_for_registered_pane ... ok
[INFO] [stdout] test editor::tests::owns_pane_returns_false_for_unknown_pane ... ok
[INFO] [stdout] test app::tests::with_active_terminal_mut_returns_none_when_no_terminal ... ok
[INFO] [stdout] test editor::tests::split_tree_hsplit_compute_rects_returns_two_rects ... ok
[INFO] [stdout] test editor::tests::split_tree_leaf_compute_rects_returns_single_rect ... ok
[INFO] [stdout] test clipboard::tests::clipboard_new_smoke ... ok
[INFO] [stdout] test event::tests::app_event_key_variant_constructs ... ok
[INFO] [stdout] test editor::tests::split_tree_hsplit_ratio_controls_proportions ... ok
[INFO] [stdout] test event::tests::app_event_mouse_variant_constructs ... ok
[INFO] [stdout] test app::tests::default_config_does_not_change_layout_defaults ... ok
[INFO] [stdout] test app::tests::drag_state_set_on_border_click ... ok
[INFO] [stdout] test event::tests::app_event_pty_output_variant_constructs ... ok
[INFO] [stdout] test event::tests::app_event_tick_variant_constructs ... ok
[INFO] [stdout] test event::tests::app_event_pty_exit_variant_constructs ... ok
[INFO] [stdout] test app::tests::mouse_click_terminal_sets_focus ... ok
[INFO] [stdout] test app::tests::editor_config_override_takes_precedence_over_env_var ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_does_nothing_when_already_in_view ... ok
[INFO] [stdout] test event::tests::app_event_resize_variant_constructs ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_scrolls_up_when_selected_is_above_viewport ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_zero_height_is_a_noop ... ok
[INFO] [stdout] test file_explorer::tests::read_dir_sorted_on_missing_path_returns_empty ... ok
[INFO] [stdout] test file_explorer::tests::move_down_advances_selection ... ok
[INFO] [stdout] test file_explorer::tests::move_down_clamps_at_last_entry ... ok
[INFO] [stdout] test file_explorer::tests::scroll_down_at_max_stays_clamped ... ok
[INFO] [stdout] test file_explorer::tests::read_dir_sorted_dirs_come_before_files ... ok
[INFO] [stdout] test file_explorer::tests::scroll_down_increments_offset ... ok
[INFO] [stdout] test file_explorer::tests::scroll_up_at_zero_stays_zero ... ok
[INFO] [stdout] test file_explorer::tests::select_returns_path_for_file ... ok
[INFO] [stdout] test file_explorer::tests::toggle_expand_on_expanded_dir_removes_children ... ok
[INFO] [stdout] test file_explorer::tests::select_returns_none_for_directory ... ok
[INFO] [stdout] test file_finder::tests::close_sets_not_visible ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_scrolls_down_when_selected_is_below_viewport ... ok
[INFO] [stdout] test file_explorer::tests::scroll_up_decrements_offset ... ok
[INFO] [stdout] test file_explorer::tests::read_dir_sorted_alphabetical_within_each_group ... ok
[INFO] [stdout] test file_explorer::tests::toggle_expand_on_dir_inserts_children ... ok
[INFO] [stdout] test file_finder::tests::confirm_on_empty_filtered_returns_none ... ok
[INFO] [stdout] test file_explorer::tests::toggle_expand_on_file_is_a_noop ... ok
[INFO] [stdout] test app::tests::terminal_panel_visible_false_config_hides_panel ... ok
[INFO] [stdout] test file_finder::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test file_finder::tests::new_starts_with_empty_all_files ... ok
[INFO] [stdout] test file_finder::tests::new_starts_with_empty_input ... ok
[INFO] [stdout] test file_finder::tests::move_down_clamps_at_last ... ok
[INFO] [stdout] test file_finder::tests::move_down_advances_selection ... ok
[INFO] [stdout] test file_finder::tests::new_starts_not_visible ... ok
[INFO] [stdout] test file_explorer::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test file_finder::tests::open_resets_selection ... ok
[INFO] [stdout] test file_finder::tests::open_resets_input ... ok
[INFO] [stdout] test file_finder::tests::node_modules_directory_excluded ... ok
[INFO] [stdout] test file_explorer::tests::scroll_down_empty_entries_does_not_panic ... ok
[INFO] [stdout] test file_finder::tests::move_up_decrements_selection ... ok
[INFO] [stdout] test file_finder::tests::open_populates_all_files ... ok
[INFO] [stdout] test file_finder::tests::git_directory_excluded ... ok
[INFO] [stdout] test file_finder::tests::confirm_returns_selected_path ... ok
[INFO] [stdout] test git::tests::git_status_debug_format ... ok
[INFO] [stdout] test git::tests::git_status_default_produces_empty_values ... ok
[INFO] [stdout] test git::tests::git_status_can_be_cloned ... ok
[INFO] [stdout] test file_finder::tests::push_char_filters_results_for_main ... ok
[INFO] [stdout] test file_finder::tests::target_directory_excluded ... ok
[INFO] [stdout] test file_finder::tests::open_sets_visible ... ok
[INFO] [stdout] test file_finder::tests::pop_char_broadens_results ... ok
[INFO] [stdout] test keybindings::command::tests::all_descriptions_are_unique ... ok
[INFO] [stdout] test keybindings::command::tests::all_names_are_unique ... ok
[INFO] [stdout] test keybindings::command::tests::all_returns_27_variants ... ok
[INFO] [stdout] test file_finder::tests::empty_query_shows_all_files ... ok
[INFO] [stdout] test keybindings::command::tests::every_variant_has_non_empty_description ... ok
[INFO] [stdout] test keybindings::command::tests::every_variant_has_non_empty_name ... ok
[INFO] [stdout] test keybindings::palette::tests::close_sets_not_visible ... ok
[INFO] [stdout] test keybindings::palette::tests::confirm_does_not_close_palette ... ok
[INFO] [stdout] test keybindings::palette::tests::confirm_on_empty_list_returns_none ... ok
[INFO] [stdout] test keybindings::palette::tests::confirm_returns_selected_command ... ok
[INFO] [stdout] test keybindings::palette::tests::empty_input_returns_all_non_excluded_commands ... ok
[INFO] [stdout] test keybindings::palette::tests::excluded_commands_never_appear_after_filtering ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_close_pane_focused ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_split_horizontal ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_split_vertical ... ok
[INFO] [stdout] test keybindings::palette::tests::filtering_terminal_returns_only_terminal_commands ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_zoom_pane ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_true_for_normal_command ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_down_advances_index ... ok
[INFO] [stdout] test keybindings::palette::tests::open_excluded_commands_never_appear ... ok
[INFO] [stdout] test keybindings::palette::tests::new_is_not_visible ... ok
[INFO] [stdout] test keybindings::palette::tests::open_sets_visible ... ok
[INFO] [stdout] test keybindings::palette::tests::pop_char_on_empty_input_does_not_panic ... ok
[INFO] [stdout] test keybindings::palette::tests::open_clears_input ... ok
[INFO] [stdout] test keybindings::palette::tests::push_char_triggers_filtering ... ok
[INFO] [stdout] test keybindings::palette::tests::pop_char_removes_last_character ... ok
[INFO] [stdout] test keybindings::tests::check_timeout_returns_false_when_prefix_entered_recently ... ok
[INFO] [stdout] test keybindings::tests::check_timeout_returns_false_when_not_in_prefix_mode ... ok
[INFO] [stdout] test app::tests::mouse_click_sidebar_sets_focus ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_down_clamps_at_last_item ... ok
[INFO] [stdout] test keybindings::palette::tests::pop_char_re_expands_filter ... ok
[INFO] [stdout] test keybindings::tests::enter_mode_stores_previous_mode ... ok
[INFO] [stdout] test keybindings::tests::enter_mode_changes_current_mode ... ok
[INFO] [stdout] test keybindings::tests::exit_to_previous_restores_prior_mode ... ok
[INFO] [stdout] test keybindings::tests::f11_not_handled_returns_consumed ... ok
[INFO] [stdout] test keybindings::tests::f10_returns_flash_command_palette ... ok
[INFO] [stdout] test keybindings::tests::f3_returns_flash_find_in_file ... ok
[INFO] [stdout] test keybindings::palette::tests::push_char_appends_to_input ... ok
[INFO] [stdout] test keybindings::tests::f5_executes_cycle_status_bar_theme ... ok
[INFO] [stdout] test keybindings::tests::ctrl_space_enters_prefix_mode_from_passthrough ... ok
[INFO] [stdout] test keybindings::tests::f12_returns_flash_zoom_pane ... ok
[INFO] [stdout] test keybindings::tests::ctrl_space_enters_prefix_mode_from_normal ... ok
[INFO] [stdout] test keybindings::tests::f4_returns_flash_toggle_sidebar ... ok
[INFO] [stdout] test keybindings::palette::tests::new_has_all_commands_unfiltered ... ok
[INFO] [stdout] test keybindings::tests::f7_returns_flash_new_terminal ... ok
[INFO] [stdout] test keybindings::tests::f8_returns_flash_close_tab ... ok
[INFO] [stdout] test keybindings::tests::fkey_in_prefix_mode_cancels_prefix_and_returns_flash ... ok
[INFO] [stdout] test keybindings::tests::new_starts_in_normal_mode ... ok
[INFO] [stdout] test keybindings::tests::fkey_with_modifier_not_intercepted ... ok
[INFO] [stdout] test keybindings::tests::prefix_e_executes_focus_sidebar ... ok
[INFO] [stdout] test keybindings::tests::normal_mode_q_executes_quit ... ok
[INFO] [stdout] test keybindings::tests::passthrough_mode_regular_key_returns_pass_to_focused ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_up_clamps_at_zero ... ok
[INFO] [stdout] test keybindings::tests::prefix_p_executes_open_command_palette ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_up_decrements_index ... ok
[INFO] [stdout] test keybindings::tests::prefix_w_executes_close_tab ... ok
[INFO] [stdout] test keybindings::tests::f1_returns_flash_help ... ok
[INFO] [stdout] test keybindings::tests::f2_returns_flash_rename_file ... ok
[INFO] [stdout] test keybindings::tests::prefix_unknown_key_returns_consumed_and_exits_prefix_mode ... ok
[INFO] [stdout] test keybindings::palette::tests::open_excludes_four_commands ... ok
[INFO] [stdout] test keybindings::palette::tests::open_resets_selection_to_zero ... ok
[INFO] [stdout] test keybindings::tests::prefix_esc_returns_consumed_and_exits_prefix_mode ... ok
[INFO] [stdout] test keybindings::tests::f9_returns_flash_toggle_terminal_panel ... ok
[INFO] [stdout] test keybindings::tests::prefix_h_executes_move_focus_left_and_exits_prefix_mode ... ok
[INFO] [stdout] test keybindings::tests::prefix_n_executes_new_terminal ... ok
[INFO] [stdout] test keybindings::tests::f6_returns_flash_cycle_focus ... ok
[INFO] [stdout] test layout::tab_bar::tests::active_title_on_empty_tabs_returns_empty_string ... ok
[INFO] [stdout] test layout::tab_bar::tests::active_title_returns_correct_string ... ok
[INFO] [stdout] test layout::tab_bar::tests::remove_tab_out_of_bounds_is_a_noop ... ok
[INFO] [stdout] test layout::tab_bar::tests::remove_tab_shrinks_list ... ok
[INFO] [stdout] test layout::tab_bar::tests::set_active_clamps_to_valid_range ... ok
[INFO] [stdout] test layout::tab_bar::tests::set_active_moves_to_valid_index ... ok
[INFO] [stdout] test layout::tab_bar::tests::add_tab_appends_to_the_end ... ok
[INFO] [stdout] test layout::tab_bar::tests::default_has_one_welcome_tab_at_index_zero ... ok
[INFO] [stdout] test layout::tab_bar::tests::remove_active_tab_clamps_active_index ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_256_color_fg ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_256_color_bg ... ok
[INFO] [stdout] test layout::tests::toggle_sidebar_off_hides_sidebar_and_editor_fills_width ... ok
[INFO] [stdout] test layout::tests::both_toggled_off_leaves_only_tab_bar_and_editor_area ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_bold_sets_bold_flag ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_standard_fg_colors_30_to_37 ... ok
[INFO] [stdout] test layout::tests::status_bar_is_always_one_row_tall ... ok
[INFO] [stdout] test layout::tests::toggle_bottom_panel_off_hides_bottom_panel_and_main_fills_height ... ok
[INFO] [stdout] test layout::tests::tab_bar_is_always_one_row_tall ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_truecolor_bg ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_out_of_bounds_row_returns_space ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_out_of_bounds_col_returns_space ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_truecolor_fg ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_display_mode_2_clears_all_cells ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_returns_char_in_grid ... ok
[INFO] [stdout] test pty::buffer::tests::carriage_return_sets_col_to_zero ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_returns_char_in_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_display_mode_3_also_clears_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_line_mode_2_clears_entire_line ... ok
[INFO] [stdout] test layout::tests::status_bar_x_and_width_span_full_area_width ... ok
[INFO] [stdout] test layout::tests::sidebar_width_respects_percent_setting ... ok
[INFO] [stdout] test layout::tests::default_state_produces_all_four_regions ... ok
[INFO] [stdout] test pty::buffer::tests::move_cursor_to_clamps_col_to_cols_minus_one ... ok
[INFO] [stdout] test pty::buffer::tests::new_creates_correct_dimensions ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_reset_zeroes_all_attributes ... ok
[INFO] [stdout] test layout::tests::status_bar_y_is_flush_with_bottom_of_area ... ok
[INFO] [stdout] test claude::socket::tests::socket_cleaned_up_on_drop ... ok
[INFO] [stdout] test layout::tests::all_vertical_regions_sum_to_area_height ... ok
[INFO] [stdout] test pty::buffer::tests::move_cursor_to_exact_position ... ok
[INFO] [stdout] test pty::buffer::tests::move_cursor_to_clamps_row_to_rows_minus_one ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_line_mode_0_clears_from_cursor_to_end ... ok
[INFO] [stdout] test pty::buffer::tests::new_cursor_starts_at_origin ... ok
[INFO] [stdout] test pty::buffer::tests::newline_at_bottom_scrolls_and_preserves_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::newline_not_at_bottom_moves_cursor_down ... ok
[INFO] [stdout] test pty::buffer::tests::process_bytes_erase_display_2j_clears_screen ... ok
[INFO] [stdout] test pty::buffer::tests::put_char_at_col_boundary_wraps_to_next_line ... ok
[INFO] [stdout] test pty::buffer::tests::put_char_advances_cursor_col ... ok
[INFO] [stdout] test pty::buffer::tests::process_bytes_sgr_color_sequence ... ok
[INFO] [stdout] test pty::buffer::tests::scroll_up_inserts_blank_row_at_bottom ... ok
[INFO] [stdout] test pty::buffer::tests::new_scroll_region_covers_full_screen ... ok
[INFO] [stdout] test pty::buffer::tests::tab_advances_to_next_multiple_of_8_from_col_3 ... ok
[INFO] [stdout] test pty::buffer::tests::process_bytes_plain_text_appears_on_grid ... ok
[INFO] [stdout] test pty::buffer::tests::tab_advances_to_next_multiple_of_8_from_col_8 ... ok
[INFO] [stdout] test pty::buffer::tests::tab_advances_to_next_multiple_of_8_from_col_0 ... ok
[INFO] [stdout] test pty::buffer::tests::scroll_up_moves_top_row_to_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::tab_clamps_at_last_col ... ok
[INFO] [stdout] test pty::keys::tests::arrow_left_encodes_as_esc_bracket_d ... ok
[INFO] [stdout] test pty::keys::tests::arrow_right_encodes_as_esc_bracket_c ... ok
[INFO] [stdout] test pty::keys::tests::arrow_up_encodes_as_esc_bracket_a ... ok
[INFO] [stdout] test pty::keys::tests::backspace_encodes_as_del_byte ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_a_encodes_as_byte_1 ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_c_encodes_as_byte_3 ... ok
[INFO] [stdout] test pty::buffer::tests::put_char_writes_to_current_position ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_uppercase_c_also_encodes_as_byte_3 ... ok
[INFO] [stdout] test pty::keys::tests::arrow_down_encodes_as_esc_bracket_b ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_z_encodes_as_byte_26 ... ok
[INFO] [stdout] test pty::keys::tests::escape_encodes_as_byte_27 ... ok
[INFO] [stdout] test pty::keys::tests::f1_encodes_as_esc_o_p ... ok
[INFO] [stdout] test pty::keys::tests::regular_char_a_encodes_as_byte_97 ... ok
[INFO] [stdout] test pty::keys::tests::regular_char_z_encodes_correctly ... ok
[INFO] [stdout] test pty::keys::tests::shift_up_encodes_with_modifier_code_2 ... ok
[INFO] [stdout] test pty::keys::tests::unknown_key_returns_none ... ok
[INFO] [stdout] test terminal_panel::tests::active_pane_id_on_empty_returns_none ... ok
[INFO] [stdout] test pty::keys::tests::f5_encodes_as_esc_bracket_15_tilde ... ok
[INFO] [stdout] test terminal_panel::tests::active_pane_id_returns_pane_of_active_terminal ... ok
[INFO] [stdout] test session::tests::load_returns_none_when_file_missing ... ok
[INFO] [stdout] test session::tests::save_creates_dot_turbomux_directory ... ok
[INFO] [stdout] test session::tests::load_returns_none_on_empty_file ... ok
[INFO] [stdout] test session::tests::zero_terminals_saved_produces_empty_vec ... ok
[INFO] [stdout] test session::tests::backward_compat_old_file_without_any_known_field ... ok
[INFO] [stdout] test session::tests::load_returns_none_on_corrupt_json ... ok
[INFO] [stdout] test session::tests::save_and_load_round_trip_terminals ... ok
[INFO] [stdout] test session::tests::backward_compat_old_file_without_terminals_field ... ok
[INFO] [stdout] test session::tests::save_and_load_round_trip_editor_files ... ok
[INFO] [stdout] test session::tests::nonexistent_terminal_cwd_falls_back_to_project_root ... ok
[INFO] [stdout] test pty::keys::tests::enter_encodes_as_carriage_return ... ok
[INFO] [stdout] test terminal_panel::tests::next_terminal_on_empty_panel_does_not_panic ... ok
[INFO] [stdout] test terminal_panel::tests::next_terminal_wraps_around_to_zero ... ok
[INFO] [stdout] test terminal_panel::tests::new_active_terminal_starts_at_zero ... ok
[INFO] [stdout] test terminal_panel::tests::next_terminal_advances_index ... ok
[INFO] [stdout] test terminal_panel::tests::new_creates_empty_panel ... ok
[INFO] [stdout] test terminal_panel::tests::new_split_mode_is_single ... ok
[INFO] [stdout] test config::tests::detect_prefers_visual_over_editor ... FAILED
[INFO] [stdout] test config::tests::detect_falls_back_to_vim_when_env_unset ... FAILED
[INFO] [stdout] test terminal_panel::tests::next_then_prev_returns_to_original_index ... ok
[INFO] [stdout] test terminal_panel::tests::owns_pane_returns_false_for_unknown_pane_id ... ok
[INFO] [stdout] test terminal_panel::tests::owns_pane_returns_false_when_panel_is_empty ... ok
[INFO] [stdout] test terminal_panel::tests::owns_pane_returns_true_for_known_pane ... ok
[INFO] [stdout] test terminal_panel::tests::prev_terminal_decrements_index ... ok
[INFO] [stdout] test terminal_panel::tests::prev_terminal_on_empty_panel_does_not_panic ... ok
[INFO] [stdout] test terminal_panel::tests::toggle_split_horizontal_becomes_single ... ok
[INFO] [stdout] test terminal_panel::tests::prev_terminal_wraps_around_to_last ... ok
[INFO] [stdout] test terminal_panel::tests::toggle_split_single_becomes_horizontal ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- config::tests::detect_prefers_visual_over_editor stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'config::tests::detect_prefers_visual_over_editor' (1778) panicked at src/config.rs:100:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "vim"
[INFO] [stdout]  right: "emacs"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x599af87a23a8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x599af87a23a8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x599af87a23a8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x599af87a23a8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x599af87b9a7a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x599af87b9a7a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x599af87a7972 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x599af87a7972 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x599af877de96 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x599af877de96 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x599af87994b9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x599af8653a3c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x599af8653a3c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x599af8799672 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x599af8799672 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x599af877df52 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x599af87727c9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x599af877ef1d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x599af87ba26c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x599af87ba0f3 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x599af84a54e8 - core[8fb95b77d25ab6c8]::panicking::assert_failed::<alloc[a7ee25936407c584]::string::String, &str>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x599af8519711 - turbomux[9e5406cee68a3920]::config::tests::detect_prefers_visual_over_editor
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:100:9
[INFO] [stdout]   22:     0x599af8512b97 - turbomux[9e5406cee68a3920]::config::tests::detect_prefers_visual_over_editor::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:93:43
[INFO] [stdout]   23:     0x599af8505ce6 - <turbomux[9e5406cee68a3920]::config::tests::detect_prefers_visual_over_editor::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x599af8646b1b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x599af8646b1b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x599af8654395 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x599af8654395 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x599af8654395 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x599af8654395 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x599af8654395 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x599af8654395 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x599af8654395 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x599af864dca4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x599af864dca4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x599af8657412 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x599af8657412 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x599af8657412 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x599af8657412 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x599af8657412 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x599af8657412 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x599af8657412 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x599af87a17cf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x599af87a17cf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x77d10fd7eaa4 - <unknown>
[INFO] [stdout]   45:     0x77d10fe0ba64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- config::tests::detect_falls_back_to_vim_when_env_unset stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'config::tests::detect_falls_back_to_vim_when_env_unset' (1777) panicked at src/config.rs:74:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "nano"
[INFO] [stdout]  right: "vim"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x599af87a23a8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x599af87a23a8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x599af87a23a8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x599af87a23a8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x599af87b9a7a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x599af87b9a7a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x599af87a7972 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x599af87a7972 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x599af877de96 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x599af877de96 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x599af87994b9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x599af8653a3c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x599af8653a3c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x599af8799672 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x599af8799672 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x599af877df52 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x599af87727c9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x599af877ef1d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x599af87ba26c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x599af87ba0f3 - core[8fb95b77d25ab6c8]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x599af84a54e8 - core[8fb95b77d25ab6c8]::panicking::assert_failed::<alloc[a7ee25936407c584]::string::String, &str>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x599af8519cd4 - turbomux[9e5406cee68a3920]::config::tests::detect_falls_back_to_vim_when_env_unset
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:74:9
[INFO] [stdout]   22:     0x599af8512c27 - turbomux[9e5406cee68a3920]::config::tests::detect_falls_back_to_vim_when_env_unset::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:66:49
[INFO] [stdout]   23:     0x599af8505da6 - <turbomux[9e5406cee68a3920]::config::tests::detect_falls_back_to_vim_when_env_unset::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x599af8646b1b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x599af8646b1b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x599af8654395 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x599af8654395 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x599af8654395 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x599af8654395 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x599af8654395 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x599af8654395 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x599af8654395 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x599af864dca4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x599af864dca4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x599af8657412 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x599af8657412 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x599af8657412 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x599af8657412 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x599af8657412 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x599af8657412 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x599af8657412 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x599af87a17cf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x599af87a17cf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x77d10fd7eaa4 - <unknown>
[INFO] [stdout]   45:     0x77d10fe0ba64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     config::tests::detect_falls_back_to_vim_when_env_unset
[INFO] [stdout]     config::tests::detect_prefers_visual_over_editor
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 296 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344", kill_on_drop: false }`
[INFO] [stdout] 0e3c85dba4fdb7a295d9493108f8bcfac39c85f93fc8bebae3c9b8f17b2b6344
