[INFO] cloning repository https://github.com/fred-drake/claude-seer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fred-drake/claude-seer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffred-drake%2Fclaude-seer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffred-drake%2Fclaude-seer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a69c1c55dfccab1ad00a11dd598ffcd4f122d716 [INFO] testing fred-drake/claude-seer against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffred-drake%2Fclaude-seer" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/fred-drake/claude-seer [INFO] finished tweaking git repo https://github.com/fred-drake/claude-seer [INFO] tweaked toml for git repo https://github.com/fred-drake/claude-seer written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/fred-drake/claude-seer on toolchain f9988fefd3add01f414f52b414308e7872622fee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/fred-drake/claude-seer 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cookie_store v0.22.0 [INFO] [stderr] Downloaded supports-hyperlinks v3.2.0 [INFO] [stderr] Downloaded divan-macros v0.1.21 [INFO] [stderr] Downloaded rstest v0.23.0 [INFO] [stderr] Downloaded condtype v1.3.0 [INFO] [stderr] Downloaded miette-derive v7.6.0 [INFO] [stderr] Downloaded owo-colors v4.3.0 [INFO] [stderr] Downloaded miette v7.6.0 [INFO] [stderr] Downloaded mintex v0.1.4 [INFO] [stderr] Downloaded pulldown-cmark v0.13.1 [INFO] [stderr] Downloaded divan v0.1.21 [INFO] [stderr] Downloaded insta v1.46.3 [INFO] [stderr] Downloaded rstest_macros v0.23.0 [INFO] [stderr] Downloaded backtrace-ext v0.2.1 [INFO] [stderr] Downloaded supports-unicode v3.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dc3272500e0040d7a811135daa95d9788c910839dc7451fb2c9463f24d44039e [INFO] running `Command { std: "docker" "start" "-a" "dc3272500e0040d7a811135daa95d9788c910839dc7451fb2c9463f24d44039e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dc3272500e0040d7a811135daa95d9788c910839dc7451fb2c9463f24d44039e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc3272500e0040d7a811135daa95d9788c910839dc7451fb2c9463f24d44039e", kill_on_drop: false }` [INFO] [stdout] dc3272500e0040d7a811135daa95d9788c910839dc7451fb2c9463f24d44039e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ce88c2e839dcd07b4765d414a57a913b3c3cc4e2393ed5f0b9694d7289e58c7b [INFO] running `Command { std: "docker" "start" "-a" "ce88c2e839dcd07b4765d414a57a913b3c3cc4e2393ed5f0b9694d7289e58c7b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling gimli v0.32.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling rustc-demangle v0.1.27 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling owo-colors v4.3.0 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling pulldown-cmark v0.13.1 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling is_ci v1.2.0 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling ureq-proto v0.5.3 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling addr2line v0.25.1 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling supports-unicode v3.0.0 [INFO] [stderr] Compiling supports-hyperlinks v3.2.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling backtrace-ext v0.2.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling miette-derive v7.6.0 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling ureq v3.2.0 [INFO] [stderr] Compiling claude-seer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.24s [INFO] running `Command { std: "docker" "inspect" "ce88c2e839dcd07b4765d414a57a913b3c3cc4e2393ed5f0b9694d7289e58c7b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ce88c2e839dcd07b4765d414a57a913b3c3cc4e2393ed5f0b9694d7289e58c7b", kill_on_drop: false }` [INFO] [stdout] ce88c2e839dcd07b4765d414a57a913b3c3cc4e2393ed5f0b9694d7289e58c7b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d9e58954d5c149a18e83b9c84130587d29b00b104f3ff136f3433583ef568507 [INFO] running `Command { std: "docker" "start" "-a" "d9e58954d5c149a18e83b9c84130587d29b00b104f3ff136f3433583ef568507", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling rstest_macros v0.23.0 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling mintex v0.1.4 [INFO] [stderr] Compiling regex-lite v0.1.9 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling thousands v0.2.0 [INFO] [stderr] Compiling condtype v1.3.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling toml_edit v0.25.4+spec-1.1.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling insta v1.46.3 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerocopy-derive v0.8.40 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling miette-derive v7.6.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling divan-macros v0.1.21 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling divan v0.1.21 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling ureq v3.2.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling dhat v0.3.3 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling rstest v0.23.0 [INFO] [stderr] Compiling claude-seer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 41.67s [INFO] running `Command { std: "docker" "inspect" "d9e58954d5c149a18e83b9c84130587d29b00b104f3ff136f3433583ef568507", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9e58954d5c149a18e83b9c84130587d29b00b104f3ff136f3433583ef568507", kill_on_drop: false }` [INFO] [stdout] d9e58954d5c149a18e83b9c84130587d29b00b104f3ff136f3433583ef568507 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b2725713ab6e13c42a2f34961e5378e822dc2b23c69b4502e2ce5e09b4c7f6d9 [INFO] running `Command { std: "docker" "start" "-a" "b2725713ab6e13c42a2f34961e5378e822dc2b23c69b4502e2ce5e09b4c7f6d9", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/claude_seer-179cc56895cb0a0c) [INFO] [stdout] [INFO] [stdout] running 470 tests [INFO] [stdout] test app::tests::back_from_session_list_preserves_project_selection_index ... ok [INFO] [stdout] test app::tests::back_to_list_from_conversation_clears_session ... ok [INFO] [stdout] test app::tests::back_to_list_from_conversation_returns_to_session_list ... ok [INFO] [stdout] test app::tests::back_to_list_from_project_list_quits ... ok [INFO] [stdout] test app::tests::back_to_list_from_session_list_goes_to_project_list ... ok [INFO] [stdout] test app::tests::back_to_list_recomputes_empty_state ... ok [INFO] [stdout] test app::tests::back_to_list_recomputes_empty_state_with_sessions ... ok [INFO] [stdout] test app::tests::dismiss_modal_clears_modal_state ... ok [INFO] [stdout] test app::tests::handle_quit_returns_exit ... ok [INFO] [stdout] test app::tests::display_options_default_values ... ok [INFO] [stdout] test app::tests::load_error_no_directory ... ok [INFO] [stdout] test app::tests::modal_scroll_down_increments ... ok [INFO] [stdout] test app::tests::modal_scroll_up_decrements_saturating ... ok [INFO] [stdout] test app::tests::modal_scroll_up_stops_at_zero ... ok [INFO] [stdout] test app::tests::navigate_down_in_conversation_scrolls ... ok [INFO] [stdout] test app::tests::navigate_down_in_project_list ... ok [INFO] [stdout] test app::tests::navigate_down_stops_at_bottom ... ok [INFO] [stdout] test app::tests::navigate_on_empty_session_list_does_nothing ... ok [INFO] [stdout] test app::tests::navigate_down_increments_index ... ok [INFO] [stdout] test app::tests::navigate_on_empty_project_list_does_nothing ... ok [INFO] [stdout] test app::tests::navigate_up_in_conversation_scrolls ... ok [INFO] [stdout] test app::tests::navigate_up_in_conversation_stops_at_zero ... ok [INFO] [stdout] test app::tests::navigate_down_single_element_stays_at_zero ... ok [INFO] [stdout] test app::tests::navigate_up_decrements_index ... ok [INFO] [stdout] test app::tests::new_app_state_modal_is_none ... ok [INFO] [stdout] test app::tests::navigate_up_in_project_list ... ok [INFO] [stdout] test app::tests::new_app_state_empty_state_is_loading ... ok [INFO] [stdout] test app::tests::navigate_up_stops_at_top ... ok [INFO] [stdout] test app::tests::new_app_state_starts_in_project_list_view ... ok [INFO] [stdout] test app::tests::next_turn_resets_scroll_offset ... ok [INFO] [stdout] test app::tests::next_turn_stops_at_last ... ok [INFO] [stdout] test app::tests::next_turn_on_empty_session_does_nothing ... ok [INFO] [stdout] test app::tests::prev_turn_decrements_index ... ok [INFO] [stdout] test app::tests::prev_turn_resets_scroll_offset ... ok [INFO] [stdout] test app::tests::next_turn_increments_index ... ok [INFO] [stdout] test app::tests::projects_loaded_empty_sets_no_projects ... ok [INFO] [stdout] test app::tests::projects_loaded_no_cwd_sorts_by_last_activity_desc ... ok [INFO] [stdout] test app::tests::prev_turn_stops_at_first ... ok [INFO] [stdout] test app::tests::next_turn_without_session_does_nothing ... ok [INFO] [stdout] test app::tests::prev_turn_without_session_does_nothing ... ok [INFO] [stdout] test app::tests::resize_updates_terminal_size ... ok [INFO] [stdout] test app::tests::select_project_returns_load_project_sessions ... ok [INFO] [stdout] test app::tests::round_trip_project_session_conversation_back ... ok [INFO] [stdout] test app::tests::select_project_on_empty_returns_none ... ok [INFO] [stdout] test app::tests::projects_loaded_with_cwd_match_sorts_cwd_first ... ok [INFO] [stdout] test app::tests::select_session_sets_loading_state ... ok [INFO] [stdout] test app::tests::session_load_error_returns_to_session_list ... ok [INFO] [stdout] test app::tests::select_session_returns_load_effect ... ok [INFO] [stdout] test app::tests::select_session_clears_conversation_state ... ok [INFO] [stdout] test app::tests::select_session_on_empty_returns_none ... ok [INFO] [stdout] test app::tests::session_load_error_stores_last_error ... ok [INFO] [stdout] test app::tests::session_loaded_stores_session_and_transitions_to_conversation ... ok [INFO] [stdout] test app::tests::sessions_sorted_by_last_activity_descending ... ok [INFO] [stdout] test app::tests::show_claude_modal_sets_modal_state ... ok [INFO] [stdout] test app::tests::session_loaded_clears_last_error ... ok [INFO] [stdout] test app::tests::sessions_loaded_clears_loading_state ... ok [INFO] [stdout] test app::tests::show_user_modal_sets_modal_state ... ok [INFO] [stdout] test app::tests::toggle_tools_flips_display_show_tools ... ok [INFO] [stdout] test app::tests::usage_loaded_stores_usage ... ok [INFO] [stdout] test app::tests::version_loaded_stores_version ... ok [INFO] [stdout] test app::tests::session_loaded_empty_session_sets_empty_state ... ok [INFO] [stdout] test app::tests::show_tokens_defaults_to_false ... ok [INFO] [stdout] test app::tests::toggle_help ... ok [INFO] [stdout] test app::tests::toggle_thinking_flips_display_show_thinking ... ok [INFO] [stdout] test data::classify::tests::classify_command_message ... ok [INFO] [stdout] test app::tests::toggle_tokens_flips_show_tokens ... ok [INFO] [stdout] test data::classify::tests::classify_command_with_args ... ok [INFO] [stdout] test app::tests::toggle_tools_is_independent_of_toggle_tokens ... ok [INFO] [stdout] test data::classify::tests::classify_task_notification_missing_sub_tags ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message ... ok [INFO] [stdout] test app::tests::show_user_modal_resets_scroll ... ok [INFO] [stdout] test app::tests::sessions_loaded_empty_sets_no_sessions ... ok [INFO] [stdout] test data::classify::tests::classify_normal_plain_text ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message_missing_closing_tag ... ok [INFO] [stdout] test data::classify::tests::extract_tag_content_missing_close_tag ... ok [INFO] [stdout] test data::classify::tests::classify_system_message_from_local_command_caveat ... ok [INFO] [stdout] test data::classify::tests::classify_task_notification ... ok [INFO] [stdout] test data::classify::tests::classify_task_notification_partial_sub_tags ... ok [INFO] [stdout] test app::tests::sessions_loaded_resets_selected_index_after_navigation ... ok [INFO] [stdout] test data::classify::tests::extract_tag_content_missing_tag ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message_empty_body ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message_attribute_reorder ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message_missing_attributes ... ok [INFO] [stdout] test data::classify::tests::extract_tag_content_with_generic_types ... ok [INFO] [stdout] test data::classify::tests::extract_tag_content_with_angle_brackets_in_content ... ok [INFO] [stdout] test data::error::tests::parse_error_displays_line_and_reason ... ok [INFO] [stdout] test data::error::tests::missing_field_displays_field_and_record_type ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message_escaped_quotes_truncates ... ok [INFO] [stdout] test data::classify::tests::classify_teammate_message_takes_priority_over_task_notification ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_04 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_01 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_06 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_07 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_09 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_05 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_02 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_03 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_08 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_10 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_13 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_16 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_14 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_11 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_17 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_12 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_01 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_02 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_future_is_just_now ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_03 ... ok [INFO] [stdout] test data::model::tests::format_relative_time_cases::case_15 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_05 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_08 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_10 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_09 ... ok [INFO] [stdout] test data::model::tests::project_path_decoded_path_single_dash_is_root ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_16 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_11 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_04 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_12 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_13 ... ok [INFO] [stdout] test data::model::tests::project_path_display_name::case_3 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_14 ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_15 ... ok [INFO] [stdout] test data::model::tests::message_id_display ... ok [INFO] [stdout] test data::model::tests::message_id_equality ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_06 ... ok [INFO] [stdout] test data::model::tests::project_path_decoded_path_no_leading_dash_unchanged ... ok [INFO] [stdout] test data::model::tests::project_path_display ... ok [INFO] [stdout] test data::model::tests::project_path_decoded_path_converts_dashes_to_slashes ... ok [INFO] [stdout] test data::model::tests::format_tokens_cases::case_07 ... ok [INFO] [stdout] test data::model::tests::project_path_display_name::case_1 ... ok [INFO] [stdout] test data::model::tests::project_path_display_name::case_2 ... ok [INFO] [stdout] test data::model::tests::project_path_display_name::case_4 ... ok [INFO] [stdout] test data::model::tests::project_path_display_name_empty ... ok [INFO] [stdout] test data::model::tests::project_path_matches_cwd_exact ... ok [INFO] [stdout] test data::model::tests::project_path_matches_cwd_root ... ok [INFO] [stdout] test data::model::tests::project_path_matches_cwd_no_match ... ok [INFO] [stdout] test data::model::tests::project_path_matches_cwd_trailing_slash ... ok [INFO] [stdout] test data::model::tests::project_path_matches_cwd_with_dots_in_path ... ok [INFO] [stdout] test data::model::tests::project_path_ord ... ok [INFO] [stdout] test data::model::tests::project_path_wraps_pathbuf ... ok [INFO] [stdout] test data::model::tests::session_id_display ... ok [INFO] [stdout] test data::model::tests::session_id_equality ... ok [INFO] [stdout] test data::model::tests::token_category_display ... ok [INFO] [stdout] test data::model::tests::token_usage_default_is_zero ... ok [INFO] [stdout] test data::model::tests::token_usage_add_accumulates ... ok [INFO] [stdout] test data::model::tests::token_usage_total_default_is_zero ... ok [INFO] [stdout] test data::model::tests::token_usage_total ... ok [INFO] [stdout] test data::model::tests::tool_name_display ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_01 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_02 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_04 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_05 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_06 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_03 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_09 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_11 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_07 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_08 ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_12 ... ok [INFO] [stdout] test data::parser::tests::extract_assistant_response_missing_uuid_returns_error ... ok [INFO] [stdout] test data::parser::tests::extract_assistant_response_with_text_and_usage ... ok [INFO] [stdout] test data::parser::tests::extract_assistant_response_with_tool_use ... ok [INFO] [stdout] test data::parser::tests::extract_assistant_response_missing_message_returns_error ... ok [INFO] [stdout] test data::parser::tests::extract_tool_results_from_tool_result_record ... ok [INFO] [stdout] test data::parser::tests::extract_assistant_response_missing_timestamp_returns_error ... ok [INFO] [stdout] test data::model::tests::tool_name_from_string::case_10 ... ok [INFO] [stdout] test data::parser::tests::extract_user_content_mixed_text_and_tool_results ... ok [INFO] [stdout] test data::parser::tests::extract_user_message_missing_timestamp_returns_error ... ok [INFO] [stdout] test data::parser::tests::extract_user_message_text ... ok [INFO] [stdout] test data::parser::tests::extract_content_blocks_thinking ... ok [INFO] [stdout] test data::parser::tests::extract_user_message_with_tool_results ... ok [INFO] [stdout] test data::parser::tests::parse_raw_record_from_progress_line ... ok [INFO] [stdout] test data::parser::tests::parse_raw_record_from_tool_result_line ... ok [INFO] [stdout] test data::parser::tests::parse_raw_record_from_user_line ... ok [INFO] [stdout] test data::parser::tests::extract_user_message_missing_message_returns_error ... ok [INFO] [stdout] test data::parser::tests::extract_user_message_missing_uuid_returns_error ... ok [INFO] [stdout] test data::parser::tests::parse_raw_record_malformed_line_returns_error ... ok [INFO] [stdout] test data::parser::tests::parse_raw_record_empty_json_returns_error ... ok [INFO] [stdout] test data::parser::tests::parse_timestamp_invalid_returns_error ... ok [INFO] [stdout] test data::parser::tests::parse_raw_record_from_assistant_line ... ok [INFO] [stdout] test data::parser::tests::extract_tool_results_missing_message_returns_error ... ok [INFO] [stdout] test data::session_loader::tests::assemble_basic_session_one_turn ... ok [INFO] [stdout] test data::session_loader::tests::assemble_consecutive_users ... ok [INFO] [stdout] test data::parser::tests::parse_timestamp_valid ... ok [INFO] [stdout] test data::session_loader::tests::assemble_mid_toolcall_incomplete_turn ... ok [INFO] [stdout] test data::session_loader::tests::assemble_mismatched_tool_result ... ok [INFO] [stdout] test data::session_loader::tests::assemble_orphaned_progress_records ... ok [INFO] [stdout] test data::session_loader::tests::assemble_session_with_errors_skips_bad_lines ... ok [INFO] [stdout] test data::session_loader::tests::assemble_resumed_session ... ok [INFO] [stdout] test data::session_loader::tests::assemble_multi_turn_with_tool_use ... ok [INFO] [stdout] test data::session_loader::tests::assemble_empty_session ... ok [INFO] [stdout] test data::session_loader::tests::extract_last_prompt_from_basic_session ... ok [INFO] [stdout] test data::session_loader::tests::merge_assistant_responses_empty_returns_none ... ok [INFO] [stdout] test data::session_loader::tests::extract_last_prompt_returns_none_for_no_user_messages ... ok [INFO] [stdout] test data::session_loader::tests::assemble_sidechain_records_skipped ... ok [INFO] [stdout] test data::session_loader::tests::assemble_linear_session_three_turns ... ok [INFO] [stdout] test data::session_loader::tests::extract_last_prompt_returns_none_for_empty ... ok [INFO] [stdout] test data::session_loader::tests::extract_last_prompt_from_linear_session ... ok [INFO] [stdout] test data::session_loader::tests::session_metadata_extracted ... ok [INFO] [stdout] test data::session_loader::tests::summary_scan_single_line_sets_last_activity ... ok [INFO] [stdout] test data::session_loader::tests::summary_scan_counts_turns ... ok [INFO] [stdout] test data::session_loader::tests::summary_scan_extracts_timestamps ... ok [INFO] [stdout] test data::session_loader::tests::summary_scan_accumulates_tokens ... ok [INFO] [stdout] test data::usage::tests::title_bar_info_defaults_to_none ... ok [INFO] [stdout] test data::session_loader::tests::summary_scan_empty_input ... ok [INFO] [stdout] test data::usage::tests::usage_data_deserializes_empty_object ... ok [INFO] [stdout] test data::usage::tests::title_bar_info_default_trait_matches_new ... ok [INFO] [stdout] test data::usage::tests::credentials_deserializes_with_renamed_fields ... ok [INFO] [stdout] test data::session_loader::tests::summary_scan_does_not_double_count_first_line ... ok [INFO] [stdout] test data::usage::tests::usage_data_deserializes_minimal_response ... ok [INFO] [stdout] test data::session_loader::tests::token_totals_accumulated ... ok [INFO] [stdout] test data::usage::tests::usage_data_deserializes_with_missing_fields ... ok [INFO] [stdout] test data::usage::tests::usage_error_displays_credential_read ... ok [INFO] [stdout] test data::usage::tests::usage_window_deserializes_null_reset ... ok [INFO] [stdout] test data::usage::tests::usage_window_deserializes_with_timezone_offset ... ok [INFO] [stdout] test data::usage::tests::usage_error_displays_http_request ... ok [INFO] [stdout] test data::usage::tests::usage_data_deserializes_full_response ... ok [INFO] [stdout] test data::usage::tests::version_parsing_extracts_number ... ok [INFO] [stdout] test data::usage::tests::usage_error_displays_version_command ... ok [INFO] [stdout] test source::error::tests::directory_not_found_displays_path ... ok [INFO] [stdout] test source::error::tests::data_error_converts_from_data_error ... ok [INFO] [stdout] test source::error::tests::session_not_found_displays_id ... ok [INFO] [stdout] test source::filesystem::tests::list_projects_error_for_nonexistent_path ... ok [INFO] [stdout] test data::usage::tests::usage_window_deserializes ... ok [INFO] [stdout] test source::error::tests::io_error_converts_from_std_io ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_for_empty_project_returns_empty ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_for_project_nonexistent_returns_error ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_returns_error_for_nonexistent_path ... ok [INFO] [stdout] test source::filesystem::tests::list_projects_skips_empty_project ... ok [INFO] [stdout] test source::filesystem::tests::list_projects_discovers_projects_with_sessions ... ok [INFO] [stdout] test source::filesystem::tests::load_session_not_found ... ok [INFO] [stdout] test source::filesystem::tests::list_projects_has_correct_session_counts ... ok [INFO] [stdout] test source::filesystem::tests::list_projects_has_last_activity ... ok [INFO] [stdout] test source::filesystem::tests::list_projects_skips_non_directory_entries ... ok [INFO] [stdout] test source::filesystem::tests::load_session_by_id ... ok [INFO] [stdout] test source::filesystem::tests::session_id_from_path_no_stem_falls_back_to_unknown ... ok [INFO] [stdout] test source::filesystem::tests::session_id_from_path_normal ... ok [INFO] [stdout] test tui::event::tests::arrow_down_maps_to_navigate_down ... ok [INFO] [stdout] test tui::event::tests::arrow_down_scrolls_in_conversation ... ok [INFO] [stdout] test tui::event::tests::arrow_up_maps_to_navigate_up ... ok [INFO] [stdout] test tui::event::tests::arrow_up_scrolls_in_conversation ... ok [INFO] [stdout] test tui::event::tests::c_maps_to_show_claude_modal_in_conversation ... ok [INFO] [stdout] test tui::event::tests::ctrl_c_maps_to_quit ... ok [INFO] [stdout] test tui::event::tests::enter_does_nothing_in_conversation ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_has_last_prompt ... ok [INFO] [stdout] test tui::event::tests::enter_maps_to_select_session_in_session_list ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_for_project_scoped_to_one_project ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_has_metadata ... ok [INFO] [stdout] test tui::event::tests::enter_maps_to_select_project_in_project_list ... ok [INFO] [stdout] test tui::event::tests::esc_maps_to_back_in_project_list ... ok [INFO] [stdout] test tui::event::tests::esc_maps_to_back_in_conversation ... ok [INFO] [stdout] test tui::event::tests::esc_maps_to_back_to_list ... ok [INFO] [stdout] test source::filesystem::tests::project_path_contains_directory_name_not_full_path ... ok [INFO] [stdout] test tui::event::tests::help_visible_any_key_dismisses ... ok [INFO] [stdout] test tui::event::tests::j_maps_to_navigate_down_in_project_list ... ok [INFO] [stdout] test source::filesystem::tests::list_sessions_discovers_all_sessions ... ok [INFO] [stdout] test tui::event::tests::k_maps_to_navigate_up_in_session_list ... ok [INFO] [stdout] test tui::event::tests::k_maps_to_prev_turn_in_conversation ... ok [INFO] [stdout] test tui::event::tests::j_maps_to_navigate_down_in_session_list ... ok [INFO] [stdout] test tui::event::tests::j_maps_to_next_turn_in_conversation ... ok [INFO] [stdout] test tui::event::tests::k_maps_to_navigate_up_in_project_list ... ok [INFO] [stdout] test tui::event::tests::modal_arrow_down_scrolls_down ... ok [INFO] [stdout] test tui::event::tests::modal_esc_dismisses_modal ... ok [INFO] [stdout] test tui::event::tests::modal_k_scrolls_up ... ok [INFO] [stdout] test tui::event::tests::modal_other_keys_return_none ... ok [INFO] [stdout] test tui::event::tests::o_does_nothing_in_session_list ... ok [INFO] [stdout] test tui::event::tests::modal_arrow_up_scrolls_up ... ok [INFO] [stdout] test tui::event::tests::q_maps_to_back_to_list ... ok [INFO] [stdout] test tui::event::tests::q_maps_to_back_to_list_in_conversation ... ok [INFO] [stdout] test tui::event::tests::modal_j_scrolls_down ... ok [INFO] [stdout] test tui::event::tests::question_mark_toggles_help ... ok [INFO] [stdout] test tui::event::tests::modal_q_dismisses_modal ... ok [INFO] [stdout] test tui::event::tests::o_maps_to_toggle_tools_in_conversation ... ok [INFO] [stdout] test tui::event::tests::shift_t_does_nothing_in_session_list ... ok [INFO] [stdout] test tui::event::tests::shift_t_maps_to_toggle_thinking_in_conversation ... ok [INFO] [stdout] test tui::event::tests::t_does_nothing_in_session_list ... ok [INFO] [stdout] test tui::event::tests::t_maps_to_toggle_tokens_in_conversation ... ok [INFO] [stdout] test tui::event::tests::u_maps_to_show_user_modal_in_conversation ... ok [INFO] [stdout] test tui::event::tests::unknown_key_returns_none ... ok [INFO] [stdout] test tui::widgets::conversation::tests::assistant_lines_have_no_leading_padding ... ok [INFO] [stdout] test tui::widgets::conversation::tests::assistant_bubble_has_top_and_bottom_borders ... ok [INFO] [stdout] test tui::widgets::conversation::tests::assistant_text_renders_markdown_bold ... ok [INFO] [stdout] test tui::widgets::conversation::tests::bubble_content_is_padded_to_uniform_width ... ok [INFO] [stdout] test tui::widgets::conversation::tests::bubble_width_30_cols ... ok [INFO] [stdout] test tui::widgets::conversation::tests::bubble_content_lines_use_vertical_bar_borders ... ok [INFO] [stdout] test tui::widgets::conversation::tests::bubble_width_80_cols_is_60 ... ok [INFO] [stdout] test tui::widgets::conversation::tests::bubble_width_clamps_narrow ... ok [INFO] [stdout] test tui::widgets::conversation::tests::bubble_width_clamps_wide ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_conversation_lines_cumulative_accumulation_correctness ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_conversation_lines_multiple_turns ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_conversation_lines_single_turn_start_is_zero ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_always_includes_claude_label ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_always_includes_user_label ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_command_message_label ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_conversation_lines_returns_current_turn_start_line ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_hides_thinking_when_show_thinking_false ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_command_with_args_shows_both ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_hides_tokens_when_show_tokens_false ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_hides_tool_use_when_show_tools_false ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_hides_user_tool_results_when_tools_hidden ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_mixed_content_respects_filters ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_no_assistant_response ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_incomplete_turn_still_renders ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_shows_cumulative_tokens ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_shows_cache_creation_tokens ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_shows_thinking_text_when_show_thinking_true ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_shows_token_usage ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_shows_tool_use_when_show_tools_true ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_system_message_label ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_task_notification_shows_summary ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_task_notification_label ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_teammate_message_label ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_teammate_message_shows_content_in_bubble ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_teammate_message_left_aligned ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_zero_token_usage_emits_no_token_lines ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_teammate_message_shows_summary ... ok [INFO] [stdout] test tui::widgets::conversation::tests::color_from_name_known_colors ... ok [INFO] [stdout] test tui::widgets::conversation::tests::color_from_name_unknown_falls_back_to_white ... ok [INFO] [stdout] test tui::widgets::conversation::tests::clean_view_omits_headers_but_keeps_labels ... ok [INFO] [stdout] test tui::widgets::conversation::tests::each_detail_flag_independently_shows_its_content ... ok [INFO] [stdout] test tui::widgets::conversation::tests::build_turn_lines_task_notification_shows_result_in_bubble ... ok [INFO] [stdout] test tui::widgets::conversation::tests::long_text_wraps_at_bubble_width ... ok [INFO] [stdout] test tui::widgets::conversation::tests::color_from_name_case_insensitive ... ok [INFO] [stdout] test tui::widgets::conversation::tests::detail_view_shows_labels ... ok [INFO] [stdout] test tui::widgets::conversation::tests::short_text_not_wrapped ... ok [INFO] [stdout] test tui::widgets::conversation::tests::gutter_shows_turn_number_in_conversation_lines ... ok [INFO] [stdout] test tui::widgets::conversation::tests::narrow_terminal_disables_alignment ... ok [INFO] [stdout] test tui::widgets::conversation::tests::terminal_width_zero_no_panic ... ok [INFO] [stdout] test tui::widgets::conversation::tests::labels_appear_outside_bubble ... ok [INFO] [stdout] test tui::widgets::conversation::tests::token_lines_appear_outside_bubble ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_only_turn_shown_when_tools_enabled ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_bash ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_edit ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_glob ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_grep ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_missing_file_path ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_only_turn_hidden_when_tools_disabled ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_read ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_write ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_use_line_truncated_to_content_width ... ok [INFO] [stdout] test tui::widgets::conversation::tests::tool_summary_unknown_tool ... ok [INFO] [stdout] test tui::widgets::conversation::tests::truncate_long_string_adds_ellipsis ... ok [INFO] [stdout] test tui::widgets::conversation::tests::truncate_short_string_unchanged ... ok [INFO] [stdout] test tui::widgets::conversation::tests::truncate_unicode_multibyte ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_content_text_mixed ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_bubble_has_top_and_bottom_borders ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_content_text_tool_results_error ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_content_text_returns_text ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_bubble_left_aligned ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_content_text_tool_results ... ok [INFO] [stdout] test tui::widgets::help::tests::conversation_help_shows_arrow_scroll ... ok [INFO] [stdout] test tui::widgets::help::tests::conversation_help_shows_back ... ok [INFO] [stdout] test tui::widgets::help::tests::conversation_help_shows_modal_keys ... ok [INFO] [stdout] test tui::widgets::help::tests::conversation_help_shows_toggle_thinking ... ok [INFO] [stdout] test tui::widgets::help::tests::conversation_help_shows_toggle_tools ... ok [INFO] [stdout] test tui::widgets::conversation::tests::user_lines_are_left_aligned ... ok [INFO] [stdout] test tui::widgets::help::tests::conversation_help_shows_jk_turn_navigation ... ok [INFO] [stdout] test tui::widgets::help::tests::all_views_show_back_quit_and_help ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::bold_inherits_base_style_color ... ok [INFO] [stdout] test tui::widgets::help::tests::help_popup_height_capped_by_area ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::bold_style_preserved_across_line_break ... ok [INFO] [stdout] test tui::widgets::help::tests::help_popup_height_fits_session_list_content ... ok [INFO] [stdout] test tui::widgets::help::tests::session_list_help_does_not_show_turn_navigation ... ok [INFO] [stdout] test tui::widgets::help::tests::session_list_help_shows_open_session ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::code_block_dimmed_for_non_current_turn ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::code_block_not_word_wrapped ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::code_block_surrounded_by_blank_lines ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::empty_text_returns_one_empty_line ... ok [INFO] [stdout] test tui::widgets::help::tests::session_list_help_shows_select_next_session ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::base_style_fg_is_used_for_plain_text ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::bold_text_has_bold_modifier ... ok [INFO] [stdout] test tui::widgets::help::tests::help_popup_height_conversation_taller_than_session_list ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::code_block_with_blank_lines_between_content ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::inline_code_dimmed_for_non_current_turn ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::code_block_uses_prefix_style_current_turn ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::inline_code_uses_background_style_current_turn ... ok [INFO] [stdout] test tui::widgets::help::tests::session_list_help_shows_select_previous_session ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::italic_text_has_italic_modifier ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::max_cols_zero_returns_empty_line ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::multi_line_code_block ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::nested_bold_italic ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::heading_renders_bold ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::inline_code_has_distinct_style ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::list_item_continuation_lines_are_indented ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::nested_lists_two_levels ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::plain_text_short_fits_in_one_line ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::plain_text_wraps_at_max_cols ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::truncate_to_width_appends_ellipsis_when_clipped ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::truncate_to_width_no_ellipsis_when_fits ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_claude_no_response ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::paragraphs_separated_by_blank_line ... ok [INFO] [stdout] test tui::widgets::modal::tests::build_task_modal_lines_renders_header_and_body ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_claude_with_pending_tool ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::ordered_list_renders_numbers ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_teammate_message_empty_content ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::unordered_list_renders_bullets ... ok [INFO] [stdout] test tui::widgets::md_wrap::tests::word_exactly_equal_to_max_cols ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_claude_text ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_claude_with_error_tool ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_claude_with_tool_use ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_task_notification_modal_shows_properties ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_teammate_message_returns_content_only ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_teammate_message_with_task_notification_in_content ... ok [INFO] [stdout] test tui::widgets::modal::tests::json_highlight_key_value_bool ... ok [INFO] [stdout] test tui::widgets::modal::tests::json_highlight_key_value_string ... ok [INFO] [stdout] test tui::widgets::modal::tests::json_highlight_key_value_number ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_claude_with_thinking ... ok [INFO] [stdout] test tui::widgets::modal::tests::render_json_newline_in_array_string ... ok [INFO] [stdout] test tui::widgets::modal::tests::extract_user_text ... ok [INFO] [stdout] test tui::widgets::modal::tests::word_wrap_simple_basic ... ok [INFO] [stdout] test tui::widgets::modal::tests::render_json_newline_multiple ... ok [INFO] [stdout] test tui::widgets::modal::tests::json_highlight_preserves_indent ... ok [INFO] [stdout] test tui::widgets::modal::tests::render_json_newline_at_end ... ok [INFO] [stdout] test tui::widgets::modal::tests::render_json_newline_at_start ... ok [INFO] [stdout] test tui::widgets::modal::tests::render_json_newline_basic_expansion ... ok [INFO] [stdout] test tui::widgets::modal::tests::word_wrap_simple_empty ... ok [INFO] [stdout] test tui::widgets::project_list::tests::exact_boundary_width_uses_single_line_layout ... ok [INFO] [stdout] test tui::widgets::project_list::tests::selected_item_uses_black_path_color ... ok [INFO] [stdout] test tui::widgets::modal::tests::word_wrap_simple_preserves_newlines ... ok [INFO] [stdout] test tui::widgets::modal::tests::json_highlight_structural_brace ... ok [INFO] [stdout] test tui::widgets::project_list::tests::narrow_terminal_keeps_name_and_path_on_separate_lines ... ok [INFO] [stdout] test tui::widgets::project_list::tests::cwd_indicator_affects_boundary_calculation ... ok [INFO] [stdout] test tui::widgets::project_list::tests::wide_terminal_combines_name_and_path_on_one_line ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_hides_tokens_when_show_tokens_false ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_hides_tokens_for_zero_token_session ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_project_list_shows_esc_quit ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_project_list_shows_project_count ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_session_list_shows_session_count ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_session_list_very_narrow_drops_all_hints ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_shows_singular_warning ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_shows_t_keybinding_hint ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_shows_u_c_modal_hints ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_very_narrow_keeps_turn_info ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_warning_span_is_yellow ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_hides_warnings_when_zero ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::plural_many ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::plural_singular ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::plural_zero_is_plural ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_end_long_string_truncated ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_shows_parse_warning_count ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_end_short_string_unchanged ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_narrow_drops_help_hint_first ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_shows_token_total_in_conversation ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_session_list_narrow_drops_help_first ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_empty_string_returns_empty ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_exact_fit_unchanged ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_long_text_gets_ellipsis ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_max_cols_one_returns_char_for_single_char ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_end_exact_length_unchanged ... ok [INFO] [stdout] test tui::widgets::status_bar::tests::status_bar_shows_jk_turn_hint ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_end_handles_multibyte ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_max_cols_zero_returns_empty ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_short_text_unchanged ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::display_options_empty_when_none_enabled ... ok [INFO] [stdout] test tui::widgets::text_utils::tests::truncate_to_width_max_cols_one_returns_ellipsis_for_long_text ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::display_options_shows_multiple ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::display_options_shows_think_when_enabled ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::display_options_shows_token_when_enabled ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::left_spans_no_version_when_unset ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::left_spans_show_app_name ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::display_options_shows_tool_when_enabled ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::left_spans_include_version_when_set ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::right_spans_shows_five_hour_usage ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::usage_color_red_for_high ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::right_spans_empty_when_no_usage_data ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::usage_color_yellow_for_medium ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::right_spans_include_usage_label ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::right_spans_shows_both_windows ... ok [INFO] [stdout] test tui::widgets::title_bar::tests::usage_color_green_for_low ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 470 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/claude_seer-9ae3db38d4af7ddb) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests claude_seer [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "b2725713ab6e13c42a2f34961e5378e822dc2b23c69b4502e2ce5e09b4c7f6d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b2725713ab6e13c42a2f34961e5378e822dc2b23c69b4502e2ce5e09b4c7f6d9", kill_on_drop: false }` [INFO] [stdout] b2725713ab6e13c42a2f34961e5378e822dc2b23c69b4502e2ce5e09b4c7f6d9