[INFO] fetching crate avocode 0.1.1... [INFO] testing avocode-0.1.1 against 1.95.0 for beta-1.96-1 [INFO] extracting crate avocode 0.1.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate avocode 0.1.1 [INFO] finished tweaking crates.io crate avocode 0.1.1 [INFO] tweaked toml for crates.io crate avocode 0.1.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate avocode 0.1.1 on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate avocode 0.1.1 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded unicode-truncate v1.1.0 [INFO] [stderr] Downloaded strum v0.26.3 [INFO] [stderr] Downloaded instability v0.3.12 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.64 [INFO] [stderr] Downloaded cc v1.2.58 [INFO] [stderr] Downloaded axum-macros v0.5.0 [INFO] [stderr] Downloaded cassowary v0.3.0 [INFO] [stderr] Downloaded compact_str v0.8.1 [INFO] [stderr] Downloaded strum_macros v0.26.4 [INFO] [stderr] Downloaded crossterm v0.28.1 [INFO] [stderr] Downloaded rusqlite v0.34.0 [INFO] [stderr] Downloaded iri-string v0.7.11 [INFO] [stderr] Downloaded unicode-width v0.2.0 [INFO] [stderr] Downloaded ratatui v0.29.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.32.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f6548549d66e69388811c374e851cef694a607a9702219963373d41cbe191447 [INFO] running `Command { std: "docker" "start" "-a" "f6548549d66e69388811c374e851cef694a607a9702219963373d41cbe191447", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f6548549d66e69388811c374e851cef694a607a9702219963373d41cbe191447", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f6548549d66e69388811c374e851cef694a607a9702219963373d41cbe191447", kill_on_drop: false }` [INFO] [stdout] f6548549d66e69388811c374e851cef694a607a9702219963373d41cbe191447 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bb0d0619290059976eacce73df93a96631f581dc0d24930ee23d272c8b9a86e6 [INFO] running `Command { std: "docker" "start" "-a" "bb0d0619290059976eacce73df93a96631f581dc0d24930ee23d272c8b9a86e6", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling iri-string v0.7.11 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.32.0 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling axum-macros v0.5.0 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rusqlite v0.34.0 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling avocode v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `Command { std: "docker" "inspect" "bb0d0619290059976eacce73df93a96631f581dc0d24930ee23d272c8b9a86e6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bb0d0619290059976eacce73df93a96631f581dc0d24930ee23d272c8b9a86e6", kill_on_drop: false }` [INFO] [stdout] bb0d0619290059976eacce73df93a96631f581dc0d24930ee23d272c8b9a86e6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 720246e854ef7d632bb2dbd41f9428148dd32bc51ffedb573efba15a1db31426 [INFO] running `Command { std: "docker" "start" "-a" "720246e854ef7d632bb2dbd41f9428148dd32bc51ffedb573efba15a1db31426", kill_on_drop: false }` [INFO] [stderr] Compiling avocode v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 11.44s [INFO] running `Command { std: "docker" "inspect" "720246e854ef7d632bb2dbd41f9428148dd32bc51ffedb573efba15a1db31426", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "720246e854ef7d632bb2dbd41f9428148dd32bc51ffedb573efba15a1db31426", kill_on_drop: false }` [INFO] [stdout] 720246e854ef7d632bb2dbd41f9428148dd32bc51ffedb573efba15a1db31426 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] df9a7b60359e02d1c1b20e1db761097ae288239459d8929c8e677fe9a94332e1 [INFO] running `Command { std: "docker" "start" "-a" "df9a7b60359e02d1c1b20e1db761097ae288239459d8929c8e677fe9a94332e1", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/avocode-7a77f94e5cd2323e) [INFO] [stdout] [INFO] [stdout] running 195 tests [INFO] [stdout] test agent::builtin::tests::resolve_agent_merges_overrides ... ok [INFO] [stdout] test agent::prompts::tests::assemble_system_includes_all_parts ... ok [INFO] [stdout] test agent::builtin::tests::resolve_agent_returns_build_agent ... ok [INFO] [stdout] test agent::builtin::tests::builtin_agents_returns_four_agents ... ok [INFO] [stdout] test agent::builtin::tests::resolve_agent_nonexistent_returns_none ... ok [INFO] [stdout] test agent::prompts::tests::system_prompt_for_gemini_returns_gemini ... ok [INFO] [stdout] test agent::prompts::tests::system_prompt_for_codex_returns_codex ... ok [INFO] [stdout] test auth::codex::tests::test_codex_api_url_is_expected ... ok [INFO] [stdout] test app::tests::test_set_processing ... ok [INFO] [stdout] test agent::prompts::tests::assemble_system_skips_absent_optional_parts ... ok [INFO] [stdout] test agent::builtin::tests::build_agent_has_bash_ask_rule ... ok [INFO] [stdout] test agent::prompts::tests::system_prompt_for_unknown_returns_default ... ok [INFO] [stdout] test agent::prompts::tests::system_prompt_for_claude_returns_anthropic ... ok [INFO] [stdout] test app::tests::test_app_context_creation ... ok [INFO] [stdout] test agent::prompts::tests::system_prompt_for_gpt_returns_gpt ... ok [INFO] [stdout] test auth::codex::tests::test_codex_models_non_empty ... ok [INFO] [stdout] test agent::prompts::tests::environment_block_contains_working_directory_and_date ... ok [INFO] [stdout] test agent::builtin::tests::plan_agent_has_write_deny_rule ... ok [INFO] [stdout] test auth::codex::tests::test_codex_models_contain_known_model ... ok [INFO] [stdout] test auth::codex::tests::test_urlencoding_simple_alphanumeric_unchanged ... ok [INFO] [stdout] test auth::codex::tests::test_urlencoding_simple_space ... ok [INFO] [stdout] test auth::codex::tests::test_extract_jwt_sub_valid ... ok [INFO] [stdout] test auth::copilot::tests::test_copilot_headers_authorization_value ... ok [INFO] [stdout] test auth::copilot::tests::test_copilot_headers_contain_expected_keys ... ok [INFO] [stdout] test auth::oauth::tests::test_pkce_challenge_deterministic ... ok [INFO] [stdout] test auth::oauth::tests::test_pkce_challenge_valid ... ok [INFO] [stdout] test auth::oauth::tests::test_pkce_verifier_valid_base64url ... ok [INFO] [stdout] test auth::store::tests::test_auth_info_api_roundtrip ... ok [INFO] [stdout] test auth::store::tests::test_auth_info_wellknown_roundtrip ... ok [INFO] [stdout] test config::loader::tests::experimental_flags_parsed ... ok [INFO] [stdout] test config::loader::tests::mcp_config_roundtrip ... ok [INFO] [stdout] test config::loader::tests::merge_maps_preserves_base_only_keys ... ok [INFO] [stdout] test config::loader::tests::merge_scalar_keeps_base_when_overlay_is_none ... ok [INFO] [stdout] test config::loader::tests::merge_vecs_are_concatenated ... ok [INFO] [stdout] test config::loader::tests::parse_jsonc_parses_valid_jsonc ... ok [INFO] [stdout] test config::loader::tests::merge_maps_overlay_wins_on_collision ... ok [INFO] [stdout] test config::loader::tests::permission_action_roundtrip ... ok [INFO] [stdout] test config::loader::tests::strip_multiline_block_comment ... ok [INFO] [stdout] test cli::tests::verify_cli ... ok [INFO] [stdout] test config::loader::tests::strip_preserves_comment_syntax_in_strings ... ok [INFO] [stdout] test config::loader::tests::strip_block_comment ... ok [INFO] [stdout] test config::loader::tests::strip_line_comment ... ok [INFO] [stdout] test auth::store::tests::test_store_list_multiple ... ok [INFO] [stdout] test config::loader::tests::model_override_disabled_default_false ... ok [INFO] [stdout] test config::paths::tests::system_config_dir_contains_opencode ... ok [INFO] [stdout] test error::named::tests::display_auth_error ... ok [INFO] [stdout] test config::loader::tests::merge_scalar_overlay_wins ... ok [INFO] [stdout] test error::named::tests::display_http_error ... ok [INFO] [stdout] test error::named::tests::display_other_error ... ok [INFO] [stdout] test auth::store::tests::test_store_read_write_roundtrip ... ok [INFO] [stdout] test error::named::tests::error_object_roundtrips_through_json ... ok [INFO] [stdout] test config::paths::tests::global_config_dir_contains_opencode ... ok [INFO] [stdout] test error::named::tests::error_object_serialises_with_data_field ... ok [INFO] [stdout] test auth::store::tests::test_store_remove ... ok [INFO] [stdout] test error::named::tests::from_io_error_conversion ... ok [INFO] [stdout] test config::paths::tests::project_config_files_empty_for_directory_without_configs ... ok [INFO] [stdout] test error::named::tests::name_returns_correct_variant_label ... ok [INFO] [stdout] test error::named::tests::error_object_serialises_without_data_field ... ok [INFO] [stdout] test error::named::tests::to_object_contains_name_and_message ... ok [INFO] [stdout] test error::named::tests::from_serde_json_error_conversion ... ok [INFO] [stdout] test event::bus::tests::test_no_subscribers_ok ... ok [INFO] [stdout] test llm::anthropic::tests::test_parse_anthropic_event_message_delta_stop ... ok [INFO] [stdout] test llm::anthropic::tests::test_parse_anthropic_event_text_delta ... ok [INFO] [stdout] test event::bus::tests::test_publish_subscribe ... ok [INFO] [stdout] test llm::anthropic::tests::test_parse_anthropic_event_tool_call_start ... ok [INFO] [stdout] test llm::anthropic::tests::test_to_anthropic_messages_filters_system ... ok [INFO] [stdout] test llm::google::tests::test_parse_google_event_empty_data ... ok [INFO] [stdout] test llm::google::tests::test_parse_google_event_text ... ok [INFO] [stdout] test llm::google::tests::test_to_google_contents_filters_system ... ok [INFO] [stdout] test llm::google::tests::test_to_google_contents_user_message ... ok [INFO] [stdout] test llm::openai::tests::test_parse_openai_delta_finish_reason ... ok [INFO] [stdout] test llm::openai::tests::test_parse_openai_delta_text ... ok [INFO] [stdout] test llm::openai::tests::test_parse_openai_delta_tool_call ... ok [INFO] [stdout] test llm::openai::tests::test_to_openai_messages_tool_result ... ok [INFO] [stdout] test llm::anthropic::tests::test_parse_anthropic_event_input_json_delta ... ok [INFO] [stdout] test llm::openai::tests::test_to_openai_messages_user_text ... ok [INFO] [stdout] test llm::sse::tests::test_parse_sse_chunk_empty ... ok [INFO] [stdout] test llm::openai::tests::test_parse_openai_delta_empty ... ok [INFO] [stdout] test llm::sse::tests::test_parse_sse_chunk_multiline_data ... ok [INFO] [stdout] test llm::sse::tests::test_parse_sse_chunk_multiple_events ... ok [INFO] [stdout] test llm::sse::tests::test_parse_sse_chunk_simple_data ... ok [INFO] [stdout] test mcp::client::tests::test_mcp_server_config_roundtrip ... ok [INFO] [stdout] test mcp::client::tests::test_mcp_server_config_sse_roundtrip ... ok [INFO] [stdout] test mcp::oauth::tests::test_device_code_response_deserialize ... ok [INFO] [stdout] test mcp::client::tests::test_mcp_tool_roundtrip ... ok [INFO] [stdout] test mcp::oauth::tests::test_token_response_deserialize_pending ... ok [INFO] [stdout] test mcp::client::tests::test_transport_kind_serde ... ok [INFO] [stdout] test mcp::oauth::tests::test_token_response_deserialize_success ... ok [INFO] [stdout] test mcp::oauth::tests::test_oauth_error_display ... ok [INFO] [stdout] test mcp::stdio::tests::test_stdio_transport_is_send ... ok [INFO] [stdout] test mcp::sse::tests::test_sse_url_already_sse ... ok [INFO] [stdout] test mcp::sse::tests::test_sse_url_derivation_from_base ... ok [INFO] [stdout] test llm::sse::tests::test_parse_sse_chunk_with_event_type ... ok [INFO] [stdout] test mcp::streamable_http::tests::test_streamable_http_recv_empty_returns_error ... ok [INFO] [stdout] test mcp::tests::test_json_rpc_notification_no_id ... ok [INFO] [stdout] test permission::evaluate::tests::multiple_rulesets_later_overrides_earlier ... ok [INFO] [stdout] test mcp::tests::test_json_rpc_request_serialization ... ok [INFO] [stdout] test mcp::tests::test_json_rpc_response_serialization ... ok [INFO] [stdout] test mcp::tests::test_mcp_manager_default ... ok [INFO] [stdout] test mcp::tests::test_rpc_id_variants ... ok [INFO] [stdout] test permission::evaluate::tests::allow_then_deny_last_match_wins ... ok [INFO] [stdout] test permission::evaluate::tests::default_build_rules_bash_is_ask ... ok [INFO] [stdout] test permission::manager::tests::allow_rule_returns_true ... ok [INFO] [stdout] test permission::manager::tests::ask_and_reply_always_adds_session_rule ... ok [INFO] [stdout] test permission::wildcard::tests::double_star_env_with_extension ... ok [INFO] [stdout] test permission::evaluate::tests::default_plan_rules_write_is_deny ... ok [INFO] [stdout] test permission::evaluate::tests::no_matching_rules_returns_allow ... ok [INFO] [stdout] test permission::evaluate::tests::denied_tools_finds_denied_tool ... ok [INFO] [stdout] test mcp::streamable_http::tests::test_streamable_http_construction ... ok [INFO] [stdout] test auth::store::tests::test_auth_info_oauth_roundtrip ... ok [INFO] [stdout] test permission::wildcard::tests::question_mark_does_not_cross_slash ... ok [INFO] [stdout] test permission::wildcard::tests::question_mark_matches_single_char ... ok [INFO] [stdout] test permission::manager::tests::ask_and_reply_once_returns_true ... ok [INFO] [stdout] test permission::manager::tests::deny_rule_returns_false ... ok [INFO] [stdout] test permission::manager::tests::reply_not_found_returns_error ... ok [INFO] [stdout] test permission::manager::tests::session_rule_overrides_config_rule ... ok [INFO] [stdout] test permission::wildcard::tests::double_star_env_matches_nested ... ok [INFO] [stdout] test permission::wildcard::tests::double_star_crosses_slash ... ok [INFO] [stdout] test permission::wildcard::tests::double_star_env_no_match_wrong_name ... ok [INFO] [stdout] test permission::wildcard::tests::double_star_env_matches_top_level ... ok [INFO] [stdout] test permission::manager::tests::ask_and_reply_deny_returns_false ... ok [INFO] [stdout] test permission::wildcard::tests::star_does_not_cross_slash ... ok [INFO] [stdout] test permission::wildcard::tests::double_star_slash_matches_nested ... ok [INFO] [stdout] test permission::wildcard::tests::star_matches_simple_name ... ok [INFO] [stdout] test provider::models_dev::tests::test_cache_path_not_empty ... ok [INFO] [stdout] test provider::models_dev::tests::test_parse_api_response_empty_object_falls_back_to_builtin ... ok [INFO] [stdout] test provider::models_dev::tests::test_parse_api_response_non_object_falls_back_to_builtin ... ok [INFO] [stdout] test provider::models_dev::tests::test_parse_api_response_valid_provider ... ok [INFO] [stdout] test provider::registry::tests::test_all_models_returns_models_from_all_providers ... ok [INFO] [stdout] test provider::registry::tests::test_get_model_claude_sonnet ... ok [INFO] [stdout] test provider::registry::tests::test_get_provider_anthropic ... ok [INFO] [stdout] test provider::registry::tests::test_get_provider_not_found ... ok [INFO] [stdout] test provider::registry::tests::test_has_api_key_false_when_not_set ... ok [INFO] [stdout] test permission::wildcard::tests::literal_match ... ok [INFO] [stdout] test provider::registry::tests::test_list_models_for_provider ... ok [INFO] [stdout] test provider::registry::tests::test_registry_new_stores_all_providers ... ok [INFO] [stdout] test provider::schema::tests::test_model_info_serialization_roundtrip ... ok [INFO] [stdout] test provider::schema::tests::test_model_status_default ... ok [INFO] [stdout] test server::error::tests::error_body_serializes_correctly ... ok [INFO] [stdout] test server::error::tests::server_error_not_found_converts_to_404 ... ok [INFO] [stdout] test session::message::tests::part_step_finish_roundtrip ... ok [INFO] [stdout] test server::state::tests::app_state_new_creates_working_broadcast_channel ... ok [INFO] [stdout] test server::state::tests::server_event_serializes_as_tagged_json ... ok [INFO] [stdout] test session::message::tests::part_step_start_roundtrip ... ok [INFO] [stdout] test session::message::tests::part_text_serializes_and_deserializes ... ok [INFO] [stdout] test server::tests::create_router_does_not_panic ... ok [INFO] [stdout] test session::compaction::tests::estimate_tokens_returns_chars_divided_by_four ... ok [INFO] [stdout] test session::compaction::tests::message_tokens_sums_all_parts ... ok [INFO] [stdout] test session::compaction::tests::prune_tool_outputs_sets_output_to_pruned ... ok [INFO] [stdout] test session::message::tests::part_tool_pending_roundtrip ... ok [INFO] [stdout] test session::message::tests::part_tool_completed_roundtrip ... ok [INFO] [stdout] test session::schema::tests::generate_slug_has_expected_prefix ... ok [INFO] [stdout] test session::schema::tests::new_id_generates_many_unique_ids ... ok [INFO] [stdout] test session::processor::tests::process_emits_message_created_and_done ... ok [INFO] [stdout] test session::compaction::tests::prune_tool_outputs_skips_when_below_threshold ... ok [INFO] [stdout] test session::message::tests::message_assistant_has_no_parts ... ok [INFO] [stdout] test provider::registry::tests::test_builtin_providers_non_empty ... ok [INFO] [stdout] test session::message::tests::message_user_has_text_part ... ok [INFO] [stdout] test session::message::tests::part_compaction_roundtrip ... ok [INFO] [stdout] test session::message::tests::part_file_roundtrip ... ok [INFO] [stdout] test session::message::tests::part_id_returns_inner_id ... ok [INFO] [stdout] test session::message::tests::part_reasoning_roundtrip ... ok [INFO] [stdout] test session::schema::tests::session_new_sets_fields ... ok [INFO] [stdout] test session::schema::tests::new_id_generates_non_empty_unique_strings ... ok [INFO] [stdout] test session::store::tests::get_session_returns_none_for_unknown_id ... ok [INFO] [stdout] test session::store::tests::create_and_get_session_roundtrip ... ok [INFO] [stdout] test session::processor::tests::process_stores_user_message ... ok [INFO] [stdout] test tool::read::tests::read_file_with_line_numbers ... ok [INFO] [stdout] test tool::registry::tests::with_builtins_contains_all_tools ... ok [INFO] [stdout] test tool::schema::tests::no_truncate_under_limits ... ok [INFO] [stdout] test storage::tests::test_todo_upsert ... ok [INFO] [stdout] test tool::schema::tests::truncate_by_bytes ... ok [INFO] [stdout] test session::store::tests::open_in_memory_succeeds ... ok [INFO] [stdout] test tool::edit::tests::edit_replaces_content ... ok [INFO] [stdout] test storage::tests::test_session_list_by_project ... ok [INFO] [stdout] test session::store::tests::archive_session_sets_time_archived ... ok [INFO] [stdout] test session::store::tests::list_sessions_filters_by_project ... ok [INFO] [stdout] test session::store::tests::update_message_persists_changes ... ok [INFO] [stdout] test tool::schema::tests::truncate_by_line_count ... ok [INFO] [stdout] test tui::tests::test_app_creation ... ok [INFO] [stdout] test tui::tests::test_input_state ... ok [INFO] [stdout] test tui::tests::test_theme_cycling ... ok [INFO] [stdout] test types::tests::test_id_serde ... ok [INFO] [stdout] test types::tests::test_session_id_unique ... ok [INFO] [stdout] test types::tests::test_timestamp_now ... ok [INFO] [stdout] test types::tests::test_id_display ... ok [INFO] [stdout] test storage::tests::test_part_insert_and_list ... ok [INFO] [stdout] test tool::write::tests::write_creates_file ... ok [INFO] [stdout] test session::store::tests::update_session_title_persists ... ok [INFO] [stdout] test tool::edit::tests::edit_returns_error_when_not_found ... ok [INFO] [stdout] test storage::tests::test_open_in_memory_runs_migrations ... ok [INFO] [stdout] test session::store::tests::add_and_list_messages_roundtrip ... ok [INFO] [stdout] test storage::tests::test_session_insert_and_get ... ok [INFO] [stdout] test storage::tests::test_message_insert_and_list ... ok [INFO] [stdout] test storage::tests::test_part_list_nonexistent_session_returns_empty ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 195 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "df9a7b60359e02d1c1b20e1db761097ae288239459d8929c8e677fe9a94332e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "df9a7b60359e02d1c1b20e1db761097ae288239459d8929c8e677fe9a94332e1", kill_on_drop: false }` [INFO] [stdout] df9a7b60359e02d1c1b20e1db761097ae288239459d8929c8e677fe9a94332e1