[INFO] cloning repository https://github.com/arclabs561/piku [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arclabs561/piku" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farclabs561%2Fpiku", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farclabs561%2Fpiku'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5d05f3d65bc137a1bcf720b20719852792115f26 [INFO] testing arclabs561/piku against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farclabs561%2Fpiku" "/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/arclabs561/piku [INFO] finished tweaking git repo https://github.com/arclabs561/piku [INFO] tweaked toml for git repo https://github.com/arclabs561/piku written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/arclabs561/piku on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 206 packages to latest compatible versions [INFO] [stderr] Adding crossterm v0.28.1 (available: v0.29.0) [INFO] [stderr] Adding reqwest v0.12.28 (available: v0.13.4) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.18) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serial_test v3.5.0 [INFO] [stderr] Downloaded vt100 v0.16.2 [INFO] [stderr] Downloaded serial_test_derive v3.5.0 [INFO] [stderr] Downloaded vte v0.15.0 [INFO] [stderr] Downloaded rexpect v0.7.1 [INFO] [stderr] Downloaded comma v1.0.0 [INFO] [stderr] Downloaded nix v0.31.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217 [INFO] running `Command { std: "docker" "start" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.46 [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling bytes v1.12.1 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling cc v1.2.66 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling openssl v0.10.81 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling rustls-pki-types v1.15.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling anyhow v1.0.103 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling openssl-sys v0.9.117 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling regex-automata v0.4.15 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling self-replace v1.5.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling regex v1.13.0 [INFO] [stderr] Compiling fancy-regex v0.16.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling syntect v5.3.0 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling h2 v0.4.15 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling piku-api v0.1.0 (/opt/rustwide/workdir/crates/piku-api) [INFO] [stderr] Compiling piku-tools v0.1.0 (/opt/rustwide/workdir/crates/piku-tools) [INFO] [stderr] Compiling piku-runtime v0.1.0 (/opt/rustwide/workdir/crates/piku-runtime) [INFO] [stderr] Compiling piku v0.1.0 (/opt/rustwide/workdir/crates/piku) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 10s [INFO] running `Command { std: "docker" "inspect" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling nix v0.31.3 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling serial_test_derive v3.5.0 [INFO] [stderr] Compiling arrayvec v0.7.8 [INFO] [stderr] Compiling comma v1.0.0 [INFO] [stderr] Compiling vte v0.15.0 [INFO] [stderr] Compiling vt100 v0.16.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling openssl-sys v0.9.117 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling serial_test v3.5.0 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling self-replace v1.5.0 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling openssl v0.10.81 [INFO] [stderr] Compiling rexpect v0.7.1 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling h2 v0.4.15 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling piku-api v0.1.0 (/opt/rustwide/workdir/crates/piku-api) [INFO] [stderr] Compiling piku-tools v0.1.0 (/opt/rustwide/workdir/crates/piku-tools) [INFO] [stderr] Compiling piku-runtime v0.1.0 (/opt/rustwide/workdir/crates/piku-runtime) [INFO] [stderr] Compiling piku v0.1.0 (/opt/rustwide/workdir/crates/piku) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 55.01s [INFO] running `Command { std: "docker" "inspect" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/piku-e3decf0db88f1d8d) [INFO] [stdout] [INFO] [stdout] running 153 tests [INFO] [stdout] test cli::tests::bare_read_only_with_no_prompt_enters_read_only_repl ... ok [INFO] [stdout] test cli::tests::bare_print_with_no_prompt_is_interactive_repl ... ok [INFO] [stdout] test cli::tests::print_flag_makes_single_shot_headless ... ok [INFO] [stdout] test cli::tests::print_flag_threads_through_resume ... ok [INFO] [stdout] test cli::tests::read_only_flag_threads_through_resume ... ok [INFO] [stdout] test cli::tests::read_only_flag_threads_through_single_shot ... ok [INFO] [stdout] test cli::tests::single_shot_defaults_to_interactive ... ok [INFO] [stdout] test cli::tests::providers_flag_is_standalone ... ok [INFO] [stdout] test config::tests::cli_beats_project ... ok [INFO] [stdout] test config::tests::sessions_and_traces_dirs ... ok [INFO] [stdout] test input_helper::tests::ctrl_a_e_home_end ... ok [INFO] [stdout] test input_helper::tests::ctrl_d_exits_on_empty_deletes_on_non_empty ... ok [INFO] [stdout] test input_helper::tests::ctrl_j_inserts_newline ... ok [INFO] [stdout] test input_helper::tests::ctrl_k_u_w ... ok [INFO] [stdout] test config::tests::permission_deny_overrides_allow ... ok [INFO] [stdout] test input_helper::tests::cursor_down_from_first_line ... ok [INFO] [stdout] test config::tests::permission_allow_glob ... ok [INFO] [stdout] test config::tests::permission_allow_exact ... ok [INFO] [stdout] test input_helper::tests::cursor_up_down_within_multiline ... ok [INFO] [stdout] test input_helper::tests::ghost_text_no_match ... ok [INFO] [stdout] test input_helper::tests::ghost_text_skips_slash_commands ... ok [INFO] [stdout] test input_helper::tests::delete_char ... ok [INFO] [stdout] test input_helper::tests::grapheme_backspace_multibyte ... ok [INFO] [stdout] test input_helper::tests::grapheme_movement_ascii ... ok [INFO] [stdout] test input_helper::tests::basic_insert_and_backspace ... ok [INFO] [stdout] test config::tests::cli_overrides_file ... ok [INFO] [stdout] test config::tests::load_empty_config ... ok [INFO] [stdout] test config::tests::project_overrides_global ... ok [INFO] [stdout] test input_helper::tests::ghost_text_most_recent_wins ... ok [INFO] [stdout] test input_helper::tests::esc_clears_input ... ok [INFO] [stdout] test input_helper::tests::ghost_text_from_history ... ok [INFO] [stdout] test input_helper::tests::dedup_consecutive_history ... ok [INFO] [stdout] test input_helper::tests::kill_and_yank_round_trip ... ok [INFO] [stdout] test input_helper::tests::history_navigation ... ok [INFO] [stdout] test input_helper::tests::kill_to_end ... ok [INFO] [stdout] test input_helper::tests::kill_to_start ... ok [INFO] [stdout] test input_helper::tests::kill_word_back ... ok [INFO] [stdout] test input_helper::tests::paste_converts_tabs ... ok [INFO] [stdout] test input_helper::tests::paste_strips_ansi ... ok [INFO] [stdout] test input_helper::tests::ctrl_p_n_history ... ok [INFO] [stdout] test input_helper::tests::newline_insertion ... ok [INFO] [stdout] test input_helper::tests::paste_normalizes_cr ... ok [INFO] [stdout] test input_helper::tests::kill_buffer_survives_clear ... ok [INFO] [stdout] test input_helper::tests::render_multiline_with_continuation ... ok [INFO] [stdout] test input_helper::tests::render_shows_placeholder_when_empty ... ok [INFO] [stdout] test input_helper::tests::slash_command_completion ... ok [INFO] [stdout] test input_helper::tests::shift_enter_inserts_newline ... ok [INFO] [stdout] test input_helper::tests::undo_after_many_inserts ... ok [INFO] [stdout] test input_helper::tests::transpose_chars ... ok [INFO] [stdout] test input_helper::tests::undo_restores_after_kill ... ok [INFO] [stdout] test input_helper::tests::up_arrow_only_on_first_line ... ok [INFO] [stdout] test input_helper::tests::visible_width_cjk ... ok [INFO] [stdout] test input_helper::tests::visible_width_strips_ansi ... ok [INFO] [stdout] test input_helper::tests::undo_is_empty_on_fresh_buffer ... ok [INFO] [stdout] test markdown::tests::bold_and_italic ... ok [INFO] [stdout] test input_helper::tests::up_arrow_works_on_single_line ... ok [INFO] [stdout] test input_helper::tests::word_movement ... ok [INFO] [stdout] test markdown::tests::block_quote ... ok [INFO] [stdout] test markdown::tests::dash_without_space_not_list ... ok [INFO] [stdout] test markdown::tests::empty_code_block ... ok [INFO] [stdout] test markdown::tests::empty_line_passthrough ... ok [INFO] [stdout] test markdown::tests::flush_pending ... ok [INFO] [stdout] test markdown::tests::hash_not_heading_without_space ... ok [INFO] [stdout] test markdown::tests::heading_rendered ... ok [INFO] [stdout] test markdown::tests::line_endings_are_crlf_in_tui_mode ... ok [INFO] [stdout] test markdown::tests::list_bullets ... ok [INFO] [stdout] test markdown::tests::horizontal_rule ... ok [INFO] [stdout] test markdown::tests::indented_list_items ... ok [INFO] [stdout] test markdown::tests::nested_bold_in_italic_not_supported_gracefully ... ok [INFO] [stdout] test markdown::tests::inline_code_highlighted ... ok [INFO] [stdout] test markdown::tests::streaming_partial_lines ... ok [INFO] [stdout] test markdown::tests::line_endings_are_lf_in_stdout_mode ... ok [INFO] [stdout] test markdown::tests::star_in_multiplication_not_italic ... ok [INFO] [stdout] test markdown::tests::token_by_token_streaming ... ok [INFO] [stdout] test markdown::tests::ordered_list_at_line_start ... ok [INFO] [stdout] test markdown::tests::ordered_list_false_positive_mid_sentence ... ok [INFO] [stdout] test self_update::tests::detect_self_build_false_on_failed_exit ... ok [INFO] [stdout] test self_update::tests::detect_self_build_false_when_no_finished ... ok [INFO] [stdout] test self_update::tests::detect_self_build_false_for_other_crate_only ... ok [INFO] [stdout] test self_update::tests::do_replace_fails_on_empty_new_binary ... ok [INFO] [stdout] test self_update::tests::do_replace_is_atomic_target_unchanged_on_failure ... ok [INFO] [stdout] test self_update::tests::do_replace_fails_on_missing_new_binary ... ok [INFO] [stdout] test self_update::tests::do_replace_preserves_executable_bit ... ok [INFO] [stdout] test markdown::tests::unclosed_backtick_passthrough ... ok [INFO] [stdout] test markdown::tests::unclosed_bold_passthrough ... ok [INFO] [stdout] test self_update::tests::is_newer_than_mtime_false_when_file_unchanged ... ok [INFO] [stdout] test self_update::tests::do_replace_writes_new_content_to_target ... ok [INFO] [stdout] test self_update::tests::baseline_detects_update_even_when_same_path_as_running ... ok [INFO] [stdout] test self_update::tests::is_newer_than_running_false_for_nonexistent ... ok [INFO] [stdout] test self_update::tests::is_newer_than_running_false_for_same_file_as_running ... ok [INFO] [stdout] test self_update::tests::replace_and_exec_fails_on_empty_binary ... ok [INFO] [stdout] test self_update::tests::replace_and_exec_fails_on_missing_binary ... ok [INFO] [stdout] test self_update::tests::was_restarted_returns_false_when_unset ... ok [INFO] [stdout] test self_update::tests::mtime_newer_than_returns_false_for_same_file ... ok [INFO] [stdout] test tui_repl::tests::age_formats_compactly ... ok [INFO] [stdout] test self_update::tests::was_restarted_returns_true_and_clears_env_var ... ok [INFO] [stdout] test tui_repl::tests::context_pct_caps ... ok [INFO] [stdout] test tui_repl::tests::context_pct_half ... ok [INFO] [stdout] test tui_repl::tests::context_pct_honors_model ... ok [INFO] [stdout] test tui_repl::tests::context_pct_zero_is_none ... ok [INFO] [stdout] test tui_repl::tests::context_window_claude_200k ... ok [INFO] [stdout] test tui_repl::tests::context_window_env_override ... ok [INFO] [stdout] test tui_repl::tests::context_window_gemini_1m ... ok [INFO] [stdout] test tui_repl::tests::context_window_gpt4_128k ... ok [INFO] [stdout] test tui_repl::tests::context_window_ollama_8k_default ... ok [INFO] [stdout] test tui_repl::tests::estimate_cost_ollama_always_zero ... ok [INFO] [stdout] test tui_repl::tests::estimate_cost_claude_sonnet_1m ... ok [INFO] [stdout] test self_update::tests::is_newer_than_mtime_true_after_write ... ok [INFO] [stdout] test self_update::tests::mtime_newer_than_returns_true_for_freshly_written_file ... ok [INFO] [stdout] test tui_repl::tests::first_message_preview_reads_user_text ... ok [INFO] [stdout] test tui_repl::tests::first_message_preview_none_when_no_user_message ... ok [INFO] [stdout] test tui_repl::tests::fmt_tokens_small ... ok [INFO] [stdout] test tui_repl::tests::fmt_tokens_thousands ... ok [INFO] [stdout] test tui_repl::tests::footer_amber_at_75_pct ... ok [INFO] [stdout] test tui_repl::tests::footer_all_segments_present_wide ... ok [INFO] [stdout] test tui_repl::tests::footer_contains_context_pct ... ok [INFO] [stdout] test tui_repl::tests::footer_contains_help_hint ... ok [INFO] [stdout] test tui_repl::tests::footer_contains_provider_and_model ... ok [INFO] [stdout] test tui_repl::tests::footer_hides_tokens_when_zero ... ok [INFO] [stdout] test tui_repl::tests::footer_drops_segments_when_narrow ... ok [INFO] [stdout] test tui_repl::tests::footer_omits_cost_for_unknown_model ... ok [INFO] [stdout] test tui_repl::tests::footer_red_at_90_pct ... ok [INFO] [stdout] test tui_repl::tests::footer_contains_token_counts ... ok [INFO] [stdout] test tui_repl::tests::footer_shows_agents_when_nonzero ... ok [INFO] [stdout] test tui_repl::tests::preview_strips_control_chars ... ok [INFO] [stdout] test tui_repl::tests::footer_shows_cost_when_known ... ok [INFO] [stdout] test tui_repl::tests::preview_truncates_with_ellipsis ... ok [INFO] [stdout] test tui_repl::tests::pricing_ollama_zero ... ok [INFO] [stdout] test tui_repl::tests::pricing_unknown_none ... ok [INFO] [stdout] test tui_repl::tests::result_lines_connector_first ... ok [INFO] [stdout] test tui_repl::tests::result_lines_dim_mode ... ok [INFO] [stdout] test tui_repl::tests::pricing_claude_sonnet ... ok [INFO] [stdout] test tui_repl::tests::result_lines_empty ... ok [INFO] [stdout] test tui_repl::tests::result_lines_plus_one_exception ... ok [INFO] [stdout] test tui_repl::tests::result_lines_truncates_long ... ok [INFO] [stdout] test tui_repl::tests::session_id_extracts_suffix ... ok [INFO] [stdout] test tui_repl::tests::tool_result_bash_not_dimmed ... ok [INFO] [stdout] test tui_repl::tests::tool_result_empty ... ok [INFO] [stdout] test tui_repl::tests::tool_result_read_dimmed ... ok [INFO] [stdout] test tui_repl::tests::tool_result_error_red ... ok [INFO] [stdout] test tui_repl::tests::fmt_tokens_large ... ok [INFO] [stdout] test markdown::tests::code_block_no_language ... ok [INFO] [stdout] test markdown::tests::triple_dash_not_hr_inside_code_block ... ok [INFO] [stdout] test markdown::tests::code_block_framed ... ok [INFO] [stdout] test markdown::tests::flush_resets_state ... ok [INFO] [stdout] test markdown::tests::code_block_respects_eol_mode ... ok [INFO] [stdout] test markdown::tests::backticks_inside_code_block_not_confused ... ok [INFO] [stdout] test markdown::tests::mixed_content_streaming ... ok [INFO] [stdout] test markdown::tests::consecutive_code_blocks ... ok [INFO] [stdout] test markdown::tests::code_block_flush_mid_block ... ok [INFO] [stdout] test markdown::tests::heading_inside_code_block_not_rendered ... ok [INFO] [stdout] test self_update::tests::detect_self_build_some_when_binary_is_newer ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/piku-4f60af7769e24bc5) [INFO] [stdout] test self_update::tests::do_replace_with_real_binary_content ... ok [INFO] [stderr] Running tests/agentic_user.rs (/opt/rustwide/target/debug/deps/agentic_user-b7e5a7a0318683fa) [INFO] [stdout] [INFO] [stdout] test result: ok. 153 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s [INFO] [stdout] [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] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test agentic_attempt_tree_learning ... ignored, live agentic-user harness; run with `cargo test --test agentic_user -- --ignored` and a provider [INFO] [stdout] test agentic_user_adversarial ... ignored, live agentic-user harness; run with `cargo test --test agentic_user -- --ignored` and a provider [INFO] [stdout] test agentic_user_cautious_beginner ... ignored, live agentic-user harness; run with `cargo test --test agentic_user -- --ignored` and a provider [INFO] [stdout] test agentic_user_confident_dev ... ignored, live agentic-user harness; run with `cargo test --test agentic_user -- --ignored` and a provider [INFO] [stdout] test agentic_user_feature_implementer ... ignored, live agentic-user harness; run with `cargo test --test agentic_user -- --ignored` and a provider [INFO] [stdout] test agentic_user_input_explorer ... ignored, live agentic-user harness; run with `cargo test --test agentic_user -- --ignored` and a provider [INFO] [stdout] test action_display ... ok [INFO] [stdout] test conversation_memory_format ... ok [INFO] [stdout] test extract_json_from_markdown_fence ... ok [INFO] [stdout] test extract_json_from_prose ... ok [INFO] [stdout] test deterministic_checks_cursor_hidden ... ok [INFO] [stdout] test extract_json_bare_object ... ok [INFO] [stdout] test screen_snapshot_is_ready_ascii_prompt ... ok [INFO] [stdout] test screen_snapshot_input_row_follows_cursor ... ok [INFO] [stdout] test screen_snapshot_is_ready_with_hint ... ok [INFO] [stdout] test screen_snapshot_not_ready_when_hidden ... ok [INFO] [stdout] test screen_snapshot_is_ready_unicode_prompt ... ok [INFO] [stdout] test workspace_observer_detects_new_file ... ok [INFO] [stdout] test terminal_observer_basic ... ok [INFO] [stdout] test terminal_observer_cursor_hide ... ok [INFO] [stdout] test terminal_observer_scrollback_captures_scrolled_content ... ok [INFO] [stdout] test terminal_observer_styled_rows ... ok [INFO] [stdout] test special_key_bytes ... ok [INFO] [stdout] test deterministic_checks_tab_change ... ok [INFO] [stdout] test workspace_observer_detects_modification ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 19 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Running tests/binary_tests.rs (/opt/rustwide/target/debug/deps/binary_tests-6d8a8312f44b69d7) [INFO] [stdout] [INFO] [stdout] running 27 tests [INFO] [stdout] test new_session_id_is_unique_across_rapid_calls ... ok [INFO] [stdout] test provider_flag_without_value_exits_nonzero ... ok [INFO] [stdout] test model_flag_without_value_does_not_crash ... ok [INFO] [stdout] test help_exits_zero_and_contains_usage ... ok [INFO] [stdout] test provider_flag_without_value_does_not_crash ... ok [INFO] [stdout] test model_flag_without_value_exits_nonzero ... ok [INFO] [stdout] test help_short_flag_identical_to_long ... ok [INFO] [stdout] test resume_flag_without_value_exits_nonzero ... ok [INFO] [stdout] test piku_restarted_env_var_prints_restart_message_on_any_invocation ... ok [INFO] [stdout] test version_runs_with_custom_config_dir ... ok [INFO] [stdout] test version_output_does_not_spawn_date_subprocess ... ok [INFO] [stdout] test version_prints_semver_to_stdout ... ok [INFO] [stdout] test xdg_config_home_controls_session_location ... ok [INFO] [stdout] test version_short_flag_identical_to_long ... ok [INFO] [stdout] test version_writes_to_stdout_not_stderr ... ok [INFO] [stdout] test openrouter_without_key_exits_nonzero_mentions_key ... ok [INFO] [stdout] test resume_nonexistent_session_exits_nonzero ... ok [INFO] [stdout] test model_equals_form_is_accepted ... ok [INFO] [stdout] test missing_api_key_exits_nonzero_with_actionable_error ... ok [INFO] [stdout] test groq_without_key_exits_nonzero_mentions_key ... ok [INFO] [stdout] test anthropic_without_key_exits_nonzero ... ok [INFO] [stdout] test flags_only_no_prompt_enters_repl ... ok [INFO] [stdout] test no_args_starts_tui_repl_and_exits_zero ... ok [INFO] [stdout] test read_only_no_prompt_starts_tui_repl_and_does_not_crash ... ok [INFO] [stdout] test unknown_provider_exits_nonzero_and_names_it ... ok [INFO] [stdout] test providers_flag_exits_zero_without_provider_key ... ok [INFO] [stderr] Running tests/dogfood.rs (/opt/rustwide/target/debug/deps/dogfood-13f3b1bfe8f3ff08) [INFO] [stdout] test ollama_provider_resolves_without_key ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.46s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test dogfood_add_function_to_existing_file ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_bash_and_use_output ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_explore_codebase ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_find_off_by_one_bug ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_multifile_rename ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_read_and_answer ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_read_edit_verify_loop ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_self_describe_architecture ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_targeted_edit_preserves_neighbor ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_trace_file_is_written ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_write_new_file_from_scratch ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] test dogfood_write_tests_for_function ... ignored, live LLM dogfood; run with `cargo test --test dogfood -- --ignored` and a provider key [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/input_integration.rs (/opt/rustwide/target/debug/deps/input_integration-c894a6d8ea64c178) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test ctrl_c_behavior ... ok [INFO] [stdout] test ctrl_d_behavior ... ok [INFO] [stdout] test tab_completion ... ok [INFO] [stdout] test kill_yank_undo ... ok [INFO] [stdout] test multiline_editing ... ok [INFO] [stdout] test ghost_text_accept ... ok [INFO] [stdout] test paste_normalization ... ok [INFO] [stdout] test readline_sequence ... ok [INFO] [stdout] test stash_workflow ... ok [INFO] [stdout] test type_clear_retype_recall ... ok [INFO] [stdout] test esc_then_history ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/llm_e2e.rs (/opt/rustwide/target/debug/deps/llm_e2e-97a5e879c2c304b5) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test piku_adds_doc_comment_to_rust_function ... ignored, live LLM e2e; run with `cargo test --test llm_e2e -- --ignored` and a provider key [INFO] [stdout] test piku_creates_new_file_with_content ... ignored, live LLM e2e; run with `cargo test --test llm_e2e -- --ignored` and a provider key [INFO] [stdout] test piku_explores_own_codebase_with_glob_and_read ... ignored, live LLM e2e; run with `cargo test --test llm_e2e -- --ignored` and a provider key [INFO] [stdout] test piku_reads_file_and_references_content ... ignored, live LLM e2e; run with `cargo test --test llm_e2e -- --ignored` and a provider key [INFO] [stdout] test piku_runs_bash_and_reports_output ... ignored, live LLM e2e; run with `cargo test --test llm_e2e -- --ignored` and a provider key [INFO] [stdout] test live_ledger_summarizes_trace_file ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/rendering.rs (/opt/rustwide/target/debug/deps/rendering-42949b48c750a273) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test empty_tool_input ... ok [INFO] [stdout] test bash_single_line_command ... ok [INFO] [stdout] test bash_long_command_truncated ... ok [INFO] [stdout] test unknown_tool_shows_first_string_arg ... ok [INFO] [stdout] test bash_multiline_command ... ok [INFO] [stdout] test read_file_with_line_range ... ok [INFO] [stdout] test four_backtick_fence_known_limitation ... ok [INFO] [stdout] test eol_modes_consistent ... ok [INFO] [stdout] test bold_italic_combined ... ok [INFO] [stdout] test nested_blockquote ... ok [INFO] [stdout] test read_file_short_path ... ok [INFO] [stdout] test ordered_list_custom_start ... ok [INFO] [stdout] test grep_with_path ... ok [INFO] [stdout] test code_block_trailing_blank ... ok [INFO] [stdout] test full_assistant_response ... ok [INFO] [stdout] test code_block_streamed_byte_by_byte ... ok [INFO] [stdout] test interleaved_code_and_text ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s [INFO] [stdout] [INFO] [stderr] Running tests/self_update_e2e.rs (/opt/rustwide/target/debug/deps/self_update_e2e-fd1f49956e6d4d3d) [INFO] [stdout] [INFO] [stdout] running 59 tests [INFO] [stdout] test bug_a_detect_self_build::failed_build_never_triggers ... ok [INFO] [stdout] test bug_a_detect_self_build::cargo_build_piku_runtime_does_not_trigger ... ok [INFO] [stdout] test bug_a_detect_self_build::cargo_build_piku_tools_does_not_trigger ... ok [INFO] [stdout] test bug_a_detect_self_build::cargo_check_does_not_trigger ... ok [INFO] [stdout] test bug_a_detect_self_build::cargo_build_piku_api_does_not_trigger ... ok [INFO] [stdout] test bug_a_detect_self_build::genuine_piku_build_with_correct_marker ... ok [INFO] [stdout] test bash_detect_integration::failed_command_never_triggers_detection ... ok [INFO] [stdout] test bug_a_detect_self_build::only_finished_without_piku_marker_does_not_trigger ... ok [INFO] [stdout] test bash_detect_integration::bash_stderr_appended_to_output_for_detection ... ok [INFO] [stdout] test bash_detect_integration::cargo_version_output_does_not_trigger_detection ... ok [INFO] [stdout] test cli_parsing::help_flag_short ... ok [INFO] [stdout] test cli_parsing::model_flag_without_value_returns_arg_error ... ok [INFO] [stdout] test cli_parsing::resume_flag_without_value_returns_arg_error ... ok [INFO] [stdout] test cli_parsing::provider_flag_without_value_returns_arg_error ... ok [INFO] [stdout] test cli_parsing::bare_read_only_enters_read_only_repl ... ok [INFO] [stdout] test cli_parsing::resume_flag_space_form ... ok [INFO] [stdout] test cli_parsing::model_flag_space_form ... ok [INFO] [stdout] test cli_parsing::provider_flag_space_form ... ok [INFO] [stdout] test cli_parsing::multi_word_prompt_is_joined ... ok [INFO] [stdout] test cli_parsing::version_flag_long ... ok [INFO] [stdout] test cli_parsing::version_flag_short ... ok [INFO] [stdout] test detect_self_build::does_not_false_positive_on_other_crate_only ... ok [INFO] [stdout] test detect_self_build::returns_none_on_failed_exit_even_with_piku_marker ... ok [INFO] [stdout] test detect_self_build::returns_none_on_failed_exit ... ok [INFO] [stdout] test detect_self_build::returns_none_without_finished_marker ... ok [INFO] [stdout] test detect_self_build::returns_none_when_binary_not_newer ... ok [INFO] [stdout] test cli_parsing::provider_flag_equals_form ... ok [INFO] [stdout] test cli_parsing::resume_with_model_and_provider ... ok [INFO] [stdout] test cli_parsing::model_flag_empty_value_returns_arg_error ... ok [INFO] [stdout] test cli_parsing::model_flag_equals_form ... ok [INFO] [stdout] test cli_parsing::prompt_before_flags_still_works ... ok [INFO] [stdout] test cli_parsing::model_and_provider_together ... ok [INFO] [stdout] test cli_parsing::resume_with_prompt ... ok [INFO] [stdout] test cli_parsing::single_word_prompt ... ok [INFO] [stdout] test cli_parsing::resume_flag_equals_form ... ok [INFO] [stdout] test provider_resolution::custom_without_base_url_errors ... ok [INFO] [stdout] test provider_resolution::groq_without_key_errors ... ok [INFO] [stdout] test provider_resolution::openrouter_without_key_errors ... ok [INFO] [stdout] test provider_resolution::unknown_provider_name_errors_with_message ... ok [INFO] [stdout] test do_replace_real_binary::old_target_unchanged_when_new_binary_missing ... ok [INFO] [stdout] test cli_parsing::help_flag_long ... ok [INFO] [stdout] test cli_parsing::empty_args_returns_repl ... ok [INFO] [stdout] test session_isolation::overwriting_same_session_file_preserves_latest_state ... ok [INFO] [stdout] test session_isolation::two_sessions_with_different_ids_do_not_overwrite ... ok [INFO] [stdout] test piku_md::deduplicates_identical_content_across_ancestor_dirs ... ok [INFO] [stdout] test piku_md::both_piku_md_and_piku_local_md_loaded_when_different ... ok [INFO] [stdout] test detect_self_build::mtime_newer_than_is_directional ... ok [INFO] [stdout] test session_resume::resume_with_only_user_message_adds_new_user_correctly ... ok [INFO] [stdout] test session_resume::orphaned_tool_use_in_session_is_detected ... ok [INFO] [stdout] test session_isolation::session_save_to_nonexistent_parent_dir_creates_it ... ok [INFO] [stdout] test session_resume::resume_after_mid_turn_interrupt_produces_valid_api_sequence ... ok [INFO] [stdout] test piku_md::large_piku_md_is_truncated_with_marker ... ok [INFO] [stdout] test detect_self_build::returns_some_when_binary_is_newer_and_output_has_finished ... ok [INFO] [stdout] test piku_md::piku_md_content_appears_in_system_prompt ... ok [INFO] [stdout] test provider_resolution::ollama_always_succeeds_resolve_named ... ok [INFO] [stdout] test do_replace_real_binary::subprocess_runs_replaced_binary ... ok [INFO] [stdout] test do_replace_real_binary::replace_is_atomic_no_tmp_file_left_on_success ... ok [INFO] [stdout] test do_replace_real_binary::replaced_binary_is_executable ... ok [INFO] [stderr] Running tests/test_helpers.rs (/opt/rustwide/target/debug/deps/test_helpers-bc8a5b4a662ab8ee) [INFO] [stdout] test do_replace_real_binary::replaces_target_with_exact_bytes_of_new_binary ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.21s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stderr] Running tests/tui_formatting.rs (/opt/rustwide/target/debug/deps/tui_formatting-f18cf7509c1714cb) [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] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test duration_hours ... ok [INFO] [stdout] test duration_seconds ... ok [INFO] [stdout] test duration_minutes ... ok [INFO] [stdout] test pretty_json_not_json ... ok [INFO] [stdout] test markdown_fast_path_plain_text ... ok [INFO] [stdout] test markdown_flush_adds_eol_to_partial ... ok [INFO] [stdout] test tool_input_bash_empty ... ok [INFO] [stdout] test visible_width_ansi ... ok [INFO] [stdout] test pretty_json_too_large ... ok [INFO] [stdout] test markdown_blockquote_uses_quarter_block ... ok [INFO] [stdout] test tool_input_bash_multiline_shows_count ... ok [INFO] [stdout] test tool_input_read_file_short_path_unchanged ... ok [INFO] [stdout] test tool_input_bash_very_long_truncated ... ok [INFO] [stdout] test tool_input_grep_with_long_path ... ok [INFO] [stdout] test tool_input_read_file_long_path_shortened ... ok [INFO] [stdout] test visible_width_complex_ansi ... ok [INFO] [stdout] test visible_width_plain ... ok [INFO] [stdout] test tool_input_read_file_with_lines ... ok [INFO] [stdout] test visible_width_empty ... ok [INFO] [stdout] test tool_input_unknown_tool_first_string ... ok [INFO] [stdout] test visible_width_prompt ... ok [INFO] [stdout] test tool_input_bash_short ... ok [INFO] [stdout] test markdown_fast_path_still_handles_code_blocks ... ok [INFO] [stdout] test pretty_json_object ... ok [INFO] [stdout] test tool_input_grep_pattern_only ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s [INFO] [stdout] [INFO] [stderr] Running tests/tui_output.rs (/opt/rustwide/target/debug/deps/tui_output-84f8e32efed1fc56) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test cursor_restored_on_ctrl_c ... ok [INFO] [stdout] test cursor_restored_in_teardown ... ok [INFO] [stdout] test user_message_echo_includes_input_variable ... ok [INFO] [stdout] test cursor_show_sequence_present_after_turn ... ok [INFO] [stdout] test bash_output_not_dimmed_in_format_tool_result ... ok [INFO] [stdout] test user_message_echoed_before_run_turn ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/tui_smoke.rs (/opt/rustwide/target/debug/deps/tui_smoke-d57142a9ca3008b1) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test ctrl_c_mid_turn_cancels_cleanly ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test ctrl_d_on_empty_prompt_exits_cleanly ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test help_slash_command_renders ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test hooks_config_loads_from_project_file ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test hooks_slash_command_renders ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test permissions_slash_command_renders ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test pty_resize_does_not_panic ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test read_only_flag_starts_read_only_tui ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test sigterm_restores_terminal_before_exit ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] test submit_does_not_panic_on_turn_start ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stderr] Running tests/vt100_rendering.rs (/opt/rustwide/target/debug/deps/vt100_rendering-998fb72e57ce01b0) [INFO] [stdout] test two_consecutive_prompts_echo_normally ... ignored, PTY smoke: slow/fragile under concurrent-binary load; run isolated via `scripts/ci.sh pty` [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test thinking_indicator_renders ... ok [INFO] [stdout] test tool_result_connector_renders ... ok [INFO] [stdout] test inline_formatting_shows_plain_text ... ok [INFO] [stdout] test horizontal_rule_renders ... ok [INFO] [stdout] test footer_reverse_video ... ok [INFO] [stdout] test blockquote_renders_with_bar ... ok [INFO] [stdout] test tool_start_renders_dot_and_name ... ok [INFO] [stdout] test heading_renders_as_text ... ok [INFO] [stdout] test full_turn_output ... ok [INFO] [stdout] test list_bullets_render ... ok [INFO] [stdout] test code_block_has_frame_chars ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/piku_api-a95ed00d4eec6352) [INFO] [stdout] [INFO] [stdout] running 45 tests [INFO] [stdout] test tests::anthropic_sse_parsing::done_produces_no_events ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::message_delta_missing_delta_key_does_not_panic ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::ping_produces_no_events ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_delta_text_emits_text_delta ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_delta_input_json_emits_tool_use_delta ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::bad_json_returns_parse_error ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_stop_emits_tool_use_end ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::message_start_emits_usage_delta ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_start_missing_content_block_key_does_not_panic ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_start_tool_use_emits_tool_use_start ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::message_delta_with_stop_reason_emits_message_stop ... ok [INFO] [stdout] test tests::openai_body_builder::explicit_empty_tools_produces_no_tools_key ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_start_text_produces_no_events ... ok [INFO] [stdout] test tests::openai_body_builder::no_tools_key_when_empty ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::content_block_delta_missing_delta_key_does_not_panic ... ok [INFO] [stdout] test tests::anthropic_sse_parsing::message_delta_tool_use_stop_reason ... ok [INFO] [stdout] test tests::openai_body_builder::tool_result_emits_tool_role_message ... ok [INFO] [stdout] test tests::openai_body_builder::tools_emitted_correctly ... ok [INFO] [stdout] test tests::openai_body_builder::error_tool_result_still_uses_tool_role ... ok [INFO] [stdout] test tests::openai_sse_parsing::finish_reason_tool_calls ... ok [INFO] [stdout] test tests::sse_extended::crlf_line_endings_are_stripped ... ok [INFO] [stdout] test tests::sse_extended::event_field_with_extra_spaces ... ok [INFO] [stdout] test tests::openai_body_builder::unknown_finish_reason_maps_to_other ... ok [INFO] [stdout] test tests::openai_sse_parsing::bad_json_returns_parse_error ... ok [INFO] [stdout] test tests::openai_body_builder::user_message_as_string ... ok [INFO] [stdout] test tests::openai_sse_parsing::empty_text_delta_skipped ... ok [INFO] [stdout] test tests::openai_sse_parsing::done_produces_no_events ... ok [INFO] [stdout] test tests::openai_body_builder::system_prompt_injected ... ok [INFO] [stdout] test tests::openai_sse_parsing::text_delta ... ok [INFO] [stdout] test tests::openai_sse_parsing::usage_in_final_chunk ... ok [INFO] [stdout] test tests::openai_sse_parsing::tool_call_start_and_delta ... ok [INFO] [stdout] test tests::openai_sse_parsing::finish_reason_stop ... ok [INFO] [stdout] test tests::sse_extended::multiline_data_field_accumulates_with_newline_separator ... ok [INFO] [stdout] test tests::sse_extended::event_field_with_no_space_after_colon ... ok [INFO] [stdout] test tests::sse_parser::finish_flushes_buffered_data_without_trailing_blank ... ok [INFO] [stdout] test tests::sse_parser::multiple_events_sequential ... ok [INFO] [stdout] test tests::sse_parser::no_dispatch_on_empty_data ... ok [INFO] [stdout] test tests::sse_parser::strips_trailing_newline_from_data ... ok [INFO] [stdout] test tests::token_usage::accumulate ... ok [INFO] [stdout] test tests::token_usage::total_tokens ... ok [INFO] [stdout] test tests::sse_parser::event_type_resets_between_events ... ok [INFO] [stdout] test tests::sse_parser::finish_preserves_event_type ... ok [INFO] [stdout] test tests::sse_parser::finish_returns_none_when_nothing_buffered ... ok [INFO] [stdout] test tests::sse_parser::ignores_comments_and_id ... ok [INFO] [stdout] test tests::sse_parser::parses_single_event ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/piku_runtime-9bbb53c36bca160e) [INFO] [stdout] [INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 191 tests [INFO] [stdout] test agents::tests::agent_def_tool_filtering ... ok [INFO] [stdout] test agents::tests::agent_def_allowlist_precedence ... ok [INFO] [stdout] test agent_loop::curation_tests::pressure_matches_input_tokens_over_window ... ok [INFO] [stdout] test agents::tests::agent_listing_includes_custom ... ok [INFO] [stdout] test agent_loop::curation_tests::within_budget_returns_everything ... ok [INFO] [stdout] test agent_loop::curation_tests::preserves_chronological_order ... ok [INFO] [stdout] test agents::tests::find_agent_custom_overrides_builtin ... ok [INFO] [stdout] test agents::tests::extract_field_basic ... ok [INFO] [stdout] test agents::tests::extract_list_field_basic ... ok [INFO] [stdout] test agents::tests::find_built_in_works ... ok [INFO] [stdout] test agents::tests::extract_list_field_quoted ... ok [INFO] [stdout] test agents::tests::frontmatter_crlf_line_endings ... ok [INFO] [stdout] test agents::tests::frontmatter_empty_body ... ok [INFO] [stdout] test agents::tests::frontmatter_crlf_closing_delimiter ... ok [INFO] [stdout] test agents::tests::frontmatter_not_at_start_returns_none ... ok [INFO] [stdout] test agents::tests::frontmatter_empty_returns_some ... ok [INFO] [stdout] test agents::tests::split_frontmatter_basic ... ok [INFO] [stdout] test compact::tests::apply_compact_preserves_recent ... ok [INFO] [stdout] test agent_loop::curation_tests::higher_importance_beats_lower ... ok [INFO] [stdout] test agents::tests::frontmatter_no_closing_delimiter_returns_none ... ok [INFO] [stdout] test agents::tests::split_frontmatter_ignores_inline_dashes ... ok [INFO] [stdout] test compact::tests::continuation_message_contains_summary ... ok [INFO] [stdout] test agent_loop::curation_tests::tool_use_result_pair_kept_atomically_or_dropped ... ok [INFO] [stdout] test compact::tests::masking_preserves_text_blocks ... ok [INFO] [stdout] test compact::tests::for_window_scales_threshold ... ok [INFO] [stdout] test compact::tests::masking_preserves_small_tool_results ... ok [INFO] [stdout] test compact::tests::format_strips_analysis_keeps_summary ... ok [INFO] [stdout] test compact::tests::small_window_doesnt_starve_recent_messages ... ok [INFO] [stdout] test compact::tests::compact_uses_masking_before_hard_compaction ... ok [INFO] [stdout] test compact::tests::strip_tag_block_multiple_occurrences ... ok [INFO] [stdout] test agents::tests::load_custom_agents_no_dir ... ok [INFO] [stdout] test embed_memory::tests::access_tracking ... ok [INFO] [stdout] test agents::tests::parse_agent_markdown_roundtrip ... ok [INFO] [stdout] test agents::tests::parse_agent_missing_description_skipped ... ok [INFO] [stdout] test embed_memory::backend::tests::custom_url_respects_explicit_ollama_backend ... ok [INFO] [stdout] test embed_memory::backend::tests::default_reuses_ollama_host ... ok [INFO] [stdout] test embed_memory::backend::tests::custom_url_defaults_to_openai_compat ... ok [INFO] [stdout] test agents::tests::parse_agent_with_all_fields ... ok [INFO] [stdout] test agents::tests::non_md_files_ignored ... ok [INFO] [stdout] test compact::tests::masking_replaces_large_tool_results ... ok [INFO] [stdout] test embed_memory::tests::attempt_count_via_store_view ... ok [INFO] [stdout] test embed_memory::tests::composite_score_high_access_count_capped ... ok [INFO] [stdout] test embed_memory::tests::build_transcript_filters_roles ... ok [INFO] [stdout] test embed_memory::tests::children_returns_direct_children ... ok [INFO] [stdout] test embed_memory::tests::build_attempt_tree_structure ... ok [INFO] [stdout] test compact::tests::small_session_not_compacted ... ok [INFO] [stdout] test compact::tests::large_session_is_compacted ... ok [INFO] [stdout] test embed_memory::tests::confidence_gating ... ok [INFO] [stdout] test embed_memory::tests::attempt_backward_compat_serde ... ok [INFO] [stdout] test embed_memory::tests::composite_score_zero_importance ... ok [INFO] [stdout] test embed_memory::tests::dot_product_of_normalized ... ok [INFO] [stdout] test embed_memory::tests::composite_scoring_prefers_recent_important ... ok [INFO] [stdout] test embed_memory::tests::empty_store_search_returns_empty ... ok [INFO] [stdout] test embed_memory::tests::corrupt_json_backed_up ... ok [INFO] [stdout] test embed_memory::tests::evict_stale_removes_old_low_importance ... ok [INFO] [stdout] test embed_memory::tests::evict_stale_wont_orphan_children ... ok [INFO] [stdout] test embed_memory::tests::facts_still_evict_normally_with_tree_logic ... ok [INFO] [stdout] test embed_memory::tests::evict_weak_wont_orphan_children ... ok [INFO] [stdout] test embed_memory::tests::format_attempt_tree_rendering ... ok [INFO] [stdout] test embed_memory::tests::evict_stale_keeps_unresolved_tree ... ok [INFO] [stdout] test embed_memory::tests::evict_stale_can_evict_resolved_leaf ... ok [INFO] [stdout] test embed_memory::tests::attempt_serde_roundtrip ... ok [INFO] [stdout] test embed_memory::tests::evict_stale_keeps_high_importance_old ... ok [INFO] [stdout] test embed_memory::tests::find_attempt_trees_returns_matching ... ok [INFO] [stdout] test embed_memory::tests::evict_weak_removes_zero_strength ... ok [INFO] [stdout] test embed_memory::tests::format_memories_shows_scores ... ok [INFO] [stdout] test embed_memory::tests::maintain_preserves_high_importance_old_memories ... ok [INFO] [stdout] test embed_memory::tests::hybrid_retrieve_boosts_keyword_matches ... ok [INFO] [stdout] test embed_memory::tests::maintain_returns_counts ... ok [INFO] [stdout] test embed_memory::tests::importance_gate_on_insert ... ok [INFO] [stdout] test embed_memory::tests::normalize_works ... ok [INFO] [stdout] test embed_memory::tests::parse_attempt_lines_none_response ... ok [INFO] [stdout] test embed_memory::tests::inspect_shows_attempt_fields ... ok [INFO] [stdout] test embed_memory::tests::insert_and_retrieve ... ok [INFO] [stdout] test embed_memory::tests::format_attempt_trees_empty ... ok [INFO] [stdout] test embed_memory::tests::parse_extraction_no_tags ... ok [INFO] [stdout] test embed_memory::tests::parse_attempt_lines_basic ... ok [INFO] [stdout] test embed_memory::tests::parse_attempt_lines_skips_pending ... ok [INFO] [stdout] test embed_memory::tests::parse_attempt_lines_skips_incomplete ... ok [INFO] [stdout] test embed_memory::tests::parse_extraction_importance_gate ... ok [INFO] [stdout] test embed_memory::tests::parse_extraction_shared_tags_fallback ... ok [INFO] [stdout] test embed_memory::tests::parse_extraction_none ... ok [INFO] [stdout] test embed_memory::tests::parse_judgment_add ... ok [INFO] [stdout] test embed_memory::tests::parse_judgment_garbage_defaults_to_add ... ok [INFO] [stdout] test embed_memory::tests::parse_extraction_per_fact_tags ... ok [INFO] [stdout] test embed_memory::tests::parse_judgment_ignore ... ok [INFO] [stdout] test embed_memory::tests::parse_judgment_update ... ok [INFO] [stdout] test embed_memory::tests::parse_mixed_facts_and_attempts ... ok [INFO] [stdout] test agent_loop::curation_tests::tail_is_always_kept ... ok [INFO] [stdout] test agent_loop::runtime_tests::dedicated_thread_bridge_works_inside_local_set ... ok [INFO] [stdout] test embed_memory::tests::path_to_root_single_node ... ok [INFO] [stdout] test embed_memory::tests::path_to_root_traces_ancestry ... ok [INFO] [stdout] test embed_memory::tests::record_attempt_creates_attempt_entry ... ok [INFO] [stdout] test embed_memory::tests::record_outcome_via_store_view ... ok [INFO] [stdout] test embed_memory::tests::record_outcome_updates_attempt ... ok [INFO] [stdout] test embed_memory::tests::record_outcome_nonexistent_returns_false ... ok [INFO] [stdout] test embed_memory::tests::search_all_invalid_returns_empty ... ok [INFO] [stdout] test embed_memory::tests::search_empty_store_returns_empty ... ok [INFO] [stdout] test embed_memory::tests::search_excludes_invalid_entries ... ok [INFO] [stdout] test embed_memory::tests::search_with_mismatched_dimensions_does_not_panic ... ok [INFO] [stdout] test embed_memory::tests::store_view_inspect ... ok [INFO] [stdout] test embed_memory::tests::store_view_invalidate ... ok [INFO] [stdout] test embed_memory::tests::siblings_excludes_self ... ok [INFO] [stdout] test embed_memory::tests::store_view_list_recent ... ok [INFO] [stdout] test embed_memory::tests::store_view_query_tags ... ok [INFO] [stdout] test embed_memory::tests::superseding_marks_old_invalid ... ok [INFO] [stdout] test embed_memory::tests::store_view_stats ... ok [INFO] [stdout] test embed_memory::tests::tree_is_resolved_false_when_all_fail ... ok [INFO] [stdout] test hooks::tests::check_if_contains_pattern ... ok [INFO] [stdout] test hooks::tests::check_if_file_pattern ... ok [INFO] [stdout] test embed_memory::tests::save_and_load_roundtrip ... ok [INFO] [stdout] test hooks::tests::check_if_no_condition ... ok [INFO] [stdout] test hooks::tests::merge_hook_configs ... ok [INFO] [stdout] test hooks::tests::parse_allow_decision ... ok [INFO] [stdout] test hooks::tests::parse_deny_decision ... ok [INFO] [stdout] test hooks::tests::load_empty_config ... ok [INFO] [stdout] test hooks::tests::matches_tool_alternation ... ok [INFO] [stdout] test hooks::tests::load_config_from_file ... ok [INFO] [stdout] test hooks::tests::matches_tool_exact ... ok [INFO] [stdout] test embed_memory::tests::tree_is_resolved_checks_descendants ... ok [INFO] [stdout] test hooks::tests::check_if_tool_name_only ... ok [INFO] [stdout] test hooks::tests::check_if_bash_pattern ... ok [INFO] [stdout] test hooks::tests::matches_tool_no_matcher ... ok [INFO] [stdout] test hooks::tests::matches_tool_wildcard ... ok [INFO] [stdout] test memory::tests::agent_memory_dir_sanitizes_traversal ... ok [INFO] [stdout] test hooks::tests::parse_non_json_returns_none ... ok [INFO] [stdout] test hooks::tests::pre_tool_use_additional_context ... ok [INFO] [stdout] test memory::tests::build_agent_memory_prompt_works ... ok [INFO] [stdout] test memory::tests::empty_file_returns_none ... ok [INFO] [stdout] test memory::tests::write_and_read_project_memory ... ok [INFO] [stdout] test hooks::tests::pre_tool_use_unmatched_tool_allows ... ok [INFO] [stdout] test memory::tests::agent_memory_dir_layout ... ok [INFO] [stdout] test memory::tests::write_and_read_agent_memory ... ok [INFO] [stdout] test memory::tests::build_memory_prompt_none_when_empty ... ok [INFO] [stdout] test memory::tests::replace_section ... ok [INFO] [stdout] test memory::tests::build_memory_prompt_some_when_content ... ok [INFO] [stdout] test tests::agent_loop::simple_text_turn ... ok [INFO] [stdout] test memory::tests::truncate_at_line_limit ... ok [INFO] [stdout] test session::save_atomicity_tests::save_replaces_existing_file_atomically ... ok [INFO] [stdout] test tests::agent_loop::max_turns_stops_loop ... ok [INFO] [stdout] test tests::agent_loop::tool_call_executes_read_file ... ok [INFO] [stdout] test tests::agent_loop::user_message_appended_to_session ... ok [INFO] [stdout] test session::save_atomicity_tests::save_does_not_leave_tmp_files_in_place_on_success ... ok [INFO] [stdout] test tests::agent_loop_extended::unknown_tool_produces_error_result_in_session ... ok [INFO] [stdout] test tests::attempt_tree_simulation::compaction_dedup_skips_existing ... ok [INFO] [stdout] test tests::agent_loop_extended::build_request_system_role_injected_as_user_with_wrapper ... ok [INFO] [stdout] test tests::agent_loop_extended::model_field_is_propagated_to_provider ... ok [INFO] [stdout] test task::task_id_tests::task_ids_are_unique_in_tight_loop ... ok [INFO] [stdout] test tests::attempt_tree_simulation::eviction_removes_resolved_tree_leaves ... ok [INFO] [stdout] test tests::agent_loop_extended::permission_denied_tool_still_runs_others_in_same_turn ... ok [INFO] [stdout] test tests::attempt_tree_simulation::multiple_goals_stay_separate ... ok [INFO] [stdout] test tests::attempt_tree_simulation::extraction_parser_simulation ... ok [INFO] [stdout] test tests::agent_loop_extended::multiple_tool_calls_in_single_turn_all_execute ... ok [INFO] [stdout] test tests::attempt_tree_simulation::tree_formatting_structure ... ok [INFO] [stdout] test tests::attempt_tree_simulation::subagent_prompt_includes_attempts ... ok [INFO] [stdout] test tests::permissions::bash_needs_prompter_decision ... ok [INFO] [stdout] test tests::permissions::deny_all_blocks_bash ... ok [INFO] [stdout] test tests::agent_loop_extended::stream_error_sets_stream_error_field_and_no_panic ... ok [INFO] [stdout] test tests::attempt_tree_simulation::eviction_preserves_unresolved_across_sessions ... ok [INFO] [stdout] test tests::permissions::glob_always_allowed ... ok [INFO] [stdout] test tests::permissions::deny_all_blocks_write ... ok [INFO] [stdout] test tests::permissions::grep_always_allowed ... ok [INFO] [stdout] test tests::permissions::list_dir_always_allowed ... ok [INFO] [stdout] test tests::permissions::read_file_always_allowed ... ok [INFO] [stdout] test tests::permissions::new_file_write_is_safe_even_with_deny_all ... ok [INFO] [stdout] test tests::session::content_block_text_len ... ok [INFO] [stdout] test tests::session::estimated_tokens_nonzero_for_content ... ok [INFO] [stdout] test tests::session::finish_turn_increments_counter ... ok [INFO] [stdout] test tests::session::new_session_is_empty ... ok [INFO] [stdout] test tests::session::push_and_retrieve ... ok [INFO] [stdout] test tests::session::save_and_load_roundtrip ... ok [INFO] [stdout] test tests::session::usage_tracker_accumulates ... ok [INFO] [stdout] test tests::prompt_extended::loads_piku_md_from_directory ... ok [INFO] [stdout] test tests::session::usage_tracker_from_session ... ok [INFO] [stdout] test tests::attempt_tree_simulation::persistence_roundtrip_preserves_tree ... ok [INFO] [stdout] test tests::attempt_tree_simulation::full_lifecycle_record_then_query ... ok [INFO] [stdout] test tests::session_extended::empty_session_save_load_roundtrip ... ok [INFO] [stdout] test tests::session_extended::estimated_tokens_counts_all_block_types ... ok [INFO] [stdout] test tests::prompt_extended::contains_cwd_and_model ... ok [INFO] [stdout] test tests::prompt_extended::truncates_large_piku_md ... ok [INFO] [stdout] test tests::prompt_extended::contains_cache_boundary_marker ... ok [INFO] [stdout] test tests::session_extended::load_malformed_json_returns_invalid_data_error ... ok [INFO] [stdout] test hooks::tests::stop_hook_fires ... ok [INFO] [stdout] test session::save_atomicity_tests::readers_never_see_partial_file_during_concurrent_saves ... ok [INFO] [stdout] test hooks::tests::run_session_start_captures_stdout ... ok [INFO] [stdout] test hooks::tests::pre_tool_use_exit2_blocks ... ok [INFO] [stdout] test task::worktree_guard_tests::defused_guard_does_not_touch_worktree ... ok [INFO] [stdout] test agent_loop::runtime_tests::block_in_place_inside_local_set_panics ... ok [INFO] [stdout] test task::worktree_guard_tests::guard_cleans_up_on_panic ... ok [INFO] [stdout] test hooks::tests::async_hook_completes_before_shutdown_returns ... ok [INFO] [stdout] test hooks::tests::hook_timeout_kills_slow_command ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 191 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s [INFO] [stdout] [INFO] [stderr] Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-6a38ef97a3f763c6) [INFO] [stdout] [INFO] [stdout] running 36 tests [INFO] [stdout] test auto_compact_prefers_masking_over_summarization ... ok [INFO] [stdout] test completion_notification_fires ... ok [INFO] [stdout] test e2e_simple_text_response ... ok [INFO] [stdout] test e2e_stream_error_session_not_corrupted ... ok [INFO] [stdout] test e2e_edit_real_rust_source_adds_comment ... ok [INFO] [stdout] test e2e_system_prompt_reaches_provider ... ok [INFO] [stdout] test e2e_session_persists_and_resumes ... ok [INFO] [stdout] test auto_compact_triggers_at_threshold ... ok [INFO] [stdout] test e2e_read_edit_verify_loop ... ok [INFO] [stdout] test e2e_max_turns_prevents_infinite_loop ... ok [INFO] [stdout] test e2e_permission_denied_stops_tool_not_loop ... ok [INFO] [stdout] test e2e_adds_function_to_existing_rust_file ... ok [INFO] [stdout] test e2e_reads_file_via_tool ... ok [INFO] [stdout] test e2e_bash_runs_real_command ... ok [INFO] [stdout] test e2e_reads_file_and_answers_with_unique_value ... ok [INFO] [stdout] test e2e_edit_ambiguous_recovers_with_context ... ok [INFO] [stdout] test regression_bug_d_edit_file_crlf_content_preserved_exactly ... ok [INFO] [stdout] test e2e_edit_file_surgical ... ok [INFO] [stdout] test explorer_agent_disallows_bash ... ok [INFO] [stdout] test regression_bug_b_sh_c_not_lc_used ... ok [INFO] [stdout] test fork_param_parsed ... ok [INFO] [stdout] test regression_bug_e_glob_allows_normal_patterns ... ok [INFO] [stdout] test regression_bug_d_edit_file_works_on_crlf_file ... ok [INFO] [stdout] test regression_bug_e_glob_allows_recursive_within_base ... ok [INFO] [stdout] test regression_bug_e_glob_rejects_traversal_pattern ... ok [INFO] [stdout] test subagent_type_routes_to_builtin_system_prompt ... ok [INFO] [stdout] test task_failure_notification_fires ... ok [INFO] [stdout] test e2e_write_then_read_file ... ok [INFO] [stdout] test e2e_unadvertised_tool_call_is_not_executed ... ok [INFO] [stdout] test regression_bug_c_coalesced_tool_result_plus_text_not_dropped ... ok [INFO] [stdout] test e2e_glob_and_grep_codebase ... ok [INFO] [stdout] test e2e_multifile_rename_updates_all_call_sites ... ok [INFO] [stdout] test regression_bug_f_multi_tool_oai_delta_naming_second_tool_gets_params ... ok [INFO] [stdout] test spawn_agent_completes_in_local_set ... ok [INFO] [stdout] test regression_bug_b_kill_on_drop_prevents_zombie ... ok [INFO] [stdout] test e2e_self_update_signal_breaks_loop ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.05s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/piku_tools-e127e23a3615a2ae) [INFO] [stdout] [INFO] [stdout] running 71 tests [INFO] [stdout] test tests::bash::echo_is_likely ... ok [INFO] [stdout] test tests::bash_extended::append_redirect_is_likely_not_definite ... ok [INFO] [stdout] test tests::bash_extended::pipe_to_bash_is_definite ... ok [INFO] [stdout] test tests::bash_extended::fork_bomb_is_definite ... ok [INFO] [stdout] test tests::bash_extended::benign_command_is_at_least_likely ... ok [INFO] [stdout] test tests::bash_extended::eval_rm_is_definite ... ok [INFO] [stdout] test tests::bash_extended::curl_pipe_sh_is_definite ... ok [INFO] [stdout] test tests::bash::rm_is_definite ... ok [INFO] [stdout] test tests::edit_file::errors_on_missing_file ... ok [INFO] [stdout] test tests::edit_file::replace_all ... ok [INFO] [stdout] test tests::edit_file_edge_cases::destructiveness_outside_cwd_is_definite ... ok [INFO] [stdout] test tests::edit_file_edge_cases::replace_all_empty_old_string_does_not_corrupt_file ... ok [INFO] [stdout] test tests::bash_extended::redirect_to_path_with_spaces_is_caught ... ok [INFO] [stdout] test tests::bash::redirect_to_existing_is_definite ... ok [INFO] [stdout] test tests::bash_extended::rm_rf_root_is_definite ... ok [INFO] [stdout] test tests::bash_extended::sudo_is_definite ... ok [INFO] [stdout] test tests::edit_file::replaces_emoji_content ... ok [INFO] [stdout] test tests::bash_extended::nonzero_exit_with_stdout_and_stderr ... ok [INFO] [stdout] test tests::edit_file::errors_on_not_found ... ok [INFO] [stdout] test tests::edit_file::replaces_unicode_old_string ... ok [INFO] [stdout] test tests::edit_file::replaces_exact_match ... ok [INFO] [stdout] test tests::bash::runs_simple_command ... ok [INFO] [stdout] test tests::edit_file_edge_cases::destructiveness_inside_cwd_is_likely ... ok [INFO] [stdout] test tests::glob_extended::invalid_pattern_returns_error ... ok [INFO] [stdout] test tests::glob_tool::always_safe ... ok [INFO] [stdout] test tests::glob_tool::no_match_returns_no_matches ... ok [INFO] [stdout] test tests::bash_extended::success_with_stderr_appended_to_output ... ok [INFO] [stdout] test tests::glob_extended::recursive_glob_finds_nested_files ... ok [INFO] [stdout] test tests::edit_file_edge_cases::replace_non_empty_old_string_with_replace_all_replaces_correctly ... ok [INFO] [stdout] test tests::glob_tool::finds_matching_files ... ok [INFO] [stdout] test tests::edit_file::errors_on_ambiguous_match ... ok [INFO] [stdout] test tests::list_dir_tool::always_safe ... ok [INFO] [stdout] test tests::read_file::missing_file_is_error ... ok [INFO] [stdout] test tests::list_dir_tool::missing_dir_is_error ... ok [INFO] [stdout] test tests::bash::captures_exit_code_error ... ok [INFO] [stdout] test tests::list_dir_tool::empty_dir_message ... ok [INFO] [stdout] test tests::read_file_bounds::start_greater_than_end_returns_error_not_panic ... ok [INFO] [stdout] test tests::read_file_bounds::start_line_past_eof_returns_empty_not_panic ... ok [INFO] [stdout] test tests::read_file_bounds::empty_file_with_line_range_no_panic ... ok [INFO] [stdout] test tests::read_file_bounds::start_line_zero_treated_as_first_line ... ok [INFO] [stdout] test tests::registry::read_only_tool_definitions_only_include_file_inspection_tools ... ok [INFO] [stdout] test tests::sandbox::opt_out_env_disables_sandbox ... ok [INFO] [stdout] test tests::read_file_bounds::end_line_past_eof_is_clamped ... ok [INFO] [stdout] test tests::sandbox::write_file_allows_absolute_user_path ... ok [INFO] [stdout] test tests::sandbox::write_file_allows_within_cwd ... ok [INFO] [stdout] test tests::sandbox::write_file_refuses_absolute_system_path ... ok [INFO] [stdout] test tests::sandbox::edit_file_refuses_parent_traversal ... ok [INFO] [stdout] test tests::sandbox::write_file_refuses_parent_traversal ... ok [INFO] [stdout] test tests::grep_tool::include_filter_works ... ok [INFO] [stdout] test tests::write_file::creates_new_file ... ok [INFO] [stdout] test tests::grep_extended::search_single_file_directly ... ok [INFO] [stdout] test tests::grep_extended::max_results_truncates ... ok [INFO] [stdout] test tests::write_file::new_file_is_safe_destructiveness ... ok [INFO] [stdout] test tests::write_file::creates_parent_dirs ... ok [INFO] [stdout] test tests::list_dir_tool::lists_files_and_dirs ... ok [INFO] [stdout] test tests::write_file::overwrites_existing_file ... ok [INFO] [stdout] test tool_search::tests::search_finds_matching_tools ... ok [INFO] [stdout] test tool_search::tests::search_empty_query_is_error ... ok [INFO] [stdout] test tool_search::tests::search_multi_term_scoring ... ok [INFO] [stdout] test tool_search::tests::search_respects_max_results ... ok [INFO] [stdout] test tool_search::tests::search_no_matches ... ok [INFO] [stdout] test tests::grep_tool::no_match_returns_no_matches ... ok [INFO] [stdout] test tests::read_file::reads_line_range ... ok [INFO] [stdout] test tests::write_file::overwrite_is_likely_destructiveness ... ok [INFO] [stdout] test tests::bash::respects_timeout ... ok [INFO] [stdout] test tests::read_file::reads_unicode_content_without_panic ... ok [INFO] [stdout] test tests::read_file::rejects_file_over_size_limit ... ok [INFO] [stdout] test tests::read_file::reads_full_file ... ok [INFO] [stdout] test tests::grep_tool::finds_pattern_in_file ... ok [INFO] [stdout] test tests::grep_tool::always_safe ... ok [INFO] [stdout] test tests::grep_tool::invalid_regex_is_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 71 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Doc-tests piku [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 piku_api [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.01s [INFO] [stdout] [INFO] [stderr] Doc-tests piku_runtime [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 piku_tools [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" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217", kill_on_drop: false }` [INFO] [stdout] 854a1870e78765fed86e67af278e8ec7fd11eb1b41d0a24500f1850ecf797217