[INFO] cloning repository https://github.com/ayourtch-llm/tttt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ayourtch-llm/tttt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fayourtch-llm%2Ftttt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fayourtch-llm%2Ftttt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bf3b8c31fbf907f3621d4c46364a6cb4cf070138
[INFO] testing ayourtch-llm/tttt against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fayourtch-llm%2Ftttt" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ayourtch-llm/tttt
[INFO] finished tweaking git repo https://github.com/ayourtch-llm/tttt
[INFO] tweaked toml for git repo https://github.com/ayourtch-llm/tttt written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ayourtch-llm/tttt on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ayourtch-llm/tttt already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vte_generate_state_changes v0.1.2
[INFO] [stderr]   Downloaded vte v0.11.1
[INFO] [stderr]   Downloaded landlock v0.4.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9f550e4681c4ea50eca92a34a8bd533177cc60346f5b39b6b51d40cb5cc40e01
[INFO] running `Command { std: "docker" "start" "-a" "9f550e4681c4ea50eca92a34a8bd533177cc60346f5b39b6b51d40cb5cc40e01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f550e4681c4ea50eca92a34a8bd533177cc60346f5b39b6b51d40cb5cc40e01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f550e4681c4ea50eca92a34a8bd533177cc60346f5b39b6b51d40cb5cc40e01", kill_on_drop: false }`
[INFO] [stdout] 9f550e4681c4ea50eca92a34a8bd533177cc60346f5b39b6b51d40cb5cc40e01
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9f316733e6b0bd9725db9ea865a7af23fc994a442aabcbd89122f6bd47bf997c
[INFO] running `Command { std: "docker" "start" "-a" "9f316733e6b0bd9725db9ea865a7af23fc994a442aabcbd89122f6bd47bf997c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling phf_shared v0.12.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling unicode-segmentation v1.13.1
[INFO] [stderr]    Compiling chrono-tz v0.10.4
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling phf v0.12.1
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling vte v0.11.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling tttt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling vt100 v0.15.2 (/opt/rustwide/workdir/crates/vt100)
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling ioctl-rs v0.1.6
[INFO] [stderr]    Compiling serial-core v0.4.0
[INFO] [stderr]    Compiling termios v0.2.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling nix v0.25.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling serial-unix v0.4.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serial v0.4.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[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 serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling landlock v0.4.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling portable-pty v0.8.1
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling tttt-sandbox v0.1.0 (/opt/rustwide/workdir/crates/tttt-sandbox)
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling tttt-pty v0.1.0 (/opt/rustwide/workdir/crates/tttt-pty)
[INFO] [stderr]    Compiling tttt-scheduler v0.1.0 (/opt/rustwide/workdir/crates/tttt-scheduler)
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tttt-tui v0.1.0 (/opt/rustwide/workdir/crates/tttt-tui)
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tttt-log v0.1.0 (/opt/rustwide/workdir/crates/tttt-log)
[INFO] [stderr]    Compiling tttt-mcp v0.1.0 (/opt/rustwide/workdir/crates/tttt-mcp)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.02s
[INFO] running `Command { std: "docker" "inspect" "9f316733e6b0bd9725db9ea865a7af23fc994a442aabcbd89122f6bd47bf997c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f316733e6b0bd9725db9ea865a7af23fc994a442aabcbd89122f6bd47bf997c", kill_on_drop: false }`
[INFO] [stdout] 9f316733e6b0bd9725db9ea865a7af23fc994a442aabcbd89122f6bd47bf997c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 94f3a3d75c985286b3ebf867521e5f8723e1711545d5d8d6804e4d29d6e3024a
[INFO] running `Command { std: "docker" "start" "-a" "94f3a3d75c985286b3ebf867521e5f8723e1711545d5d8d6804e4d29d6e3024a", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tttt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> tests/mcp_tui_integration.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::{Arc, Mutex};
[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 variable: `i`
[INFO] [stdout]    --> tests/interactive_simulation.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |     for i in 0..3 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diff`
[INFO] [stdout]    --> tests/screen_rendering.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let diff = parser.screen().contents_diff(&initial);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_diff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/screen_rendering.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |     let mut mock = MockPty::new(40, 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: unused variable: `total_cols`
[INFO] [stdout]    --> tests/screen_rendering.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let total_cols: u16 = pty_cols + sidebar_width;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_cols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.92s
[INFO] running `Command { std: "docker" "inspect" "94f3a3d75c985286b3ebf867521e5f8723e1711545d5d8d6804e4d29d6e3024a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94f3a3d75c985286b3ebf867521e5f8723e1711545d5d8d6804e4d29d6e3024a", kill_on_drop: false }`
[INFO] [stdout] 94f3a3d75c985286b3ebf867521e5f8723e1711545d5d8d6804e4d29d6e3024a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 00c3e2606e303de940faba2c69dea02ff4c34ddc00aed6be3678afaa1cba2020
[INFO] running `Command { std: "docker" "start" "-a" "00c3e2606e303de940faba2c69dea02ff4c34ddc00aed6be3678afaa1cba2020", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `diff`
[INFO] [stderr]    --> tests/screen_rendering.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let diff = parser.screen().contents_diff(&initial);
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_diff`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/screen_rendering.rs:192:9
[INFO] [stderr]     |
[INFO] [stderr] 192 |     let mut mock = MockPty::new(40, 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 variable: `total_cols`
[INFO] [stderr]    --> tests/screen_rendering.rs:317:9
[INFO] [stderr]     |
[INFO] [stderr] 317 |     let total_cols: u16 = pty_cols + sidebar_width;
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_cols`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc` and `Mutex`
[INFO] [stderr]  --> tests/mcp_tui_integration.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> tests/interactive_simulation.rs:207:9
[INFO] [stderr]     |
[INFO] [stderr] 207 |     for i in 0..3 {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `tttt` (test "screen_rendering") generated 3 warnings (run `cargo fix --test "screen_rendering" -p tttt` to apply 3 suggestions)
[INFO] [stderr] warning: `tttt` (test "mcp_tui_integration") generated 1 warning (run `cargo fix --test "mcp_tui_integration" -p tttt` to apply 1 suggestion)
[INFO] [stderr] warning: `tttt` (test "interactive_simulation") generated 1 warning (run `cargo fix --test "interactive_simulation" -p tttt` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tttt-72ea607e41f98288)
[INFO] [stdout] running 269 tests
[INFO] [stdout] test app::tests::test_calculate_min_dimensions_larger_viewer_clamped ... ok
[INFO] [stdout] test app::tests::test_calculate_min_dimensions_no_viewers ... ok
[INFO] [stdout] test app::tests::test_calculate_pane_dimensions_basic ... ok
[INFO] [stdout] test app::tests::test_calculate_pane_dimensions_saturates_cols ... ok
[INFO] [stdout] test app::tests::test_calculate_pane_dimensions_saturates_rows ... ok
[INFO] [stdout] test app::tests::test_compute_exit_action_exited_with_fallback ... ok
[INFO] [stdout] test app::tests::test_compute_exit_action_all_exited ... ok
[INFO] [stdout] test app::tests::test_compute_exit_action_no_active_session ... ok
[INFO] [stdout] test app::tests::test_calculate_pane_dimensions_zero_sidebar ... ok
[INFO] [stdout] test app::tests::test_calculate_min_dimensions_smaller_viewer ... ok
[INFO] [stdout] test app::tests::test_compute_exit_action_skips_self_in_fallback ... ok
[INFO] [stdout] test app::tests::test_compute_exit_action_still_running ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_backward ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_backward_wrap ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_empty_returns_none ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_none_current_treated_as_zero ... ok
[INFO] [stdout] test app::tests::test_compute_render_ids_active_plus_pinned_in_order ... ok
[INFO] [stdout] test app::tests::test_compute_render_ids_dedupes_active_when_pinned ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_single_element ... ok
[INFO] [stdout] test app::tests::test_compute_render_ids_no_active_returns_only_pinned ... ok
[INFO] [stdout] test app::tests::test_copy_to_clipboard_empty_text ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_dump_diagnostics ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_detach ... ok
[INFO] [stdout] test app::tests::test_copy_to_clipboard_osc52_format ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_prev_terminal ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_reload ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_redraw ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_show_ctrl_c_hint ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_switch_terminal ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_show_help ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_toggle_sticky_active ... ok
[INFO] [stdout] test app::tests::test_format_diagnostic_dump_renders_buffer_content ... ok
[INFO] [stdout] test app::tests::test_format_diagnostic_dump_renders_session_fields ... ok
[INFO] [stdout] test app::tests::test_format_diagnostic_dump_includes_raw_formatted_bytes ... ok
[INFO] [stdout] test app::tests::test_format_diagnostic_dump_contains_expected_headings ... ok
[INFO] [stdout] test app::tests::test_format_diagnostic_dump_includes_selection_when_present ... ok
[INFO] [stdout] test app::tests::test_calculate_min_dimensions_multiple_viewers ... ok
[INFO] [stdout] test app::tests::test_format_diagnostic_dump_renders_all_sessions_listing ... ok
[INFO] [stdout] test app::tests::test_grid_four_panes_makes_2x2 ... ok
[INFO] [stdout] test app::tests::test_grid_handles_tall_container ... ok
[INFO] [stdout] test app::tests::test_grid_satisfies_capacity ... ok
[INFO] [stdout] test app::tests::test_grid_single_pane_is_1x1 ... ok
[INFO] [stdout] test app::tests::test_grid_six_panes_in_wide_container_makes_2x3 ... ok
[INFO] [stdout] test app::tests::test_grid_three_panes_picks_close_aspect ... ok
[INFO] [stdout] test app::tests::test_grid_two_panes_in_wide_container_are_side_by_side ... ok
[INFO] [stdout] test app::tests::test_help_popup_area_centered_large_terminal ... ok
[INFO] [stdout] test app::tests::test_help_popup_area_centered_standard_terminal ... ok
[INFO] [stdout] test app::tests::test_help_popup_area_clamped_when_terminal_too_small ... ok
[INFO] [stdout] test app::tests::test_help_popup_area_prefix_appears_in_help_text ... ok
[INFO] [stdout] test app::tests::test_help_popup_area_prefix_appears_twice_for_literal_prefix ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_forward ... ok
[INFO] [stdout] test app::tests::test_compute_relative_index_forward_wrap ... ok
[INFO] [stdout] test app::tests::test_copy_to_clipboard_unicode ... ok
[INFO] [stdout] test app::tests::test_pane_offset_clamped_to_max ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_create_terminal ... ok
[INFO] [stdout] test app::tests::test_pane_offset_scrolls_just_enough_for_cursor ... ok
[INFO] [stdout] test app::tests::test_pane_offset_zero_when_area_fits_pty ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_next_terminal ... ok
[INFO] [stdout] test app::tests::test_prefix_key_name_ctrl_b ... ok
[INFO] [stdout] test app::tests::test_pane_offset_zero_height_area ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_pass_through ... ok
[INFO] [stdout] test app::tests::test_prefix_key_name_ctrl_a ... ok
[INFO] [stdout] test app::tests::test_prefix_key_name_ctrl_backslash ... ok
[INFO] [stdout] test app::tests::test_reconcile_add_and_remove_simultaneously ... ok
[INFO] [stdout] test app::tests::test_reconcile_appends_new_ids ... ok
[INFO] [stdout] test app::tests::test_reconcile_empty_actual_returns_empty ... ok
[INFO] [stdout] test app::tests::test_reconcile_empty_current_returns_actual ... ok
[INFO] [stdout] test app::tests::test_prefix_key_name_unknown_key ... ok
[INFO] [stdout] test app::tests::test_render_frame_layout_exact_sidebar_width ... ok
[INFO] [stdout] test app::tests::test_render_frame_layout_standard ... ok
[INFO] [stdout] test app::tests::test_selection_scroll_compensation_new_output ... ok
[INFO] [stdout] test app::tests::test_selection_scroll_compensation_no_new_output ... ok
[INFO] [stdout] test app::tests::test_selection_scroll_compensation_no_selection_base ... ok
[INFO] [stdout] test app::tests::test_render_frame_layout_zero_sidebar ... ok
[INFO] [stdout] test app::tests::test_selection_scroll_compensation_with_manual_scroll ... ok
[INFO] [stdout] test app::tests::test_should_render_now_burst_ended ... ok
[INFO] [stdout] test app::tests::test_should_render_now_burst_still_active ... ok
[INFO] [stdout] test app::tests::test_grid_nine_panes_makes_3x3 ... ok
[INFO] [stdout] test app::tests::test_layout_four_panes_form_2x2_with_disjoint_cells ... ok
[INFO] [stdout] test app::tests::test_should_render_now_max_latency_exceeded_during_burst ... ok
[INFO] [stdout] test app::tests::test_should_render_now_not_dirty_returns_false ... ok
[INFO] [stdout] test app::tests::test_should_render_now_within_debounce_no_max_latency ... ok
[INFO] [stdout] test app::tests::test_toggle_adds_when_absent ... ok
[INFO] [stdout] test app::tests::test_toggle_on_active_makes_it_sticky ... ok
[INFO] [stdout] test app::tests::test_layout_single_pane_takes_full_grid_area ... ok
[INFO] [stdout] test app::tests::test_render_frame_layout_narrow_terminal_sidebar_wins ... ok
[INFO] [stdout] test app::tests::test_layout_zero_panes_has_empty_pane_rects ... ok
[INFO] [stdout] test app::tests::test_compute_render_ids_active_only_when_visible_empty ... ok
[INFO] [stdout] test app::tests::test_pane_offset_zero_when_cursor_in_top_window ... ok
[INFO] [stdout] test app::tests::test_decide_input_action_prefix_escape ... ok
[INFO] [stdout] test app::tests::test_reconcile_preserves_existing_order ... ok
[INFO] [stdout] test app::tests::test_layout_three_panes_last_row_spans_remaining_columns ... ok
[INFO] [stdout] test app::tests::test_should_render_now_no_last_pty_data_burst_ended ... ok
[INFO] [stdout] test app::tests::test_reconcile_removes_stale_ids ... ok
[INFO] [stdout] test app::tests::test_toggle_removes_when_present ... ok
[INFO] [stdout] test attach::tests::test_bracketed_paste_across_multiple_reads ... ok
[INFO] [stdout] test attach::tests::test_end_sequence_split_across_reads ... ok
[INFO] [stdout] test attach::tests::test_invalid_bracketed_end_sequence ... ok
[INFO] [stdout] test attach::tests::test_invalid_end_sequence_during_paste ... ok
[INFO] [stdout] test attach::tests::test_malformed_start_sequence ... ok
[INFO] [stdout] test attach::tests::test_normal_input_no_paste ... ok
[INFO] [stdout] test attach::tests::test_prefix_key_after_bracketed_paste_triggers_detach ... ok
[INFO] [stdout] test attach::tests::test_prefix_key_in_bracketed_paste_ignored ... ok
[INFO] [stdout] test attach::tests::test_prefix_key_in_text_triggers_detach ... ok
[INFO] [stdout] test attach::tests::test_prefix_key_triggers_detach ... ok
[INFO] [stdout] test attach::tests::test_real_world_paste_scenario ... ok
[INFO] [stdout] test config::tests::test_config_default ... ok
[INFO] [stdout] test config::tests::test_config_display_config ... ok
[INFO] [stdout] test config::tests::test_config_log_input_can_be_enabled ... ok
[INFO] [stdout] test config::tests::test_config_from_toml ... ok
[INFO] [stdout] test config::tests::test_config_load_default_returns_defaults ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_kill_all ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_launch_default ... ok
[INFO] [stdout] test config::tests::test_config_partial_toml ... ok
[INFO] [stdout] test config::tests::test_config_log_input_default_false ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_launch_with_args ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_kill_session ... ok
[INFO] [stdout] test config::tests::test_config_serialization_roundtrip ... ok
[INFO] [stdout] test ctl::tests::test_call_tool_sends_correct_json_rpc ... ok
[INFO] [stdout] test app::tests::test_toggle_unsticks_active_when_already_sticky ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_has_session ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_list ... ok
[INFO] [stdout] test attach::tests::test_incomplete_bracketed_paste ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_scrollback_default_lines ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_resize ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_wait_idle_defaults ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_wait_pattern ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_notify_list ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_status ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_notify_on_pattern ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_send_enter ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_socket_path ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_send_text ... ok
[INFO] [stdout] test ctl::tests::test_extract_text_content_array ... ok
[INFO] [stdout] test ctl::tests::test_extract_text_empty_content_array ... ok
[INFO] [stdout] test ctl::tests::test_extract_text_raw_result_fallback ... ok
[INFO] [stdout] test ctl::tests::test_extract_text_error_response ... ok
[INFO] [stdout] test ctl::tests::test_extract_text_screen_field ... ok
[INFO] [stdout] test ctl::tests::test_glob_match_no_wildcard ... ok
[INFO] [stdout] test ctl::tests::test_cli_parse_notify_cancel ... ok
[INFO] [stdout] test ctl::tests::test_extract_text_prefers_content_over_screen ... ok
[INFO] [stdout] test ctl::tests::test_glob_match_multiple_wildcards ... ok
[INFO] [stdout] test ctl::tests::test_glob_match_prefix_suffix ... ok
[INFO] [stdout] test ctl::tests::test_glob_match_star_only ... ok
[INFO] [stdout] test ctl::tests::test_next_id_increments ... ok
[INFO] [stdout] test ctl::tests::test_parse_session_id_bare_number ... ok
[INFO] [stdout] test ctl::tests::test_parse_session_id_empty ... ok
[INFO] [stdout] test ctl::tests::test_parse_session_id_invalid_letters ... ok
[INFO] [stdout] test ctl::tests::test_mcp_connection_initialize_handshake ... ok
[INFO] [stdout] test ctl::tests::test_parse_session_id_pty_prefix ... ok
[INFO] [stdout] test ctl::tests::test_recv_msg_reads_length_prefixed ... ok
[INFO] [stdout] test ctl::tests::test_send_empty_payload ... ok
[INFO] [stdout] test ctl::tests::test_parse_session_id_negative_rejected ... ok
[INFO] [stdout] test ctl::tests::test_send_msg_length_prefix ... ok
[INFO] [stdout] test app::tests::test_layout_pane_rects_partition_grid_area ... ok
[INFO] [stdout] test attach::tests::test_incomplete_escape_sequence ... ok
[INFO] [stdout] test app::tests::test_compute_render_ids_orders_by_session_order_not_visible ... ok
[INFO] [stdout] test ctl::tests::test_send_recv_roundtrip ... ok
[INFO] [stdout] test reload::tests::test_saved_state_roundtrip ... ok
[INFO] [stdout] test reload::tests::test_saved_state_file_roundtrip ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_descending_with_separators ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_null_pid_orphan_not_split_when_continuous ... ok
[INFO] [stdout] test replay_tui::tests::test_bold_conversion ... ok
[INFO] [stdout] test app::tests::test_layout_hint_does_not_overlap_panes ... ok
[INFO] [stdout] test config::tests::test_config_load_nonexistent ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_pid_and_null_pid_separate ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_orphan_inferred_info ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_no_orphans ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_null_pid_orphan_split_on_gap ... ok
[INFO] [stdout] test replay_tui::tests::test_color_conversion_default ... ok
[INFO] [stdout] test replay_tui::tests::test_color_conversion_indexed ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_empty ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_exact_threshold_not_split ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_gap_detected ... ok
[INFO] [stdout] test replay_tui::tests::test_color_conversion_rgb ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_multiple_gaps ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_no_gap ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_single ... ok
[INFO] [stdout] test replay_tui::tests::test_compute_separator_positions_gap_uses_started_when_no_end ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_with_orphan ... ok
[INFO] [stdout] test replay_tui::tests::test_build_session_list_sorted_by_start_time ... ok
[INFO] [stdout] test replay_tui::tests::test_enter_maps_visual_to_session_idx ... ok
[INFO] [stdout] test replay_tui::tests::test_format_duration_ms_zero ... ok
[INFO] [stdout] test replay_tui::tests::test_format_timestamp_ms_zero ... ok
[INFO] [stdout] test replay_tui::tests::test_format_timestamp_ms_nonzero ... ok
[INFO] [stdout] test replay_tui::tests::test_format_duration_ms_none ... ok
[INFO] [stdout] test replay_tui::tests::test_format_duration_ms_ninety_seconds ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_bracket_right_jumps_10_forward ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_down_arrow_moves_down ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_capital_g_seeks_to_end ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_end_seeks_to_end ... ok
[INFO] [stdout] test replay_tui::tests::test_empty_screen_to_lines ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_enter_with_no_sessions_does_nothing ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_enter_opens_session ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_equals_increases_speed ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_bracket_left_jumps_10_backward ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_g_seeks_to_start ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_esc_in_replay_returns_to_list ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_esc_in_session_list_quits ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_k_moves_up ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_j_moves_down ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_h_steps_backward ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_l_steps_forward ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_home_seeks_to_start ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_minus_decreases_speed ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_plus_increases_speed ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_q_in_replay_returns_to_list ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_left_at_start_stays_at_zero ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_q_in_session_list_quits ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_space_toggles_playing_off ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_left_after_right_goes_back ... ok
[INFO] [stdout] test replay_tui::tests::test_move_down_skips_separator ... ok
[INFO] [stdout] test replay_tui::tests::test_move_up_skips_separator ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_space_toggles_playing_on ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_left_disables_playing ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_right_steps_forward ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_up_arrow_moves_up ... ok
[INFO] [stdout] test replay_tui::tests::test_playback_advance_step_forward ... ok
[INFO] [stdout] test replay_tui::tests::test_load_session_creates_replay_view ... ok
[INFO] [stdout] test replay_tui::tests::test_italic_conversion ... ok
[INFO] [stdout] test replay_tui::tests::test_open_entry_time_range_loads_correct_chunk ... ok
[INFO] [stdout] test replay_tui::tests::test_plain_text_conversion ... ok
[INFO] [stdout] test replay_tui::tests::test_handle_key_right_disables_playing ... ok
[INFO] [stdout] test replay_tui::tests::test_render_replay_event_count ... ok
[INFO] [stdout] test replay_tui::tests::test_render_replay_speed ... ok
[INFO] [stdout] test replay_tui::tests::test_render_replay_paused_icon ... ok
[INFO] [stdout] test diag::tests::test_diag_empty_session ... ok
[INFO] [stdout] test replay_tui::tests::test_replay_app_initial_not_playing ... ok
[INFO] [stdout] test diag::tests::test_diag_csi_greater_1u_is_handled ... ok
[INFO] [stdout] test replay_tui::tests::test_replay_app_missing_session_errors ... ok
[INFO] [stdout] test replay_tui::tests::test_replay_app_new_empty_sessions ... ok
[INFO] [stdout] test diag::tests::test_diag_input_events_ignored ... ok
[INFO] [stdout] test replay_tui::tests::test_resolve_session_info_missing ... ok
[INFO] [stdout] test replay_tui::tests::test_resolve_session_info_orphan_fallback ... ok
[INFO] [stdout] test replay_tui::tests::test_resolve_session_info_registered ... ok
[INFO] [stdout] test replay_tui::tests::test_screen_size_matches_session_dimensions ... ok
[INFO] [stdout] test replay_tui::tests::test_selected_session_idx_on_separator_row ... ok
[INFO] [stdout] test replay_tui::tests::test_replay_app_new_starts_at_session_list_when_no_initial ... ok
[INFO] [stdout] test replay_tui::tests::test_selected_session_idx_on_session_row ... ok
[INFO] [stdout] test replay_tui::tests::test_render_replay_playing_icon ... ok
[INFO] [stdout] test replay_tui::tests::test_render_session_list_shows_title ... ok
[INFO] [stdout] test replay_tui::tests::test_session_list_entry_creation ... ok
[INFO] [stdout] test replay_tui::tests::test_replay_app_can_open_orphan_session ... ok
[INFO] [stdout] test replay_tui::tests::test_separator_visual_indices_one ... ok
[INFO] [stdout] test diag::tests::test_diag_first_offset ... ok
[INFO] [stdout] test replay_tui::tests::test_session_list_state_new_with_separator ... ok
[INFO] [stdout] test replay_tui::tests::test_speed_adjustment_max ... ok
[INFO] [stdout] test replay_tui::tests::test_separator_visual_indices_two ... ok
[INFO] [stdout] test replay_tui::tests::test_speed_doubles_from_one ... ok
[INFO] [stdout] test replay_tui::tests::test_session_list_state_new_no_separators ... ok
[INFO] [stdout] test replay_tui::tests::test_visual_to_session_idx_after_separator ... ok
[INFO] [stdout] test replay_tui::tests::test_visual_to_session_idx_no_seps ... ok
[INFO] [stdout] test replay_tui::tests::test_speed_adjustment_min ... ok
[INFO] [stdout] test replay_tui::tests::test_separator_visual_indices_empty ... ok
[INFO] [stdout] test replay_tui::tests::test_visual_to_session_idx_separator_returns_none ... ok
[INFO] [stdout] test replay_tui::tests::test_render_session_list_shows_session_command ... ok
[INFO] [stdout] test replay_tui::tests::test_replay_app_new_with_initial_session ... ok
[INFO] [stdout] test diag::tests::test_diag_unhandled_decset_9999 ... ok
[INFO] [stdout] test replay_tui::tests::test_span_coalescing ... ok
[INFO] [stdout] test replay_tui::tests::test_speed_halves_from_one ... ok
[INFO] [stdout] test replay_tui::tests::test_underline_conversion ... ok
[INFO] [stdout] test replay_tui::tests::test_wide_char_handling ... ok
[INFO] [stdout] test replay_tui::tests::test_render_replay_shows_command ... ok
[INFO] [stdout] test diag::tests::test_diag_plain_text_no_unhandled ... ok
[INFO] [stdout] test diag::tests::test_diag_count_deduplication ... ok
[INFO] [stdout] test diag::tests::test_diag_unhandled_osc_133 ... ok
[INFO] [stdout] test replay_tui::tests::test_render_session_list_with_separator ... ok
[INFO] [stdout] test replay_tui::tests::test_render_session_list_shows_pid_column ... ok
[INFO] [stdout] test replay_tui::tests::test_render_session_list_shows_header ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 269 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cursor_movement.rs (/opt/rustwide/target/debug/deps/cursor_movement-77a4c6593845e592)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_right_arrow_at_end ... ok
[INFO] [stdout] test test_left_then_right_arrow ... ok
[INFO] [stdout] test test_backspace_deletes_chars ... ok
[INFO] [stdout] test test_left_arrow_and_insert ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_pty.rs (/opt/rustwide/target/debug/deps/e2e_pty-d32834bf67dabb69)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_e2e_help ... ok
[INFO] [stdout] test test_e2e_custom_command ... ok
[INFO] [stdout] test test_e2e_tui_start_and_detach ... ok
[INFO] [stdout] test test_e2e_mcp_server ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_e2e_mcp_server stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_e2e_mcp_server' (301) panicked at tests/e2e_pty.rs:94:5:
[INFO] [stdout] should list tools: "putSchema\":{\"properties\":{\"command\":{\"description\":\"Message to inject into the target session when the cron fires. An [ENTER] is always appended automatically to submit the message.\",\"type\":\"string\"},\"expression\":{\"description\":\"Interval expression: cron-style ('*/1 * * * *', '*/5'), compact ('30s', '5m', '1h'), or human ('every 30 seconds', 'every 2 minutes')\",\"type\":\"string\"},\"if_busy\":{\"description\":\"What to do if the target session is busy (user typing). 'drop' (default) silently skips the message. 'wait' defers injection until the session is idle.\",\"enum\":[\"drop\",\"wait\"],\"type\":\"string\"},\"session_id\":{\"description\":\"Target session ID or name. If omitted, defaults to the first (oldest) session.\",\"type\":\"string\"}},\"required\":[\"expression\",\"command\"],\"type\":\"object\"},\"name\":\"tttt_cron_create\"},{\"description\":\"List all cron jobs\",\"inputSchema\":{\"properties\":{},\"type\":\"object\"},\"name\":\"tttt_cron_list\"},{\"description\":\"Delete a cron job\",\"inputSchema\":{\"properties\":{\"job_id\":{\"description\":\"ID of the cron job to delete\",\"type\":\"string\"}},\"required\":[\"job_id\"],\"type\":\"object\"},\"name\":\"tttt_cron_delete\"},{\"description\":\"Write or append content to a named scratchpad key. Use for private working notes.\",\"inputSchema\":{\"properties\":{\"append\":{\"description\":\"Append to existing content instead of overwriting (default: false)\",\"type\":\"boolean\"},\"content\":{\"description\":\"Content to write\",\"type\":\"string\"},\"key\":{\"description\":\"Scratchpad key name\",\"type\":\"string\"}},\"required\":[\"key\",\"content\"],\"type\":\"object\"},\"name\":\"tttt_scratchpad_write\"},{\"description\":\"Read content from a named scratchpad key.\",\"inputSchema\":{\"properties\":{\"key\":{\"description\":\"Scratchpad key name\",\"type\":\"string\"}},\"required\":[\"key\"],\"type\":\"object\"},\"name\":\"tttt_scratchpad_read\"}]}}"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64d9e20b3d0a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x64d9e20b3d0a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x64d9e20b3d0a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x64d9e20b3d0a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x64d9e20c91da - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x64d9e20c91da - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x64d9e20b9152 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x64d9e20b9152 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x64d9e2091c4f - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x64d9e2091c4f - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x64d9e20abea9 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x64d9e1fdfabc - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x64d9e1fdfabc - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x64d9e20ac062 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x64d9e20ac062 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x64d9e2091d08 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x64d9e20868f9 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x64d9e2092b0d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x64d9e20c999c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x64d9e1faec02 - e2e_pty[d24b166aa3ec792a]::test_e2e_mcp_server
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_pty.rs:94:5
[INFO] [stdout]   20:     0x64d9e1fad637 - e2e_pty[d24b166aa3ec792a]::test_e2e_mcp_server::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_pty.rs:73:25
[INFO] [stdout]   21:     0x64d9e1fb50b6 - <e2e_pty[d24b166aa3ec792a]::test_e2e_mcp_server::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x64d9e1fd2d9b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x64d9e1fd2d9b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x64d9e1fe058b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x64d9e1fe058b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x64d9e1fe058b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x64d9e1fe058b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x64d9e1fe058b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x64d9e1fe058b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x64d9e1fe058b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x64d9e1fd9ca4 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x64d9e1fd9ca4 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x64d9e1fe3192 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x64d9e1fe3192 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x64d9e1fe3192 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x64d9e1fe3192 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x64d9e1fe3192 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x64d9e1fe3192 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x64d9e1fe3192 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x64d9e20b361f - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   41:     0x64d9e20b361f - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7f153f4efaa4 - <unknown>
[INFO] [stdout]   43:     0x7f153f57ca64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_e2e_mcp_server
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.62s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test e2e_pty`
[INFO] running `Command { std: "docker" "inspect" "00c3e2606e303de940faba2c69dea02ff4c34ddc00aed6be3678afaa1cba2020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "00c3e2606e303de940faba2c69dea02ff4c34ddc00aed6be3678afaa1cba2020", kill_on_drop: false }`
[INFO] [stdout] 00c3e2606e303de940faba2c69dea02ff4c34ddc00aed6be3678afaa1cba2020
