[INFO] cloning repository https://github.com/iannil/code-coder
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iannil/code-coder" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiannil%2Fcode-coder", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiannil%2Fcode-coder'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e060293c2a94387fe89b607eb2213ef3b1b679c3
[INFO] testing iannil/code-coder against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiannil%2Fcode-coder" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/iannil/code-coder
[INFO] finished tweaking git repo https://github.com/iannil/code-coder
[INFO] tweaked toml for git repo https://github.com/iannil/code-coder written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iannil/code-coder on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iannil/code-coder already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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] 1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6
[INFO] running `Command { std: "docker" "start" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", 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" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", 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" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "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 shlex v2.0.1
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling bytes v1.12.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling pulldown-cmark v0.13.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling compact_str v0.8.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling tree-sitter-rust v0.23.3
[INFO] [stderr]    Compiling tree-sitter-python v0.23.6
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling tree-sitter v0.23.2
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling pulldown-cmark-escape v0.11.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling similar v3.1.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling ignore v0.4.26
[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 openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[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 tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[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 bincode v1.3.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[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 tower-http v0.6.11
[INFO] [stderr]    Compiling h2 v0.4.15
[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 codecoder v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: constant `SHIMMER_STEP_MS` is never used
[INFO] [stdout]   --> src/tui/primitives/spinner/shimmer_char.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const SHIMMER_STEP_MS: u64 = 80;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sweep_column` is never used
[INFO] [stdout]   --> src/tui/primitives/spinner/shimmer_char.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn sweep_column(frame_count: u64, len: usize) -> Option<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sweep_column_at` is never used
[INFO] [stdout]   --> src/tui/primitives/spinner/shimmer_char.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn sweep_column_at(elapsed: Duration, len: usize) -> Option<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLASH_PERIOD_MS` is never used
[INFO] [stdout]   --> src/tui/primitives/spinner/flashing_char.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const FLASH_PERIOD_MS: u64 = 1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_on` is never used
[INFO] [stdout]   --> src/tui/primitives/spinner/flashing_char.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn is_on(frame_count: u64) -> bool {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 19s
[INFO] running `Command { std: "docker" "inspect" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", 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" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling codecoder v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.29s
[INFO] running `Command { std: "docker" "inspect" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", 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" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.43s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/codecoder-fe5ee986d37d4d66)
[INFO] [stdout] 
[INFO] [stdout] running 757 tests
[INFO] [stdout] test agent::tests::adr0001_phase_b_cancel_does_not_poison_next_message ... ok
[INFO] [stdout] test agent::tests::adr0005_perm_scope_default_is_once ... ok
[INFO] [stdout] test agent::tests::adr0001_phase_b_pre_set_cancel_returns_interrupted ... ok
[INFO] [stdout] test agent::tests::adr0001_phase_b_cancel_mid_call_aborts_promptly ... ok
[INFO] [stdout] test agent::tests::adr0005_perm_scope_variants_exist ... ok
[INFO] [stdout] test agent::tests::adr0005_permission_engine_deny_is_absolute ... ok
[INFO] [stdout] test agent::tests::test_agent_ask_user_response ... ok
[INFO] [stdout] test agent::tests::test_agent_bus_subscriber_handles_user_message ... ok
[INFO] [stdout] test agent::tests::test_agent_bus_subscriber_ignores_non_user_message ... ok
[INFO] [stdout] test agent::tests::test_agent_bus_subscriber_name ... ok
[INFO] [stdout] test agent::tests::test_agent_heartbeat_response ... ok
[INFO] [stdout] test agent::tests::test_agent_permission_request_response ... ok
[INFO] [stdout] test agent::tests::test_agent_plan_request_response ... ok
[INFO] [stdout] test agent::tests::test_agent_response_llm_delta ... ok
[INFO] [stdout] test agent::tests::test_agent_response_reasoning_delta ... ok
[INFO] [stdout] test agent::tests::test_agent_response_shutdown_debug ... ok
[INFO] [stdout] test agent::tests::test_agent_response_text_debug ... ok
[INFO] [stdout] test agent::tests::test_agent_response_tool_call_variant ... ok
[INFO] [stdout] test agent::tests::test_agent_tool_result_response ... ok
[INFO] [stdout] test agent::tests::test_agent_with_delta_tx ... ok
[INFO] [stderr] [codecoder] Agent 线程已启动
[INFO] [stdout] test agent::tests::test_parse_no_tool_call ... ok
[INFO] [stderr] [codecoder] Agent 事件循环开始
[INFO] [stdout] test agent::tests::test_parse_tool_call_missing_input ... ok
[INFO] [stdout] test agent::tests::test_parse_tool_call_multiple_calls ... ok
[INFO] [stdout] test agent::tests::adr0005_permission_response_carries_scope ... ok
[INFO] [stdout] test agent::tests::test_parse_single_tool_call_empty_name ... ok
[INFO] [stdout] test agent::tests::test_build_system_prompt_flags_draft_skills ... ok
[INFO] [stdout] test agent::tests::test_build_messages_with_skills ... ok
[INFO] [stdout] test agent::tests::test_build_system_prompt_contains_tools ... ok
[INFO] [stdout] test agent::tests::test_parse_tool_call_simple ... ok
[INFO] [stdout] test agent::tests::test_handle_message_with_stub ... ok
[INFO] [stdout] test agent::tests::test_parse_tool_call_with_tool_field ... ok
[INFO] [stdout] test agent::tests::test_reload_context_does_not_panic ... ok
[INFO] [stdout] test autonomous::tests::test_file_watcher_new_with_paths ... ok
[INFO] [stdout] test agent::tests::test_parse_tool_call_with_trailing_text ... ok
[INFO] [stdout] test autonomous::tests::test_file_watcher_empty_paths_returns_immediately ... ok
[INFO] [stdout] test autonomous::tests::test_file_watcher_new_empty ... ok
[INFO] [stdout] test autonomous::tests::test_scheduled_task_construction ... ok
[INFO] [stdout] test autonomous::tests::test_scheduler_new_empty ... ok
[INFO] [stdout] test agent::tests::test_agent_response_error_debug ... ok
[INFO] [stdout] test autonomous::tests::test_autonomous_runner_exists ... ok
[INFO] [stdout] test agent::tests::test_parse_tool_call_empty_string ... ok
[INFO] [stdout] test config::tests::adr0005_allowlist_roundtrips_through_save_load ... ok
[INFO] [stdout] test agent::tests::test_parse_tool_call_invalid_format ... ok
[INFO] [stdout] test autonomous::tests::test_scheduler_new_with_tasks ... ok
[INFO] [stdout] test config::tests::adr0005_added_allowlist_entry_persists_across_restart ... ok
[INFO] [stdout] test config::tests::adr0005_dedup_on_repeat_grant ... ok
[INFO] [stdout] test config::tests::adr0005_default_config_has_empty_allowlist ... ok
[INFO] [stdout] test config::tests::test_config_defaults ... ok
[INFO] [stdout] test config::tests::test_load_nonexistent_file ... ok
[INFO] [stdout] test config::tests::test_partial_config_file ... ok
[INFO] [stderr] [codecoder] Agent 线程已启动
[INFO] [stdout] test config::tests::test_format_display ... ok
[INFO] [stderr] [codecoder] Agent 事件循环开始
[INFO] [stderr] [codecoder] Agent 收到消息: "hello"
[INFO] [stdout] test config::tests::adr0005_legacy_config_without_permissions_loads_empty ... ok
[INFO] [stdout] test agent::tests::test_clear_history ... ok
[INFO] [stdout] test agent::tests::test_handle_message_error ... ok
[INFO] [stdout] test config::tests::test_save_and_reload ... ok
[INFO] [stdout] test config::tests::test_set_model ... ok
[INFO] [stdout] test config::tests::test_to_llm_config ... ok
[INFO] [stdout] test context::tests::test_load_nonexistent ... ok
[INFO] [stdout] test e2e_tests::e2e_background_message_roundtrip ... ok
[INFO] [stdout] test context::tests::test_load_existing ... ok
[INFO] [stdout] test e2e_tests::e2e_context_loads_agents_md ... ok
[INFO] [stdout] test e2e_tests::e2e_agent_creates_skill ... ok
[INFO] [stdout] test event::tests::test_publish_and_drain ... ok
[INFO] [stdout] test llm::tests::test_chat_request_serialization ... ok
[INFO] [stdout] test llm::tests::test_chat_request_skip_serialization_when_not_stream ... ok
[INFO] [stdout] test event::tests::test_thread_safety ... ok
[INFO] [stdout] test llm::tests::test_chat_request_stream_serialization ... ok
[INFO] [stdout] test llm::tests::test_chat_message_serialize ... ok
[INFO] [stdout] test llm::tests::test_choice_message_null_content ... ok
[INFO] [stdout] test e2e_tests::e2e_memory_write_and_read ... ok
[INFO] [stdout] test e2e_tests::e2e_system_prompt_completeness ... ok
[INFO] [stdout] test e2e_tests::e2e_full_startup_simulation ... ok
[INFO] [stdout] test e2e_tests::e2e_tool_list_contains_all ... ok
[INFO] [stdout] test e2e_tests::e2e_session_save_and_resume ... ok
[INFO] [stdout] test e2e_tests::e2e_skill_discovery_finds_greeter ... ok
[INFO] [stdout] test llm::tests::test_llm_config_direct_construction ... ok
[INFO] [stdout] test llm::tests::test_message_constructors ... ok
[INFO] [stdout] test llm::tests::test_message_content ... ok
[INFO] [stdout] test llm::tests::test_stream_chunk_deserialize ... ok
[INFO] [stdout] test llm::tests::test_choice_message_with_content ... ok
[INFO] [stdout] test llm::tests::test_llm_response_construction ... ok
[INFO] [stdout] test llm::tests::test_stream_chunk_with_reasoning ... ok
[INFO] [stdout] test llm::tests::test_stream_delta_both ... ok
[INFO] [stdout] test llm::tests::test_stream_delta_text ... ok
[INFO] [stdout] test llm::tests::test_stream_delta_reasoning ... ok
[INFO] [stdout] test llm::tests::test_stub_client_chat_empty_messages ... ok
[INFO] [stdout] test llm::tests::test_stub_client ... ok
[INFO] [stdout] test llm::tests::test_stream_chunk_empty_delta ... ok
[INFO] [stdout] test llm::tests::test_stub_client_config ... ok
[INFO] [stdout] test llm::tests::test_stub_client_chat_returns_response ... ok
[INFO] [stdout] test mcp::protocol::tests::test_call_tool_result_text_empty ... ok
[INFO] [stdout] test llm::tests::test_chat_response_no_usage ... ok
[INFO] [stdout] test llm::tests::test_chat_response_deserialize ... ok
[INFO] [stdout] test llm::tests::test_usage_defaults ... ok
[INFO] [stdout] test llm::tests::test_stub_stream ... ok
[INFO] [stdout] test llm::tests::test_usage_deserialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_call_tool_result_text_text_content ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_error_with_data ... ok
[INFO] [stdout] test mcp::protocol::tests::test_call_tool_result_text_mixed_content ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_request_new ... ok
[INFO] [stdout] test mcp::protocol::tests::test_call_tool_result_text_resource_content ... ok
[INFO] [stdout] test mcp::protocol::tests::test_initialize_result_deserialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_initialize_params_serialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_request_serialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_response_success_deserialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_response_error_deserialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_list_tools_result_deserialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_content_resource_deserialize ... ok
[INFO] [stdout] test mcp::protocol::tests::test_tool_content_text_deserialize ... ok
[INFO] [stdout] test mcp::tests::test_mcp_registry_next_id_increments ... ok
[INFO] [stdout] test mcp::tests::test_mcp_registry_stop_all_empty ... ok
[INFO] [stdout] test mcp::tests::test_mcp_server_config_defaults ... ok
[INFO] [stdout] test mcp::tests::test_mcp_tool_metadata ... ok
[INFO] [stdout] test mcp::tests::test_mcp_config_deserialize ... ok
[INFO] [stdout] test mcp::tests::test_mcp_tool_execute_on_empty_registry ... ok
[INFO] [stdout] test mcp::tests::test_server_status_struct ... ok
[INFO] [stdout] test mcp::tests::test_tool_info_ordering ... ok
[INFO] [stdout] test mcp::tests::test_tool_info_struct ... ok
[INFO] [stdout] test mcp::tests::test_mcp_registry_empty ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_request_with_params ... ok
[INFO] [stdout] test mcp::protocol::tests::test_json_rpc_request_serialize_with_params ... ok
[INFO] [stdout] test memory::tests::test_delete ... ok
[INFO] [stdout] test memory::tests::test_persistence ... ok
[INFO] [stdout] test mcp::transport::tests::test_mcp_transport_is_running_after_spawn ... ok
[INFO] [stdout] test mcp::transport::tests::test_mcp_transport_is_running_false_when_process_never_spawned ... ok
[INFO] [stdout] test memory::tests::test_set_and_get ... ok
[INFO] [stdout] test permission::path_validator::tests::test_absolute_path_outside_root ... ok
[INFO] [stdout] test permission::path_validator::tests::test_double_dot_in_middle ... ok
[INFO] [stdout] test permission::path_validator::tests::test_absolute_path_inside_root ... ok
[INFO] [stdout] test mcp::transport::tests::test_mcp_transport_drop_does_not_panic ... ok
[INFO] [stdout] test permission::path_validator::tests::test_path_traversal_denied ... ok
[INFO] [stdout] test permission::path_validator::tests::test_relative_path_allowed ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_safe_ls ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_dangerous_mkfs ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_suspicious_rm ... ok
[INFO] [stdout] test memory::tests::test_list ... ok
[INFO] [stdout] test memory::tests::test_empty_store ... ok
[INFO] [stdout] test mcp::transport::tests::test_mcp_transport_spawn_and_shutdown_echo ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_dangerous_rm_rf ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_safe_echo ... ok
[INFO] [stdout] test permission::tests::test_evaluate_safe_command_allowed ... ok
[INFO] [stdout] test permission::tests::test_evaluate_write_file_blocked_path ... ok
[INFO] [stdout] test permission::tests::test_evaluate_unknown_tool_allowed ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_suspicious_sudo ... ok
[INFO] [stdout] test permission::shell_classifier::tests::test_suspicious_wget ... ok
[INFO] [stdout] test permission::tests::test_evaluate_read_file_denied ... ok
[INFO] [stdout] test mcp::transport::tests::test_mcp_transport_spawn_fails_for_nonexistent_command ... ok
[INFO] [stdout] test permission::tests::test_evaluate_rm_ff_denied ... ok
[INFO] [stdout] test sandbox::docker::tests::test_image_for_language_case_insensitive ... ok
[INFO] [stdout] test sandbox::docker::tests::test_image_for_language_python ... ok
[INFO] [stdout] test sandbox::tests::test_no_sandbox_name ... ok
[INFO] [stdout] test sandbox::docker::tests::test_image_for_language_rust ... ok
[INFO] [stdout] test sandbox::docker::tests::test_image_for_language_unknown ... ok
[INFO] [stdout] test sandbox::tests::test_no_sandbox_run_returns_error ... ok
[INFO] [stdout] test sandbox::docker::tests::test_image_for_language_go ... ok
[INFO] [stdout] test sandbox::tests::test_sandbox_trait_is_send ... ok
[INFO] [stdout] test sandbox::docker::tests::test_image_for_language_javascript ... ok
[INFO] [stdout] test sandbox::tests::test_prepare_temp_dir_empty_code ... ok
[INFO] [stdout] test sandbox::tests::test_prepare_temp_dir_creates_files ... ok
[INFO] [stdout] test sandbox::tests::test_select_sandbox_case_insensitive ... ok
[INFO] [stdout] test sandbox::tests::test_select_sandbox_go ... ok
[INFO] [stdout] test sandbox::tests::test_select_sandbox_rust_uses_wasm ... ok
[INFO] [stdout] test sandbox::tests::test_select_sandbox_python_uses_docker ... ok
[INFO] [stdout] test sandbox::tests::test_select_sandbox_python_no_docker_uses_none ... ok
[INFO] [stdout] test sandbox::tests::test_select_sandbox_unknown_language_with_docker ... ok
[INFO] [stdout] test sandbox::tests::test_prepare_temp_dir_py_extension ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_run_wasm_direct_empty ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_format_output_stdout_only ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_format_output_failure_with_stderr ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_format_output_both ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_wasm_name ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_wasm_unsupported_language ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_format_output_failure_no_output ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_format_output_stderr_only ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_run_wasm_direct_wat_detection ... ok
[INFO] [stdout] test self_evolve::tests::test_build_frontmatter ... ok
[INFO] [stdout] test self_evolve::tests::test_cooldown_blocks_immediate_retry ... ok
[INFO] [stdout] test self_evolve::tests::test_detect_llm_cannot_level1 ... ok
[INFO] [stdout] test self_evolve::tests::test_detect_no_failure ... ok
[INFO] [stdout] test self_evolve::tests::test_detect_tool_errors_level2 ... ok
[INFO] [stdout] test self_evolve::tests::test_active_skill_not_promoted_again ... ok
[INFO] [stdout] test self_evolve::tests::test_config_defaults ... ok
[INFO] [stdout] test self_evolve::tests::test_detect_user_feedback_level3 ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_api ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_data ... ok
[INFO] [stdout] test self_evolve::tests::test_existing_skill_prevents_duplicate ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_docker ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_level2 ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_level3 ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_generic ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_npm ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_script ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_search_github ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_git ... ok
[INFO] [stdout] test self_evolve::tests::test_gap_analysis_web_search ... ok
[INFO] [stdout] test self_evolve::tests::test_no_promote_when_trigger_absent ... ok
[INFO] [stdout] test self_evolve::tests::test_skill_file_generated ... ok
[INFO] [stdout] test self_evolve::tests::test_truncate_long ... ok
[INFO] [stdout] test self_evolve::tests::test_truncate_short ... ok
[INFO] [stdout] test self_evolve::tests::test_sanitize_name ... ok
[INFO] [stdout] test self_evolve::tests::test_unique_file_naming ... ok
[INFO] [stdout] test self_evolve::tests::test_session_limit ... ok
[INFO] [stdout] test self_evolve::tests::test_reset_session ... ok
[INFO] [stdout] test session::tests::adr0004_auto_save_does_not_immediately_save ... ok
[INFO] [stdout] test self_evolve::tests::test_promote_draft_on_repeated_success ... ok
[INFO] [stdout] test session::tests::adr0004_flush_pending_save_writes_when_debounce_elapsed ... ok
[INFO] [stdout] test session::tests::adr0004_migrate_chain_handles_jumps ... ok
[INFO] [stdout] test session::tests::adr0004_migrate_is_idempotent_when_already_at_target ... ok
[INFO] [stdout] test session::tests::adr0004_migrate_v0_to_v1_stamps_version ... ok
[INFO] [stdout] test session::tests::adr0004_loads_legacy_file_without_schema_version ... ok
[INFO] [stdout] test session::tests::adr0004_new_session_has_current_schema_version ... ok
[INFO] [stdout] test session::tests::adr0004_multiple_marks_collapse_into_one_save ... ok
[INFO] [stdout] test session::tests::adr0004_flush_skipped_within_debounce_window ... ok
[INFO] [stdout] test session::tests::adr0004_no_store_means_mark_dirty_is_noop ... ok
[INFO] [stdout] test session::tests::adr0004_save_writes_schema_version ... ok
[INFO] [stdout] test session::tests::adr0004_serde_default_fills_missing_optional_fields ... ok
[INFO] [stdout] test session::tests::adr0004_unknown_target_version_errors ... ok
[INFO] [stdout] test session::tests::adr0004_roundtrip_preserves_schema_version ... ok
[INFO] [stderr] [test] log message
[INFO] [stdout] test session::tests::test_delete ... ok
[INFO] [stdout] test session::tests::test_create_and_save ... ok
[INFO] [stdout] test session::tests::test_latest ... ok
[INFO] [stdout] test session::tests::test_empty_store ... ok
[INFO] [stdout] test session::tests::test_load_nonexistent ... ok
[INFO] [stdout] test session::tests::test_save_and_list ... ok
[INFO] [stdout] test skill::tests::test_parse_frontmatter_full ... ok
[INFO] [stdout] test skill::tests::test_parse_frontmatter_minimal ... ok
[INFO] [stdout] test skill::tests::test_parse_frontmatter_missing_name ... ok
[INFO] [stdout] test skill::tests::test_build_frontmatter_roundtrip ... ok
[INFO] [stdout] test skill::tests::test_parse_frontmatter_none ... ok
[INFO] [stdout] test skill::tests::test_record_usage_honors_custom_threshold ... ok
[INFO] [stdout] test skill::tests::test_record_usage_promotes_after_3 ... ok
[INFO] [stdout] test skill::tests::test_scan_loads_frontmatter ... ok
[INFO] [stdout] test skill::tests::test_shipped_rust_hygiene_skill_parses ... ok
[INFO] [stdout] test skill::tests::test_scan_fallback_no_frontmatter ... ok
[INFO] [stdout] test session::tests::adr0004_background_thread_writes_sessions_off_main ... ok
[INFO] [stdout] test tests::test_log_creates_file ... ok
[INFO] [stdout] test tests::test_main_no_panic_on_help ... ok
[INFO] [stdout] test skill::tests::test_update_frontmatter_in_file ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_agent_tool_description_not_empty ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_agent_tool_new ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_agent_tool_execute_missing_task ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_agent_tool_execute_invalid_json ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_ask_user_deliver_answer_nonexistent ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_ask_user_tool_description_not_empty ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_ask_user_tool_execute_invalid_json ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_ask_user_tool_name ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_ask_user_tool_execute_missing_question ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_empty_message ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_invalid_json ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_missing_message ... ok
[INFO] [stdout] test tools::ask_agent::tests::test_ask_user_tool_set_response_tx_and_answer ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_tool_description_not_empty ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_tool_name ... ok
[INFO] [stdout] test skill::tests::test_dual_write_to_memory_store ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_run_via_docker_fallback ... ok
[INFO] [stdout] test tools::diff::tests::test_count_diff_files_empty ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_stats_no_changes ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_stats_non_numeric ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_stats_simple ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_cached ... ok
[INFO] [stdout] test agent::tests::test_background_agent_spawn_and_shutdown ... ok
[INFO] [stdout] test sandbox::docker::tests::test_docker_not_available ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_description_not_empty ... ok
[INFO] [stdout] test tools::diff::tests::test_count_diff_files ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_invalid_json ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_default_path ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_name ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_diff_has_correct_line_numbers ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_diff_includes_unified_file_header ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_no_match ... ok
[INFO] [stdout] test e2e_tests::e2e_sandbox_graceful_fallback ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_cached_in_git_repo ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_not_found ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_replace ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_in_git_repo ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_prompt ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_compile_and_run_go_wasm_fallback ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_skill ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_skill_empty_name ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_tool_empty_content ... ok
[INFO] [stdout] test tools::edit_file::tests::test_edit_file_output_contains_diff_block ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_skill_adds_header ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_tool_executable ... ok
[INFO] [stdout] test tools::generate::tests::test_generate_tool_with_shebang ... ok
[INFO] [stdout] test tools::generate::tests::test_parse_empty_content ... ok
[INFO] [stdout] test tools::generate::tests::test_parse_missing_separator ... ok
[INFO] [stdout] test tools::generate::tests::test_sanitize_filename ... ok
[INFO] [stdout] test tools::generate::tests::test_parse_name_content ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_invalid_pattern ... ok
[INFO] [stdout] test tools::generate::tests::test_parse_empty_name ... ok
[INFO] [stdout] test tools::generate::tests::test_parse_name_content_with_crlf ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_class ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_const ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_fn_alias ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_function ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_impl ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_macro ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_enum ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_mod_alias ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_with_files ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_module ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_type ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_struct ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_unknown ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_node_types_trait ... ok
[INFO] [stdout] test tools::grep::tests::test_execute_empty_input ... ok
[INFO] [stdout] test tools::grep::tests::test_execute_invalid_json ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_finds_rust_files ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_missing_file_errors ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_case_insensitive ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_go ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_no_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_python ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_javascript ... ok
[INFO] [stdout] test tools::grep::tests::test_execute_with_ast_query ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_empty_input_defaults ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_rust ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_rust_alias ... ok
[INFO] [stdout] test tools::commit::tests::test_commit_no_changes ... ok
[INFO] [stdout] test tools::grep::tests::test_execute_with_pattern ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_typescript ... ok
[INFO] [stdout] test tools::grep::tests::test_extensions_unknown ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_line_empty_source ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_line_first ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_line_last ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_line_middle ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_line_out_of_bounds ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_line_single_line ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_node_name_from_function ... ok
[INFO] [stdout] test tools::grep::tests::test_extract_node_name_no_name ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_const ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_enum ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_function_in_rust ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_unknown_kind_returns_empty ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_wildcard ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_struct ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_description_not_empty ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_name ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_with_tool_field_fallback ... ok
[INFO] [stdout] test sandbox::wasm::tests::test_wasm_no_rustc ... ok
[INFO] [stdout] test tools::grep::tests::test_is_text_file_binary_ext ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_no_match ... ok
[INFO] [stdout] test tools::grep::tests::test_is_text_file_md ... ok
[INFO] [stdout] test tools::grep::tests::test_is_text_file_mjs ... ok
[INFO] [stdout] test tools::grep::tests::test_is_text_file_no_extension ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_impl ... ok
[INFO] [stdout] test tools::grep::tests::test_is_text_file_py ... ok
[INFO] [stdout] test tools::grep::tests::test_is_text_file_rs ... ok
[INFO] [stdout] test tools::grep::tests::test_load_grammar_case_insensitive ... ok
[INFO] [stdout] test tools::grep::tests::test_load_grammar_rs_alias ... ok
[INFO] [stdout] test tools::grep::tests::test_load_grammar_typescript ... ok
[INFO] [stdout] test tools::grep::tests::test_load_grammar_unknown_falls_back_to_rust ... ok
[INFO] [stdout] test tools::grep::tests::test_parse_ast_query_empty_kind ... ok
[INFO] [stdout] test tools::grep::tests::test_load_grammar_python ... ok
[INFO] [stdout] test tools::grep::tests::test_find_ast_matches_trait ... ok
[INFO] [stdout] test tools::grep::tests::test_parse_ast_query_empty_name ... ok
[INFO] [stdout] test tools::grep::tests::test_parse_ast_query_multi_colon ... ok
[INFO] [stdout] test tools::grep::tests::test_parse_ast_query_no_colon ... ok
[INFO] [stdout] test tools::grep::tests::test_parse_ast_query_valid ... ok
[INFO] [stdout] test tools::grep::tests::test_parse_ast_query_wildcard ... ok
[INFO] [stdout] test tools::grep::tests::test_relative_path_no_prefix_match ... ok
[INFO] [stdout] test tools::grep::tests::test_load_grammar_rust ... ok
[INFO] [stdout] test tools::grep::tests::test_regex_search_non_text_file_skipped ... ok
[INFO] [stdout] test tools::grep::tests::test_regex_search_no_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_regex_search_respects_max_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_regex_search_simple ... ok
[INFO] [stdout] test tools::grep::tests::test_relative_path_strips_prefix ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_current_dir ... ok
[INFO] [stdout] test tools::plan::tests::test_plan_tool_description_not_empty ... ok
[INFO] [stdout] test tools::plan::tests::test_plan_tool_execute_invalid_json ... ok
[INFO] [stdout] test tools::plan::tests::test_plan_tool_deliver_decision_nonexistent ... ok
[INFO] [stdout] test tools::plan::tests::test_plan_tool_name ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_file ... ok
[INFO] [stdout] test tools::read_file::tests::test_read_file_empty_path ... ok
[INFO] [stdout] test tools::grep::tests::test_relative_path_current_dir ... ok
[INFO] [stdout] test tools::plan::tests::test_plan_tool_set_response_tx_and_deliver ... ok
[INFO] [stdout] test tools::diff::tests::test_diff_tool_since_ref ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_empty_input ... ok
[INFO] [stdout] test tools::list_dir::tests::test_list_nonexistent ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_extract_bare_api_paths ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_extract_endpoints ... ok
[INFO] [stdout] test tools::plan::tests::test_plan_tool_execute_missing_title ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_extract_no_endpoints ... ok
[INFO] [stdout] test tools::review::tests::test_review_invalid_json ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_strip_html_entity_decoding ... ok
[INFO] [stdout] test tools::review::tests::test_review_no_changes ... ok
[INFO] [stdout] test self_evolve::tests::test_unique_file_naming_full_100 ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_chrono_now_format ... ok
[INFO] [stdout] test tools::review::tests::test_review_scope_all_with_path ... ok
[INFO] [stdout] test tools::review::tests::test_review_defaults ... ok
[INFO] [stdout] test tools::review::tests::test_review_scope_all ... ok
[INFO] [stdout] test tools::review::tests::test_review_tool_name ... ok
[INFO] [stdout] test tools::run_command::tests::test_run_echo ... ok
[INFO] [stdout] test tools::run_command::tests::test_run_empty ... ok
[INFO] [stdout] test tools::review::tests::test_review_tool_description_not_empty ... ok
[INFO] [stdout] test tools::run_command::tests::test_run_failing ... ok
[INFO] [stdout] test tools::review::tests::test_review_missing_both_fields ... ok
[INFO] [stdout] test agent::tests::test_set_model_updates_config ... ok
[INFO] [stdout] test tools::run_in_sandbox::tests::test_empty_code ... ok
[INFO] [stdout] test llm::tests::test_openai_client_new ... ok
[INFO] [stdout] test tools::run_command::tests::test_run_with_custom_timeout ... ok
[INFO] [stdout] test tools::run_in_sandbox::tests::test_empty_language ... ok
[INFO] [stdout] test tools::run_in_sandbox::tests::test_select_sandbox_for_python ... ok
[INFO] [stdout] test tools::search_github::tests::test_empty_input ... ok
[INFO] [stdout] test tools::run_in_sandbox::tests::test_missing_separator ... ok
[INFO] [stdout] test tools::review::tests::test_review_scope_staged ... ok
[INFO] [stdout] test tools::search_github::tests::test_format_repos_basic ... ok
[INFO] [stdout] test tools::search_github::tests::test_format_code_basic ... ok
[INFO] [stdout] test tools::search_github::tests::test_format_code_no_items ... ok
[INFO] [stdout] test tools::search_github::tests::test_format_repos_no_items ... ok
[INFO] [stdout] test tools::review::tests::test_review_scope_unstaged ... ok
[INFO] [stdout] test tools::search_github::tests::test_urlencoding_special_chars ... ok
[INFO] [stdout] test tools::search_github::tests::test_urlencode ... ok
[INFO] [stdout] test tools::search_github::tests::test_urlencoding_basic ... ok
[INFO] [stdout] test tools::search_web::tests::test_strip_html_all_entities ... ok
[INFO] [stdout] test tools::search_github::tests::test_search_github_name_and_description ... ok
[INFO] [stdout] test tools::search_web::tests::test_strip_html_no_tags ... ok
[INFO] [stdout] test tools::search_web::tests::test_empty_url ... ok
[INFO] [stdout] test tools::search_web::tests::test_strip_html_numeric_entities ... ok
[INFO] [stdout] test tools::search_web::tests::test_strip_html_self_closing_tag ... ok
[INFO] [stdout] test tools::tests::test_default_tool_count_matches_readme ... ok
[INFO] [stdout] test tools::tests::test_execute_unknown_tool ... ok
[INFO] [stdout] test tools::tests::test_registry_has_default_tools ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_complete ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_create_and_list ... ok
[INFO] [stdout] test tools::search_web::tests::test_strip_html_mixed_content ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_create_empty_task ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_invalid_action ... ok
[INFO] [stdout] test tools::search_web::tests::test_strip_html ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_update ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_file ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_not_found ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_file_new_file_diff_all_additions ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_delete ... ok
[INFO] [stdout] test tools::todo::tests::test_todo_list_empty ... ok
[INFO] [stdout] test tui::adr0001_tests::adr0003_ctrl_t_swaps_theme ... ok
[INFO] [stdout] test tui::adr0001_tests::adr0003_default_theme_is_dark ... ok
[INFO] [stdout] test tui::adr0001_tests::ctrl_c_when_busy_sends_interrupt_and_does_not_quit ... ok
[INFO] [stdout] test tui::adr0001_tests::ctrl_d_no_longer_quits ... ok
[INFO] [stdout] test tui::adr0001_tests::ctrl_q_raises_exit_confirm_then_second_press_quits ... ok
[INFO] [stdout] test tui::adr0001_tests::esc_cascade_priority_reverse_search_first ... ok
[INFO] [stdout] test tui::adr0001_tests::esc_closes_completion_at_top_level ... ok
[INFO] [stdout] test tui::adr0001_tests::esc_closes_search_then_is_noop ... ok
[INFO] [stdout] test tui::adr0001_tests::esc_with_no_overlays_is_noop ... ok
[INFO] [stdout] test tui::adr0001_tests::g_on_empty_input_scrolls_to_top ... ok
[INFO] [stdout] test tui::adr0001_tests::g_with_text_in_input_inserts_g ... ok
[INFO] [stdout] test tui::adr0001_tests::shift_g_scrolls_to_bottom ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_file_overwrite_shows_minus_and_plus ... ok
[INFO] [stdout] test tui::adr0001_tests::ctrl_c_when_idle_raises_exit_confirm ... ok
[INFO] [stdout] test tui::app::bounds_tests::bounds_count_triggers_fifo ... ok
[INFO] [stdout] test tui::app::bounds_tests::bounds_noop_under_limits ... ok
[INFO] [stdout] test tools::write_file::tests::test_write_file_no_newline ... ok
[INFO] [stdout] test tui::app::bounds_tests::compact_messages_for_save_applies_to_all ... ok
[INFO] [stdout] test tui::app::bounds_tests::compact_noop_under_threshold ... ok
[INFO] [stdout] test tui::app::bounds_tests::compact_tool_call_truncates_input_and_output ... ok
[INFO] [stdout] test tui::app::bounds_tests::compact_truncates_long_text ... ok
[INFO] [stdout] test tui::app::bounds_tests::size_tool_call_sums_fields ... ok
[INFO] [stdout] test tui::app::bounds_tests::size_user_message ... ok
[INFO] [stdout] test tui::chrome::byline::tests::idle_zero_height_area_is_noop ... ok
[INFO] [stdout] test tui::chrome::byline::tests::is_active_false_for_tall_input ... ok
[INFO] [stdout] test tui::chrome::byline::tests::is_active_false_when_busy ... ok
[INFO] [stdout] test tui::chrome::byline::tests::is_active_true_when_idle_and_short ... ok
[INFO] [stdout] test tui::chrome::byline::tests::shows_model_name ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::args_after_command_work_for_resume ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::case_insensitive_exit ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::clear_constructs_confirm_dialog_adr0006 ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::config_with_args_dispatches ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::exit_sets_should_quit ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::grill_me_appears_in_completion_list ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::grill_me_completion_matches_on_g_or_gr_prefix ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::grill_me_prompt_includes_doc_update_anchors ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::grill_me_with_topic_forwards_expanded_prompt_via_process_message ... ok
[INFO] [stderr] [codecoder] TUI 发送 /grill-me prompt
[INFO] [stdout] test tui::commands::adr0002_tests::grill_me_without_topic_shows_usage_no_agent_forward ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::h_alias_opens_help ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::help_opens_help_panel ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::history_reports_actual_count ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::quit_sets_should_quit ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::refresh_activates_on_leading_slash ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::refresh_deactivates_when_input_lacks_slash ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::refresh_filters_by_subsequence_prefix_first ... ok
[INFO] [stdout] test tools::review::tests::test_review_scope_with_path ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::refresh_keeps_popup_open_when_args_start ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::refresh_prefix_match_is_case_insensitive ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::reload_sends_reloadcontext_and_msgs ... ok
[INFO] [stderr] [codecoder] TUI 发送消息成功
[INFO] [stdout] test tools::review::tests::test_review_in_git_repo_with_changes ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::send_message_forwards_non_slash_to_agent ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::reset_and_new_alias_clear ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::send_message_rejects_unknown_slash_without_agent_forward ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::send_message_routes_slash_input_through_dispatcher ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::session_dispatches_to_handler ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::settings_aliases_config ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::unknown_command_pushes_error_and_returns_handled ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::skills_and_memory_are_handled_not_placeholder ... ok
[INFO] [stdout] test tui::commands::adr0002_tests::tools_lists_real_registered_tools ... ok
[INFO] [stdout] test tui::completion::tests::test_search_nonexistent_root ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0005_a_lowercase_sends_alwaystihssession ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0005_dialog_consumed_after_a ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0005_no_false_session_promise_for_y ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0005_shift_a_sends_alwaysthisproject ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_confirm_a_is_noop_on_confirm_dialog ... ok
[INFO] [stderr] [adr0006] deleted message idx=1: User { text: "second" }
[INFO] [stdout] test tui::dialogs::tests::adr0006_confirm_esc_preserves_messages ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_confirm_n_preserves_messages ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_confirm_y_clears_messages ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_confirm_y_delete_message_removes_by_index ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_ctrl_l_constructs_confirm ... ok
[INFO] [stdout] test tui::completion::tests::test_search_empty_query ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_render_confirm_shows_warning ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_slash_clear_constructs_confirm_not_direct_clear ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_slash_resume_no_arg_constructs_confirm ... ok
[INFO] [stdout] test tui::dialogs::tests::h3_down_up_move_selected_option ... ok
[INFO] [stdout] test tui::dialogs::tests::h3_enter_submits_highlighted_option ... ok
[INFO] [stdout] test tui::dialogs::tests::h3_enter_with_no_input_no_options_keeps_dialog ... ok
[INFO] [stdout] test tui::dialogs::tests::h3_esc_skips_with_askuser_response_not_permission ... ok
[INFO] [stdout] test tui::dialogs::tests::adr0006_resume_latest_with_no_store_reports_error_on_confirm ... ok
[INFO] [stdout] test tui::completion::tests::test_search_limits_results ... ok
[INFO] [stdout] test tui::dialogs::tests::h3_typed_text_wins_over_option ... ok
[INFO] [stdout] test llm::tests::test_openai_client_from_env_vars ... ok
[INFO] [stdout] test tui::dialogs::tests::h3_render_shows_options ... ok
[INFO] [stdout] test tui::dialogs::tests::plan_esc_keeps_planning ... ok
[INFO] [stdout] test tui::dialogs::tests::plan_letter_shortcuts_map_to_decisions ... ok
[INFO] [stdout] test tui::dialogs::tests::plan_up_down_navigate_three_options ... ok
[INFO] [stdout] test tui::dialogs::tests::slash_tab_fills_command_without_executing ... ok
[INFO] [stdout] test tui::dialogs::tests::test_dialog_n_denies ... ok
[INFO] [stdout] test tui::dialogs::tests::plan_enter_submits_selected_decision ... ok
[INFO] [stdout] test tui::dialogs::tests::test_dialog_esc_cancels ... ok
[INFO] [stdout] test tui::dialogs::tests::test_help_esc_closes ... ok
[INFO] [stdout] test tui::dialogs::tests::test_dialog_y_permits_tool_once ... ok
[INFO] [stdout] test tui::dialogs::tests::test_model_picker_esc_closes ... ok
[INFO] [stdout] test tui::dialogs::tests::plan_render_shows_three_options ... ok
[INFO] [stdout] test tui::dialogs::tests::test_model_picker_up_down ... ok
[INFO] [stdout] test tui::dialogs::tests::test_slash_completion_esc_closes ... ok
[INFO] [stdout] test tui::dialogs::tests::test_slash_completion_up_down ... ok
[INFO] [stdout] test tui::diff::tests::test_compute_basic_replace ... ok
[INFO] [stdout] test tui::diff::tests::test_compute_binary_returns_sentinel ... ok
[INFO] [stdout] test tui::dialogs::tests::test_render_model_picker ... ok
[INFO] [stdout] test tui::dialogs::tests::test_render_help_panel ... ok
[INFO] [stdout] test tui::dialogs::tests::test_render_permission_dialog ... ok
[INFO] [stdout] test tui::diff::tests::test_compute_no_change ... ok
[INFO] [stdout] test tui::diff::tests::test_compute_new_file ... ok
[INFO] [stdout] test tui::diff::tests::test_compute_delete_file ... ok
[INFO] [stdout] test tui::diff::tests::test_compute_includes_file_header ... ok
[INFO] [stdout] test tui::diff::tests::test_gutter_empty ... ok
[INFO] [stdout] test tui::diff::tests::test_gutter_single_digit ... ok
[INFO] [stdout] test tui::diff::tests::test_gutter_triple_digit ... ok
[INFO] [stdout] test tools::run_in_sandbox::tests::test_docker_check_runs ... ok
[INFO] [stdout] test tui::app::bounds_tests::bounds_tombstone_tool_output_phase_1 ... ok
[INFO] [stdout] test tui::diff::tests::test_parse_classifies_lines ... ok
[INFO] [stdout] test tui::diff::tests::test_parse_extracts_new_start ... ok
[INFO] [stdout] test tui::diff::tests::test_parse_multiple_hunks ... ok
[INFO] [stdout] test tui::diff::tests::test_parse_non_diff_returns_empty ... ok
[INFO] [stdout] test tui::app::bounds_tests::bounds_drop_reasoning_phase_2 ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_build_request_url_from_domain ... ok
[INFO] [stdout] test tui::diff::tests::test_detect_unknown_falls_back_to_none ... ok
[INFO] [stdout] test tui::diff::tests::test_detect_by_extension_py ... ok
[INFO] [stdout] test tui::diff::tests::test_detect_by_extension_rs ... ok
[INFO] [stdout] test tui::diff::tests::test_render_non_diff_returns_empty ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_ctrl_down_walks_history_forward ... ok
[INFO] [stderr] [codecoder] TUI 发送消息成功
[INFO] [stdout] test tui::input_area::tests::adr0001_ctrl_enter_submits_even_with_modifiers ... ok
[INFO] [stdout] test tui::diff::tests::test_render_no_language_falls_back ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_ctrl_up_walks_history_backward ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_esc_in_input_does_not_quit ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_esc_in_input_handler_is_noop_when_completion_active ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_plain_up_in_multiline_moves_cursor ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_plain_up_on_empty_input_enters_browse ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_tab_does_not_insert_spaces_when_no_target ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_tab_folds_last_reasoning_message ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_tab_toggles_show_full_on_expanded_toolcall ... ok
[INFO] [stdout] test tui::input_area::tests::ctrl_a_e_are_line_edge_in_multiline ... ok
[INFO] [stdout] test tui::input_area::tests::ctrl_left_right_move_by_word ... ok
[INFO] [stdout] test tui::input_area::tests::h1_end_moves_to_current_line_end ... ok
[INFO] [stdout] test tui::input_area::tests::h1_home_moves_to_current_line_start ... ok
[INFO] [stdout] test tui::input_area::tests::h2_down_up_move_completion_selection ... ok
[INFO] [stdout] test tui::input_area::tests::h2_enter_accepts_selected_candidate ... ok
[INFO] [stdout] test tui::input_area::tests::h2_tab_accepts_selected_candidate ... ok
[INFO] [stdout] test tui::input_area::tests::adr0001_enter_on_empty_input_is_noop ... ok
[INFO] [stdout] test tui::input_area::tests::is_subsequence_matches_in_order ... ok
[INFO] [stdout] test tui::input_area::tests::killring_consecutive_kills_accumulate ... ok
[INFO] [stdout] test tui::input_area::tests::killring_ctrl_y_yanks_killed_text ... ok
[INFO] [stdout] test tui::input_area::tests::line_start_end_on_multiline ... ok
[INFO] [stdout] test tui::input_area::tests::killring_non_kill_key_breaks_accumulation ... ok
[INFO] [stdout] test tui::input_area::tests::prev_next_word_basic ... ok
[INFO] [stdout] test tui::input_area::tests::slash_filter_fuzzy_and_prefix_ranking ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_height_capped_at_half_term ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_height_empty ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_height_min_cap_when_term_tiny ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_height_single_line ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_lines_empty ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_lines_long_wrap ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_lines_narrow_width ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_lines_newline ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_lines_single_short ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_lines_wide_chars ... ok
[INFO] [stdout] test tui::input_area::tests::test_cursor_across_newline ... ok
[INFO] [stdout] test tui::input_area::tests::test_cursor_at_emoji ... ok
[INFO] [stdout] test tui::input_area::tests::test_cursor_end_of_short_line ... ok
[INFO] [stdout] test tui::input_area::tests::test_cursor_start_of_input ... ok
[INFO] [stdout] test tui::input_area::tests::test_cursor_within_wrap ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_backspace_removes_char ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_a_goes_to_start ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_e_goes_to_end ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_k_deletes_to_end ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_shift_z_redo_input ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_u_deletes_to_start ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_w_deletes_word_backward ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_ctrl_z_undo_input ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_delete_removes_char ... ok
[INFO] [stdout] test tui::input_area::tests::test_compute_height_multiline ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_left_moves_cursor ... ok
[INFO] [stdout] test tui::input_area::tests::test_key_right_moves_cursor ... ok
[INFO] [stdout] test tui::input_area::tests::test_render_multiline_shows_all_lines ... ok
[INFO] [stdout] test tui::input_area::tests::test_render_empty_shows_placeholder ... ok
[INFO] [stdout] test tui::input_area::tests::test_undo_snapshot_caps_at_100 ... ok
[INFO] [stdout] test tui::input_area::tests::test_undo_snapshot_clears_redo ... ok
[INFO] [stdout] test tui::input_area::tests::test_render_shows_top_border ... ok
[INFO] [stdout] test tui::diff::tests::test_render_gutter_alignment ... ok
[INFO] [stdout] test tui::input_area::tests::trailing_backslash_enter_continues_line ... ok
[INFO] [stdout] test tui::markdown::tests::test_parse_fence_info_empty ... ok
[INFO] [stdout] test tui::markdown::tests::test_parse_fence_info_extracts_lang_and_path ... ok
[INFO] [stdout] test tui::diff::tests::test_render_truncates_large_diff ... ok
[INFO] [stdout] test tui::markdown::tests::test_push_highlighted_text_case_insensitive ... ok
[INFO] [stdout] test tui::input_area::tests::test_undo_snapshot_dedup ... ok
[INFO] [stdout] test tui::markdown::tests::test_push_highlighted_text_no_highlight ... ok
[INFO] [stdout] test tui::markdown::tests::test_push_highlighted_text_with_match ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_bold_italic ... ok
[INFO] [stdout] test tui::markdown::tests::test_parse_fence_info_no_path ... ok
[INFO] [stdout] test tui::input_area::tests::test_undo_snapshot_saves_state ... ok
[INFO] [stdout] test tui::markdown::tests::test_push_highlighted_text_empty_buf ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_code_block_empty ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_code_block_without_lang ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_diff_text_additions_removals ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_diff_text_context_lines ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_diff_text_detects_diff_start ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_diff_text_not_a_diff ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_empty_string ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_heading_h1 ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_heading_h2 ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_heading_h3 ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_highlight_basic ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_diff_text_chunk_header ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_highlight_no_match ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_highlight_empty_query ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_inline_code ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_link ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_markdown_diff_block ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_markdown_link_with_title ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_markdown_bold_inline_code ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_markdown_table ... ok
[INFO] [stdout] test tui::diff::tests::test_render_addition_marker_green ... ok
[INFO] [stdout] test tui::diff::tests::test_render_deletion_marker_red ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_code_block_diff_with_path_uses_render_diff ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_mixed_elements ... ok
[INFO] [stdout] test tui::app::bounds_tests::bounds_always_keeps_at_least_one ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_unordered_list ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_table_empty_rows ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_table_basic ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_whitespace_only ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_ordered_list ... ok
[INFO] [stdout] test tui::markdown::tests::test_renders_plain_text ... ok
[INFO] [stdout] test tui::markdown::tests::test_syntect_color_to_ratatui_rgb ... ok
[INFO] [stdout] test tui::markdown::tests::test_set_dark_mode_toggle ... ok
[INFO] [stdout] test tui::message_list::tests::test_bottom_scroll_offset_zero_height ... ok
[INFO] [stdout] test tui::message_list::tests::test_bottom_scroll_offset_scroll_needed ... ok
[INFO] [stdout] test tui::message_list::tests::test_bottom_scroll_offset_empty_lines ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_end_message_is_dim ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_error_message_is_dim ... ok
[INFO] [stdout] test tui::message_list::tests::test_bottom_scroll_offset_fits ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_message_lines_cache_miss_after_change ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_message_empty_input ... ok
[INFO] [stdout] test tui::message_list::tests::test_count_display_rows_empty ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_message_lines_cache_miss_search_query ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_message_lines_cache_hit ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_system_message_has_correct_prefix ... ok
[INFO] [stdout] test tui::message_list::tests::test_build_message_lines_primes_cache ... ok
[INFO] [stdout] test tui::message_list::tests::test_count_display_rows_exact_width ... ok
[INFO] [stdout] test tui::message_list::tests::test_count_display_rows_multi_line ... ok
[INFO] [stdout] test tui::message_list::tests::test_count_display_rows_no_wrap ... ok
[INFO] [stdout] test tui::message_list::tests::test_count_display_rows_zero_width ... ok
[INFO] [stdout] test tui::message_list::tests::test_invalidate_cache_resets_state ... ok
[INFO] [stdout] test tui::message_list::tests::test_reverse_search_finds_matches ... ok
[INFO] [stdout] test tui::message_list::tests::test_reverse_search_empty_query ... ok
[INFO] [stdout] test tui::message_list::tests::test_reverse_search_sets_last_match_index ... ok
[INFO] [stdout] test tui::message_list::tests::test_search_matches_case_insensitive ... ok
[INFO] [stdout] test tui::message_list::tests::test_search_matches_found ... ok
[INFO] [stdout] test tui::message_list::tests::test_search_matches_empty_query ... ok
[INFO] [stdout] test tui::message_list::tests::test_reverse_search_no_matches ... ok
[INFO] [stdout] test tui::message_list::tests::test_search_matches_not_found ... ok
[INFO] [stdout] test tui::message_list::tests::test_system_end_marker_stays_dim ... ok
[INFO] [stdout] test tui::message_list::tests::test_selected_message_has_background ... ok
[INFO] [stdout] test tui::message_list::tests::test_system_disconnect_is_error ... ok
[INFO] [stdout] test tui::message_list::tests::test_tool_resolved_icon ... ok
[INFO] [stdout] test tui::message_list::tests::test_top_margin_between_messages ... ok
[INFO] [stdout] test tui::permissions::bash::tests::chained_commands_split_by_and ... ok
[INFO] [stdout] test tui::permissions::bash::tests::empty_input_yields_no_lines ... ok
[INFO] [stdout] test tui::permissions::bash::tests::pipe_and_semicolon_recognized ... ok
[INFO] [stdout] test tui::permissions::bash::tests::quoted_regions_are_not_split ... ok
[INFO] [stdout] test tui::permissions::bash::tests::single_command_renders_one_line ... ok
[INFO] [stdout] test tui::permissions::bash::tests::truncation_row_appears_beyond_max ... ok
[INFO] [stdout] test tui::permissions::fallback::tests::caps_at_max_lines ... ok
[INFO] [stdout] test tui::permissions::fallback::tests::empty_input_yields_no_lines ... ok
[INFO] [stdout] test tui::permissions::fallback::tests::long_input_gets_truncation_row ... ok
[INFO] [stdout] test tui::permissions::fallback::tests::short_input_renders_all_lines ... ok
[INFO] [stdout] test tui::permissions::file_write::tests::delegates_to_file_edit ... ok
[INFO] [stdout] test tui::permissions::tests::classify_known_tools ... ok
[INFO] [stdout] test tui::permissions::tests::classify_unknown_falls_back ... ok
[INFO] [stdout] test tui::permissions::tests::preview_extra_rows_matches_variant_expectations ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::body_with_url_has_url_and_host_lines ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::body_without_url_still_shows_rest ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::extracts_http_url_with_query ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::extracts_https_url ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::high_risk_hosts_flagged ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::hostname_extraction_basic ... ok
[INFO] [stdout] test tui::permissions::web_fetch::tests::missing_url_returns_none ... ok
[INFO] [stdout] test tui::primitives::spinner::flashing_char::tests::cycles_back_on_at_full_period ... ok
[INFO] [stdout] test tui::message_list::tests::test_count_display_rows_wraps ... ok
[INFO] [stdout] test tui::primitives::spinner::flashing_char::tests::flips_at_half_period ... ok
[INFO] [stdout] test tui::permissions::file_edit::tests::empty_input_falls_through_to_fallback ... ok
[INFO] [stdout] test tui::primitives::spinner::flashing_char::tests::zero_frame_is_on ... ok
[INFO] [stdout] test tui::message_list::tests::test_tool_error_icon_and_color ... ok
[INFO] [stdout] test tui::message_list::tests::test_system_warn_is_warning ... ok
[INFO] [stdout] test tui::message_list::tests::test_tool_running_icon ... ok
[INFO] [stdout] test tui::primitives::spinner::glyph::tests::frame_advances_every_three_ticks ... ok
[INFO] [stdout] test tui::primitives::spinner::glyph::tests::frame_cycles_every_thirty_ticks ... ok
[INFO] [stdout] test tui::primitives::spinner::shimmer_char::tests::empty_run_returns_none ... ok
[INFO] [stdout] test tui::primitives::spinner::shimmer_char::tests::sweep_wraps_at_len ... ok
[INFO] [stdout] test tui::primitives::spinner::shimmer_char::tests::zero_frame_is_column_zero ... ok
[INFO] [stdout] test tui::primitives::spinner::shimmer_char::tests::time_based_matches_frame_based ... ok
[INFO] [stdout] test tui::spinner_line::tests::verb_is_stable_for_same_key ... ok
[INFO] [stdout] test tui::spinner_line::tests::verb_rotates_across_keys ... ok
[INFO] [stdout] test tui::spinner_line::tests::busy_render_shows_verb_and_status ... ok
[INFO] [stdout] test tui::primitives::spinner::glyph::tests::frame_zero_is_first_glyph ... ok
[INFO] [stdout] test tui::spinner_line::tests::idle_render_writes_nothing ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_full ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_half ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_overflow ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_quarter ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_rounding_boundary ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_tiny ... ok
[INFO] [stdout] test tui::status_bar::tests::test_format_context_bar_zero ... ok
[INFO] [stdout] test tui::status_bar::tests::test_render_status_bar_idle ... ok
[INFO] [stdout] test tui::status_bar::tests::test_render_status_bar_busy ... ok
[INFO] [stdout] test tui::theme::tests::dark_and_light_differ_on_primary_text ... ok
[INFO] [stdout] test tui::theme::tests::dark_theme_returns_dark_variant ... ok
[INFO] [stdout] test tui::theme::tests::default_is_dark ... ok
[INFO] [stdout] test tui::theme::tests::light_theme_returns_light_variant ... ok
[INFO] [stdout] test tui::theme::tests::diff_word_and_line_are_distinct ... ok
[INFO] [stdout] test tui::theme::tests::new_semantic_fields_differ_across_themes ... ok
[INFO] [stdout] test tui::theme::tests::dark_and_light_differ_on_selected_colors ... ok
[INFO] [stdout] test tools::reverse_api::tests::test_reverse_api_creates_file ... FAILED
[INFO] [stdout] test tools::search_github::tests::test_search_github_code_mode_invalid ... ok
[INFO] [stdout] test autonomous::tests::test_scheduler_fires_timer_event ... ok
[INFO] [stdout] test autonomous::tests::test_scheduler_multiple_tasks ... ok
[INFO] [stdout] test tools::run_command::tests::test_run_timeout_triggers ... ok
[INFO] [stdout] test tui::markdown::tests::test_render_code_block ... ok
[INFO] [stdout] test tui::diff::tests::test_highlight_no_language_returns_empty ... ok
[INFO] [stdout] test tui::diff::tests::test_highlight_multiline_string_spanning_lines ... ok
[INFO] [stdout] test tools::grep::tests::test_execute_with_pattern_and_ast_query_uses_ast ... ok
[INFO] [stdout] test tools::grep::tests::test_ast_search_invalid_language ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tools::reverse_api::tests::test_reverse_api_creates_file stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::reverse_api::tests::test_reverse_api_creates_file' (3170) panicked at src/tools/reverse_api.rs:272:9:
[INFO] [stdout] assertion failed: knowledge_dir.exists() || result.is_ok()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5856c154f641 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5856c154f641 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5856c154f641 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5856c154f641 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5856c15686ea - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5856c15686ea - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5856c1554c3c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5856c1554c3c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5856c1528cf6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5856c1528cf6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5856c1545879 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5856c0f25260 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5856c0f25260 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5856c1545ba2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5856c1545ba2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5856c1528dd4 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x5856c151fb19 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5856c1529f7d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5856c1568f6c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5856c1568f32 - core[6883ba1bc0fe4ed1]::panicking::panic
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5856c09a8c24 - codecoder[6b5b24d4e67d1662]::tools::reverse_api::tests::test_reverse_api_creates_file
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tools/reverse_api.rs:272:9
[INFO] [stdout]   21:     0x5856c09959e7 - codecoder[6b5b24d4e67d1662]::tools::reverse_api::tests::test_reverse_api_creates_file::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tools/reverse_api.rs:262:39
[INFO] [stdout]   22:     0x5856c0b118c6 - <codecoder[6b5b24d4e67d1662]::tools::reverse_api::tests::test_reverse_api_creates_file::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5856c0f1859b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5856c0f1859b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5856c0f25be5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5856c0f25be5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5856c0f25be5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x5856c0f25be5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5856c0f25be5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5856c0f25be5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5856c0f25be5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5856c0f20694 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5856c0f20694 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5856c0f28d32 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5856c0f28d32 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5856c0f28d32 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x5856c0f28d32 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5856c0f28d32 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5856c0f28d32 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5856c0f28d32 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5856c154e5af - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x5856c154e5af - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x71bf17919aa4 - <unknown>
[INFO] [stdout]   44:     0x71bf179a6a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tools::reverse_api::tests::test_reverse_api_creates_file
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 756 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.93s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin codecoder`
[INFO] running `Command { std: "docker" "inspect" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6", kill_on_drop: false }`
[INFO] [stdout] 1deeb7e907144c861bf36598fca5dbd4386a6bd420726d1399b804866073eee6
