[INFO] cloning repository https://github.com/YangChengxxyy/rust-claude-code
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/YangChengxxyy/rust-claude-code" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYangChengxxyy%2Frust-claude-code", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYangChengxxyy%2Frust-claude-code'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2b67410b1330306eb0af7beb8eb759915adbfe87
[INFO] testing YangChengxxyy/rust-claude-code/2b67410b1330306eb0af7beb8eb759915adbfe87 against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYangChengxxyy%2Frust-claude-code" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/YangChengxxyy/rust-claude-code
[INFO] finished tweaking git repo https://github.com/YangChengxxyy/rust-claude-code
[INFO] tweaked toml for git repo https://github.com/YangChengxxyy/rust-claude-code written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/YangChengxxyy/rust-claude-code on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/YangChengxxyy/rust-claude-code 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded glob-match v0.2.1
[INFO] [stderr]   Downloaded eventsource-stream v0.2.3
[INFO] [stderr]   Downloaded stability v0.2.1
[INFO] [stderr]   Downloaded tokio v1.52.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce
[INFO] running `Command { std: "docker" "start" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", 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" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", 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" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling glob-match v0.2.1
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling tokio v1.52.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling compact_str v0.7.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling rust-claude-core v0.1.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.27.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rust-claude-mcp v0.1.0 (/opt/rustwide/workdir/crates/mcp)
[INFO] [stderr]    Compiling rust-claude-api v0.1.0 (/opt/rustwide/workdir/crates/api)
[INFO] [stderr]    Compiling rust-claude-tools v0.1.0 (/opt/rustwide/workdir/crates/tools)
[INFO] [stderr]    Compiling rust-claude-sdk v0.1.0 (/opt/rustwide/workdir/crates/sdk)
[INFO] [stderr]    Compiling rust-claude-tui v0.1.0 (/opt/rustwide/workdir/crates/tui)
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> crates/tui/src/slash.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |         |args| UserCommand::ListSessions, // simplified — actual resume needs interaction
[INFO] [stdout]     |          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rust-claude-cli v0.1.0 (/opt/rustwide/workdir/crates/cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 27s
[INFO] running `Command { std: "docker" "inspect" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", 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" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-claude-core v0.1.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling rust-claude-api v0.1.0 (/opt/rustwide/workdir/crates/api)
[INFO] [stderr]    Compiling rust-claude-mcp v0.1.0 (/opt/rustwide/workdir/crates/mcp)
[INFO] [stderr]    Compiling rust-claude-tools v0.1.0 (/opt/rustwide/workdir/crates/tools)
[INFO] [stderr]    Compiling rust-claude-sdk v0.1.0 (/opt/rustwide/workdir/crates/sdk)
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> crates/tui/src/slash.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |         |args| UserCommand::ListSessions, // simplified — actual resume needs interaction
[INFO] [stdout]     |          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rust-claude-tui v0.1.0 (/opt/rustwide/workdir/crates/tui)
[INFO] [stderr]    Compiling rust-claude-cli v0.1.0 (/opt/rustwide/workdir/crates/cli)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:1636:13
[INFO] [stdout]      |
[INFO] [stdout] 1636 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:1710:13
[INFO] [stdout]      |
[INFO] [stdout] 1710 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:1856:13
[INFO] [stdout]      |
[INFO] [stdout] 1856 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:1935:13
[INFO] [stdout]      |
[INFO] [stdout] 1935 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:1979:13
[INFO] [stdout]      |
[INFO] [stdout] 1979 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2157:13
[INFO] [stdout]      |
[INFO] [stdout] 2157 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2228:13
[INFO] [stdout]      |
[INFO] [stdout] 2228 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2269:13
[INFO] [stdout]      |
[INFO] [stdout] 2269 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2343:13
[INFO] [stdout]      |
[INFO] [stdout] 2343 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2407:13
[INFO] [stdout]      |
[INFO] [stdout] 2407 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2463:13
[INFO] [stdout]      |
[INFO] [stdout] 2463 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2526:13
[INFO] [stdout]      |
[INFO] [stdout] 2526 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2603:13
[INFO] [stdout]      |
[INFO] [stdout] 2603 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2665:13
[INFO] [stdout]      |
[INFO] [stdout] 2665 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2721:13
[INFO] [stdout]      |
[INFO] [stdout] 2721 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2795:13
[INFO] [stdout]      |
[INFO] [stdout] 2795 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:2880:13
[INFO] [stdout]      |
[INFO] [stdout] 2880 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> crates/tui/src/slash.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |         |args| UserCommand::ListSessions, // simplified — actual resume needs interaction
[INFO] [stdout]     |          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/sdk/src/agent_loop.rs:3402:13
[INFO] [stdout]      |
[INFO] [stdout] 3402 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/streaming_tool_executor.rs:317:13
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let mut registry = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/streaming_tool_executor.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let mut registry = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/streaming_tool_executor.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let mut registry = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/streaming_tool_executor.rs:441:13
[INFO] [stdout]     |
[INFO] [stdout] 441 |         let mut registry = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/streaming_tool_executor.rs:507:13
[INFO] [stdout]     |
[INFO] [stdout] 507 |         let mut registry = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/streaming_tool_executor.rs:556:13
[INFO] [stdout]     |
[INFO] [stdout] 556 |         let mut registry = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/sdk/src/system_prompt.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let mut tools = ToolRegistry::new();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_claude_md` is never used
[INFO] [stdout]    --> crates/core/src/claude_md.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn read_claude_md(path: &Path) -> Option<ClaudeMdFile> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 29.86s
[INFO] running `Command { std: "docker" "inspect" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", 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" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `read_claude_md` is never used
[INFO] [stderr]    --> crates/core/src/claude_md.rs:292:4
[INFO] [stderr]     |
[INFO] [stderr] 292 | fn read_claude_md(path: &Path) -> Option<ClaudeMdFile> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-claude-core` (lib test) generated 1 warning
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:1636:13
[INFO] [stderr]      |
[INFO] [stderr] 1636 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:1710:13
[INFO] [stderr]      |
[INFO] [stderr] 1710 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:1856:13
[INFO] [stderr]      |
[INFO] [stderr] 1856 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:1935:13
[INFO] [stderr]      |
[INFO] [stderr] 1935 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:1979:13
[INFO] [stderr]      |
[INFO] [stderr] 1979 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2157:13
[INFO] [stderr]      |
[INFO] [stderr] 2157 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2228:13
[INFO] [stderr]      |
[INFO] [stderr] 2228 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2269:13
[INFO] [stderr]      |
[INFO] [stderr] 2269 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2343:13
[INFO] [stderr]      |
[INFO] [stderr] 2343 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2407:13
[INFO] [stderr]      |
[INFO] [stderr] 2407 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2463:13
[INFO] [stderr]      |
[INFO] [stderr] 2463 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2526:13
[INFO] [stderr]      |
[INFO] [stderr] 2526 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2603:13
[INFO] [stderr]      |
[INFO] [stderr] 2603 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2665:13
[INFO] [stderr]      |
[INFO] [stderr] 2665 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2721:13
[INFO] [stderr]      |
[INFO] [stderr] 2721 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2795:13
[INFO] [stderr]      |
[INFO] [stderr] 2795 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:2880:13
[INFO] [stderr]      |
[INFO] [stderr] 2880 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> crates/sdk/src/agent_loop.rs:3402:13
[INFO] [stderr]      |
[INFO] [stderr] 3402 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/streaming_tool_executor.rs:317:13
[INFO] [stderr]     |
[INFO] [stderr] 317 |         let mut registry = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/streaming_tool_executor.rs:351:13
[INFO] [stderr]     |
[INFO] [stderr] 351 |         let mut registry = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/streaming_tool_executor.rs:395:13
[INFO] [stderr]     |
[INFO] [stderr] 395 |         let mut registry = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/streaming_tool_executor.rs:441:13
[INFO] [stderr]     |
[INFO] [stderr] 441 |         let mut registry = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/streaming_tool_executor.rs:507:13
[INFO] [stderr]     |
[INFO] [stderr] 507 |         let mut registry = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/streaming_tool_executor.rs:556:13
[INFO] [stderr]     |
[INFO] [stderr] 556 |         let mut registry = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/sdk/src/system_prompt.rs:302:13
[INFO] [stderr]     |
[INFO] [stderr] 302 |         let mut tools = ToolRegistry::new();
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-claude-sdk` (lib test) generated 25 warnings (run `cargo fix --lib -p rust-claude-sdk --tests` to apply 25 suggestions)
[INFO] [stderr] warning: unused variable: `args`
[INFO] [stderr]    --> crates/tui/src/slash.rs:205:10
[INFO] [stderr]     |
[INFO] [stderr] 205 |         |args| UserCommand::ListSessions, // simplified — actual resume needs interaction
[INFO] [stderr]     |          ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-claude-tui` (lib) generated 1 warning (run `cargo fix --lib -p rust-claude-tui` to apply 1 suggestion)
[INFO] [stderr] warning: `rust-claude-tui` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.55s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_claude_api-a93920f77e052d26)
[INFO] [stdout] 
[INFO] [stdout] running 57 tests
[INFO] [stdout] test client::tests::test_bedrock_provider_constructs_messages_endpoint ... ok
[INFO] [stdout] test client::tests::test_bedrock_provider_reports_missing_credentials ... ok
[INFO] [stdout] test client::tests::test_error_response_maps_prompt_too_long ... ok
[INFO] [stdout] test client::tests::test_error_response_non_prompt_400_not_mapped_to_prompt_too_long ... ok
[INFO] [stdout] test client::tests::test_error_response_maps_exceeds_maximum ... ok
[INFO] [stdout] test client::tests::test_error_response_falls_back_to_raw_body ... ok
[INFO] [stdout] test client::tests::test_error_response_maps_auth_status ... ok
[INFO] [stdout] test client::tests::test_error_response_maps_rate_limit_status ... ok
[INFO] [stdout] test client::tests::test_error_response_maps_too_many_tokens ... ok
[INFO] [stdout] test client::tests::test_provider_adapter_default_preserves_anthropic_endpoint ... ok
[INFO] [stdout] test client::tests::test_error_response_maps_overloaded_529 ... ok
[INFO] [stdout] test client::tests::test_vertex_provider_constructs_messages_endpoint ... ok
[INFO] [stdout] test client::tests::test_vertex_provider_reports_missing_credentials ... ok
[INFO] [stdout] test streaming::tests::test_content_block_accumulator_builds_thinking_block_from_deltas ... ok
[INFO] [stdout] test streaming::tests::test_content_block_accumulator_builds_tool_use_block_from_json_deltas ... ok
[INFO] [stdout] test streaming::tests::test_text_delta_accumulator_rejects_non_text_delta ... ok
[INFO] [stdout] test streaming::tests::test_text_delta_accumulator_builds_complete_block ... ok
[INFO] [stdout] test streaming::tests::test_content_block_accumulator_builds_text_block_from_deltas ... ok
[INFO] [stdout] test types::tests::test_api_error_deserialization ... ok
[INFO] [stdout] test types::tests::test_api_content_text_serialization ... ok
[INFO] [stdout] test types::tests::test_api_content_blocks_serialization ... ok
[INFO] [stdout] test types::tests::test_api_tool_deferred_serialization_omits_fields ... ok
[INFO] [stdout] test types::tests::test_api_tool_full_deserialization ... ok
[INFO] [stdout] test types::tests::test_api_tool_full_serialization ... ok
[INFO] [stdout] test types::tests::test_api_tool_deferred_deserialization ... ok
[INFO] [stdout] test types::tests::test_api_message_from_core_message ... ok
[INFO] [stdout] test types::tests::test_cache_control_serialization ... ok
[INFO] [stdout] test streaming::tests::test_parse_stream_event_message_start ... ok
[INFO] [stdout] test types::tests::test_create_message_request_skips_none_fields ... ok
[INFO] [stdout] test types::tests::test_create_message_request_serialization ... ok
[INFO] [stdout] test types::tests::test_create_message_request_with_metadata ... ok
[INFO] [stdout] test types::tests::test_create_message_request_with_optional_system_prompt ... ok
[INFO] [stdout] test types::tests::test_create_message_request_with_tools ... ok
[INFO] [stdout] test types::tests::test_create_message_response_deserialization ... ok
[INFO] [stdout] test types::tests::test_create_message_response_with_tool_use ... ok
[INFO] [stdout] test types::tests::test_inject_cache_control_empty_messages ... ok
[INFO] [stdout] test types::tests::test_full_request_format_matches_anthropic_api ... ok
[INFO] [stdout] test types::tests::test_inject_cache_control_multi_block_message ... ok
[INFO] [stdout] test types::tests::test_inject_cache_control_multiple_messages ... ok
[INFO] [stdout] test types::tests::test_inject_cache_control_single_message ... ok
[INFO] [stdout] test types::tests::test_request_with_thinking ... ok
[INFO] [stdout] test types::tests::test_structured_blocks_system_prompt ... ok
[INFO] [stdout] test types::tests::test_request_without_thinking_omits_field ... ok
[INFO] [stdout] test types::tests::test_system_block_with_cache_control ... ok
[INFO] [stdout] test types::tests::test_system_block_without_cache_control ... ok
[INFO] [stdout] test streaming::tests::test_parse_sse_events_joins_multiline_data ... ok
[INFO] [stdout] test streaming::tests::test_stream_events_from_text_yields_stream_events ... ok
[INFO] [stdout] test types::tests::test_system_prompt_blocks_serialization ... ok
[INFO] [stdout] test client::tests::test_default_headers_reject_invalid_version_value ... ok
[INFO] [stdout] test client::tests::test_default_headers_include_auth_version_and_content_type ... ok
[INFO] [stdout] test client::tests::test_empty_api_key_is_rejected ... ok
[INFO] [stdout] test client::tests::test_with_base_url_strips_trailing_slash ... ok
[INFO] [stdout] test client::tests::test_bearer_auth_headers_use_authorization ... ok
[INFO] [stdout] test client::tests::test_default_headers_reject_invalid_api_key_value ... ok
[INFO] [stdout] test client::tests::test_request_uses_messages_endpoint ... ok
[INFO] [stdout] test streaming::tests::test_parse_sse_events_extracts_event_and_data ... ok
[INFO] [stdout] test client::tests::test_error_response_rate_limit_429_unchanged ... ok
[INFO] [stderr]      Running tests/client.rs (/opt/rustwide/target/debug/deps/client-fb8e3595eb61253f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test create_message_stream_with_real_api_key ... ignored, requires ANTHROPIC_API_KEY
[INFO] [stdout] test create_message_with_real_api_key ... ignored, requires ANTHROPIC_API_KEY
[INFO] [stdout] test api_message_user_helper_uses_text_content ... ok
[INFO] [stdout] test api_message_assistant_helper_uses_text_content ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_claude_cli-875c585187868821)
[INFO] [stdout] test anthropic_client_rejects_blank_api_key ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test session::tests::test_is_interrupted_jsonl_without_session_end ... ok
[INFO] [stdout] test session::tests::test_load_from_jsonl_truncated_last_line ... ok
[INFO] [stdout] test session::tests::test_load_from_jsonl_unknown_event_type_skipped ... ok
[INFO] [stdout] test session::tests::test_list_sessions_deduplicates_jsonl_over_json ... ok
[INFO] [stdout] test session::tests::test_load_from_jsonl_normal ... ok
[INFO] [stdout] test session::tests::test_is_interrupted_jsonl_with_session_end ... ok
[INFO] [stdout] test session::tests::test_load_from_jsonl_permission_change ... ok
[INFO] [stdout] test session::tests::test_restore_app_state_from_session ... ok
[INFO] [stdout] test session::tests::test_list_sessions_includes_both_formats ... ok
[INFO] [stdout] test session::tests::test_load_from_jsonl_compact_boundary ... ok
[INFO] [stdout] test session::tests::test_list_sessions_detects_interrupted ... ok
[INFO] [stdout] test session::tests::test_session_file_load_autodetects_json ... ok
[INFO] [stdout] test session::tests::test_load_latest_from_empty_dir ... ok
[INFO] [stdout] test session::tests::test_list_recent_sessions_sorts_skips_corrupt_and_limits ... ok
[INFO] [stdout] test session::tests::test_load_latest_prefers_interrupted_session ... ok
[INFO] [stdout] test session::tests::test_sessions_dir ... ok
[INFO] [stdout] test session::tests::test_session_writer_creates_jsonl_with_header ... ok
[INFO] [stdout] test session::tests::test_session_writer_open_append_continues_file ... ok
[INFO] [stdout] test session::tests::test_session_writer_append_event ... ok
[INFO] [stdout] test session::tests::test_session_writer_append_messages_and_finish ... ok
[INFO] [stdout] test session::tests::test_session_file_load_autodetects_jsonl ... ok
[INFO] [stdout] test session::tests::test_session_file_new ... ok
[INFO] [stdout] test session::tests::test_session_file_serde_roundtrip ... ok
[INFO] [stdout] test session::tests::test_session_file_roundtrip_preserves_assistant_message_usage ... ok
[INFO] [stdout] test session::tests::test_session_load_backfills_missing_model_setting ... ok
[INFO] [stdout] test session::tests::test_session_summary_extracts_first_user_message ... ok
[INFO] [stdout] test session::tests::test_session_summary_truncates_long_first_user_message ... ok
[INFO] [stdout] test session::tests::test_session_save_and_load ... ok
[INFO] [stdout] test session::tests::test_restore_app_state_preserves_session_id ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_claude-1de9e44c01c7e280)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/query_loop_local.rs (/opt/rustwide/target/debug/deps/query_loop_local-0fbd0d7a1708448b)
[INFO] [stdout] running 33 tests
[INFO] [stderr]      Running tests/session_jsonl_cli.rs (/opt/rustwide/target/debug/deps/session_jsonl_cli-ceabfac74bd536de)
[INFO] [stdout] test tests::budget_warning_message_reports_exceeded_budget ... ok
[INFO] [stdout] test tests::effort_budget_maps_levels_to_budget_overrides ... ok
[INFO] [stdout] test tests::latest_assistant_text_ignores_non_text_and_selects_latest ... ok
[INFO] [stdout] test tests::copy_text_with_maps_empty_and_provider_errors ... ok
[INFO] [stdout] test tests::recap_messages_reports_empty_conversation ... ok
[INFO] [stdout] test tests::context_snapshot_handles_unknown_capacity ... ok
[INFO] [stdout] test tests::format_cost_report_includes_cache_pricing_details ... ok
[INFO] [stdout] test tests::recap_messages_counts_turns_and_latest_user_request ... ok
[INFO] [stdout] test tests::format_memory_store_status_empty_store ... ok
[INFO] [stdout] test tests::format_custom_agents_lists_agents_and_empty_state ... ok
[INFO] [stdout] test tests::format_memory_store_status_no_store_dir ... ok
[INFO] [stdout] test tests::format_memory_store_status_populated_store ... ok
[INFO] [stdout] test tests::manual_verification_init_behavior_does_not_overwrite_existing ... ok
[INFO] [stdout] test tests::manual_verification_status_output_contains_expected_sections ... ok
[INFO] [stdout] test tests::export_conversation_writes_markdown_with_metadata_and_tools ... ok
[INFO] [stdout] test tests::manual_verification_permissions_output_contains_rules ... ok
[INFO] [stdout] test tests::context_snapshot_uses_known_capacity_and_tool_breakdown ... ok
[INFO] [stdout] test tests::remember_memory_name_dedup_targets_existing_path ... ok
[INFO] [stdout] test tests::truncate_latest_user_turn_removes_user_and_following_assistant_messages ... ok
[INFO] [stdout] test tests::review_prompt_prioritizes_findings_and_notes_truncation ... ok
[INFO] [stdout] test tests::stream_json_output_format_is_accepted ... ok
[INFO] [stdout] test tests::text_and_json_output_formats_still_parse ... ok
[INFO] [stdout] test tests::resolve_config_cli_sandbox_overrides_defaults ... ok
[INFO] [stdout] test tests::finish_session_writer_persists_session_end ... ok
[INFO] [stdout] test tests::resolve_config_merges_user_deny_with_project_allow ... ok
[INFO] [stdout] test tests::resolve_config_cli_model_beats_anthropic_model_env ... ok
[INFO] [stdout] test tests::resolve_config_prefers_cli_over_project_and_user ... ok
[INFO] [stdout] test tests::unknown_output_format_is_rejected ... ok
[INFO] [stdout] test tests::resolve_config_rust_claude_model_override_beats_cli ... ok
[INFO] [stdout] test tests::resolve_config_uses_cli_provider ... ok
[INFO] [stdout] test tests::resolve_config_uses_project_permissions ... ok
[INFO] [stdout] test tests::pr_review_reports_missing_gh ... ok
[INFO] [stdout] test tests::remember_memory_updates_existing_entry_via_dedup ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test cli_runs_against_local_compatible_endpoint ... ignored, requires local compatible endpoint
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test print_mode_writes_one_session_end_event ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_claude_core-8269cd54e5f008b2)
[INFO] [stdout] test resume_completed_jsonl_appends_without_truncating_history ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 363 tests
[INFO] [stdout] test claude_md::tests::test_global_claude_md_with_config_dir ... ok
[INFO] [stdout] test claude_md::tests::test_empty_claude_md_skipped ... ok
[INFO] [stdout] test claude_md::tests::test_parse_frontmatter_with_paths ... ok
[INFO] [stdout] test claude_md::tests::test_parse_frontmatter_no_paths ... ok
[INFO] [stdout] test claude_md::tests::test_claude_md_in_parent_and_child ... ok
[INFO] [stdout] test claude_md::tests::test_parse_frontmatter_none ... ok
[INFO] [stdout] test compaction::tests::test_compact_strategy_configs ... ok
[INFO] [stdout] test claude_md::tests::test_local_md_next_to_claude_md ... ok
[INFO] [stdout] test claude_md::tests::test_project_discovery_dirs_use_root_to_leaf_order ... ok
[INFO] [stdout] test claude_md::tests::test_discover_claude_md_ordering ... ok
[INFO] [stdout] test compaction::tests::test_compaction_config_serde ... ok
[INFO] [stdout] test compaction::tests::test_compaction_result_serde ... ok
[INFO] [stdout] test compaction::tests::test_estimate_current_tokens_no_api_usage ... ok
[INFO] [stdout] test compaction::tests::test_estimate_current_tokens_with_api_usage_no_new_messages ... ok
[INFO] [stdout] test compaction::tests::test_estimate_current_tokens_with_api_usage_and_new_messages ... ok
[INFO] [stdout] test claude_md::tests::test_rules_in_full_discovery ... ok
[INFO] [stdout] test claude_md::tests::test_find_git_root ... ok
[INFO] [stdout] test claude_md::tests::test_stops_at_git_root ... ok
[INFO] [stdout] test claude_md::tests::test_no_claude_md_returns_empty ... ok
[INFO] [stdout] test claude_md::tests::test_manual_verification_local_and_rule_files_are_discovered ... ok
[INFO] [stdout] test claude_md::tests::test_rules_discovery_no_rules_dir ... ok
[INFO] [stdout] test compaction::tests::test_estimate_message_tokens_text_only ... ok
[INFO] [stdout] test compaction::tests::test_estimate_system_prompt_tokens ... ok
[INFO] [stdout] test compaction::tests::test_needs_compaction_below_threshold ... ok
[INFO] [stdout] test compaction::tests::test_partition_ordering ... ok
[INFO] [stdout] test compaction::tests::test_partition_too_few_messages ... ok
[INFO] [stdout] test compaction::tests::test_needs_compaction_with_usage_based_counting ... ok
[INFO] [stdout] test compaction::tests::test_partition_normal ... ok
[INFO] [stdout] test compaction::tests::test_partition_preserves_minimum_two ... ok
[INFO] [stdout] test config::tests::test_config_defaults ... ok
[INFO] [stdout] test config::tests::test_config_defaults_fallback_model_to_none ... ok
[INFO] [stdout] test config::tests::test_config_overrides_fallback_model ... ok
[INFO] [stdout] test config::tests::test_config_reads_fallback_model ... ok
[INFO] [stdout] test claude_md::tests::test_global_local_md ... ok
[INFO] [stdout] test config::tests::test_config_builder ... ok
[INFO] [stdout] test config::tests::test_provider_config_serializes_supported_providers ... ok
[INFO] [stdout] test claude_md::tests::test_rules_with_frontmatter_paths ... ok
[INFO] [stdout] test claude_md::tests::test_single_claude_md_in_cwd ... ok
[INFO] [stdout] test cost::tests::selects_model_pricing ... ok
[INFO] [stdout] test cost::tests::reports_budget_status ... ok
[INFO] [stdout] test cost::tests::calculates_cache_aware_cost ... ok
[INFO] [stdout] test cost::tests::tracks_total_cost ... ok
[INFO] [stdout] test custom_agents::tests::missing_agents_directory_is_empty ... ok
[INFO] [stdout] test claude_md::tests::test_local_md_without_claude_md ... ok
[INFO] [stdout] test claude_md::tests::test_full_discover_with_global ... ok
[INFO] [stdout] test custom_agents::tests::rejects_invalid_name ... ok
[INFO] [stdout] test custom_agents::tests::rejects_missing_required_field ... ok
[INFO] [stdout] test custom_agents::tests::discovers_agents_and_reports_duplicates ... ok
[INFO] [stdout] test file_state_cache::tests::test_hash_content_deterministic ... ok
[INFO] [stdout] test config::tests::test_load_uses_env_api_key_when_config_file_omits_it ... ok
[INFO] [stdout] test claude_md::tests::test_rules_discovery_multiple_files ... ok
[INFO] [stdout] test file_state_cache::tests::test_lru_eviction_at_capacity ... ok
[INFO] [stdout] test custom_agents::tests::parses_valid_agent_definition ... ok
[INFO] [stdout] test file_state_cache::tests::test_no_entry_returns_none ... ok
[INFO] [stdout] test compaction::tests::test_needs_compaction_above_threshold ... ok
[INFO] [stdout] test file_state_cache::tests::test_record_read_and_not_stale ... ok
[INFO] [stdout] test compaction::tests::test_needs_compaction_too_few_messages ... ok
[INFO] [stdout] test file_state_cache::tests::test_partial_view_flag ... ok
[INFO] [stdout] test compaction::tests::test_estimate_message_tokens_with_tool_use ... ok
[INFO] [stdout] test compaction::tests::test_estimate_message_tokens_with_tool_result ... ok
[INFO] [stdout] test file_state_cache::tests::test_record_read_with_offset_and_limit ... ok
[INFO] [stdout] test config::tests::test_load_errors_when_no_api_key_available ... ok
[INFO] [stdout] test file_state_cache::tests::test_record_write_updates_entry ... ok
[INFO] [stdout] test git::tests::sanitize_accepts_simple_names ... ok
[INFO] [stdout] test git::tests::sanitize_rejects_bad_names ... ok
[INFO] [stdout] test hooks::tests::test_hook_command_response_deserialize ... ok
[INFO] [stdout] test git::tests::worktree_dir_layout ... ok
[INFO] [stdout] test hooks::tests::test_hook_command_response_empty ... ok
[INFO] [stdout] test hooks::tests::test_hook_command_response_updated_input ... ok
[INFO] [stdout] test hooks::tests::test_hook_config_deserialize_full ... ok
[INFO] [stdout] test hooks::tests::test_hook_config_deserialize_minimal ... ok
[INFO] [stdout] test config::tests::test_load_prefers_config_api_key_over_env ... ok
[INFO] [stdout] test config::tests::test_resolve_provider_precedence_and_conflicts ... ok
[INFO] [stdout] test hooks::tests::test_hook_event_display ... ok
[INFO] [stdout] test hooks::tests::test_hook_event_from_str ... ok
[INFO] [stdout] test hooks::tests::test_hook_event_group_empty_matcher ... ok
[INFO] [stdout] test hooks::tests::test_hook_event_group_deserialize ... ok
[INFO] [stdout] test hooks::tests::test_hook_result_eq ... ok
[INFO] [stdout] test hooks::tests::test_hooks_config_deserialize ... ok
[INFO] [stdout] test config::tests::test_save_without_credential_omits_api_key ... ok
[INFO] [stdout] test hooks::tests::test_post_tool_use_input_serialize ... ok
[INFO] [stdout] test hooks::tests::test_session_lifecycle_input_serialize ... ok
[INFO] [stdout] test hooks::tests::test_pre_tool_use_input_serialize ... ok
[INFO] [stdout] test hooks::tests::test_stop_input_serialize ... ok
[INFO] [stdout] test hooks::tests::test_user_prompt_submit_input_serialize ... ok
[INFO] [stdout] test mcp_config::tests::test_default_transport_type_is_stdio ... ok
[INFO] [stdout] test mcp_config::tests::test_deserialize_http_server ... ok
[INFO] [stdout] test mcp_config::tests::test_deserialize_minimal_stdio_server ... ok
[INFO] [stdout] test mcp_config::tests::test_filter_supported_servers ... ok
[INFO] [stdout] test mcp_config::tests::test_merge_mcp_servers_different_names ... ok
[INFO] [stdout] test mcp_config::tests::test_merge_mcp_servers_same_name_high_wins ... ok
[INFO] [stdout] test mcp_config::tests::test_remote_disconnected_state_is_distinct_from_failed ... ok
[INFO] [stdout] test memory::tests::builds_disabled_auto_memory_guidance ... ok
[INFO] [stdout] test memory::tests::builds_enabled_auto_memory_guidance ... ok
[INFO] [stdout] test memory::tests::builds_memory_contract_prompt ... ok
[INFO] [stdout] test memory::tests::correct_memory_entry_errors_on_nonexistent_target ... ok
[INFO] [stdout] test git::tests::enter_existing_worktree_rejects_non_repo ... ok
[INFO] [stdout] test memory::tests::detects_auto_memory_disable_flag ... ok
[INFO] [stdout] test memory::tests::find_duplicate_by_exact_path ... ok
[INFO] [stdout] test memory::tests::find_duplicate_by_name_case_insensitive ... ok
[INFO] [stdout] test memory::tests::find_duplicate_returns_none_when_no_match ... ok
[INFO] [stdout] test hooks::tests::test_hook_config_deserialize_unsupported_type ... ok
[INFO] [stdout] test git::tests::test_collect_git_context_returns_none_outside_repo ... ok
[INFO] [stdout] test memory::tests::manual_memory_save_ignores_auto_memory_disable_policy ... ok
[INFO] [stdout] test mcp_config::tests::test_deserialize_stdio_server ... ok
[INFO] [stdout] test mcp_config::tests::test_deserialize_sse_server ... ok
[INFO] [stdout] test memory::tests::parses_memory_type ... ok
[INFO] [stdout] test memory::tests::correct_memory_entry_updates_existing_file ... ok
[INFO] [stdout] test memory::tests::selects_relevant_memories_by_query_terms ... ok
[INFO] [stdout] test memory::tests::truncates_memory_entrypoint ... ok
[INFO] [stdout] test memory::tests::save_memory_entry_dedup_updates_duplicate_name_at_existing_path ... ok
[INFO] [stdout] test memory::tests::writes_memory_entry_and_rebuilds_index ... ok
[INFO] [stdout] test message::tests::test_content_block_image_base64_serde ... ok
[INFO] [stdout] test message::tests::test_content_block_image_url_serde ... ok
[INFO] [stdout] test message::tests::test_content_block_text_serde ... ok
[INFO] [stdout] test memory::tests::parses_frontmatter_and_body ... ok
[INFO] [stdout] test message::tests::test_content_block_tool_result_serde ... ok
[INFO] [stdout] test message::tests::test_content_block_tool_use_serde ... ok
[INFO] [stdout] test memory::tests::save_memory_entry_dedup_updates_duplicate_path ... ok
[INFO] [stdout] test message::tests::test_message_assistant ... ok
[INFO] [stdout] test message::tests::test_message_assistant_with_usage ... ok
[INFO] [stdout] test message::tests::test_message_serializes_to_anthropic_format ... ok
[INFO] [stdout] test message::tests::test_message_user ... ok
[INFO] [stdout] test message::tests::test_message_with_tool_results ... ok
[INFO] [stdout] test message::tests::test_role_serde ... ok
[INFO] [stdout] test memory::tests::removes_memory_entry_and_updates_index ... ok
[INFO] [stdout] test message::tests::test_thinking_block_backward_compat_legacy_json ... ok
[INFO] [stdout] test message::tests::test_content_block_thinking_serde ... ok
[INFO] [stdout] test message::tests::test_thinking_block_without_signature_roundtrip ... ok
[INFO] [stdout] test message::tests::test_thinking_block_with_signature_roundtrip ... ok
[INFO] [stdout] test message::tests::test_stop_reason_serde ... ok
[INFO] [stdout] test message::tests::test_unknown_block_type_deserializes ... ok
[INFO] [stdout] test migration::tests::missing_config_file_is_noop ... ok
[INFO] [stdout] test migration::tests::migration_failure_stops_upgrade ... ok
[INFO] [stdout] test message::tests::test_usage_serde ... ok
[INFO] [stdout] test model::tests::claude_3_5_does_not_support_thinking ... ok
[INFO] [stdout] test model::tests::get_thinking_config_disabled_returns_disabled ... ok
[INFO] [stdout] test model::tests::get_thinking_config_haiku_4_returns_enabled ... ok
[INFO] [stdout] test model::tests::get_thinking_config_claude_3_returns_disabled ... ok
[INFO] [stdout] test model::tests::get_thinking_config_opus_4_6_returns_adaptive ... ok
[INFO] [stdout] test compaction::tests::test_compaction_config_default ... ok
[INFO] [stdout] test mcp_config::tests::test_deserialize_unsupported_transport ... ok
[INFO] [stdout] test model::tests::get_thinking_config_uses_budget_override_for_thinking_models ... ok
[INFO] [stdout] test model::tests::normalizes_1m_suffix_for_api ... ok
[INFO] [stdout] test migration::tests::runs_pending_migrations_in_order ... ok
[INFO] [stdout] test model::tests::normalizes_2m_suffix_for_api_case_insensitively ... ok
[INFO] [stdout] test model::tests::opus_4_6_supports_adaptive_thinking ... ok
[INFO] [stdout] test model::tests::opusplan_stays_sonnet_when_over_200k ... ok
[INFO] [stdout] test model::tests::opusplan_switches_to_opus_in_plan_mode_under_200k ... ok
[INFO] [stdout] test model::tests::preserves_custom_model_case_without_suffix ... ok
[INFO] [stdout] test migration::tests::default_migration_renames_legacy_opus_model ... ok
[INFO] [stdout] test model::tests::preserves_custom_model_and_strips_suffix_case_insensitively ... ok
[INFO] [stdout] test model::tests::resolves_best_alias_to_opus ... ok
[INFO] [stdout] test model::tests::resolves_opus_alias_with_1m_suffix ... ok
[INFO] [stdout] test model::tests::resolves_haiku_alias ... ok
[INFO] [stdout] test model::tests::resolves_opusplan_to_sonnet_outside_plan_mode ... ok
[INFO] [stdout] test model::tests::resolves_sonnet_alias ... ok
[INFO] [stdout] test model::tests::sonnet_4_6_supports_adaptive_thinking ... ok
[INFO] [stdout] test model::tests::thinking_config_enabled_caps_budget_to_max_tokens_minus_1 ... ok
[INFO] [stdout] test model::tests::thinking_config_enabled_serializes_correctly ... ok
[INFO] [stdout] test model::tests::usage_at_200k_threshold_returns_false ... ok
[INFO] [stdout] test permission::tests::test_accept_edits_allows_file_operations ... ok
[INFO] [stdout] test model::tests::thinking_config_adaptive_uses_max_tokens ... ok
[INFO] [stdout] test permission::tests::test_always_allow_rule ... ok
[INFO] [stdout] test model::tests::usage_above_200k_threshold_returns_true ... ok
[INFO] [stdout] test permission::tests::test_accept_edits_needs_confirmation_for_bash ... ok
[INFO] [stdout] test model::tests::thinking_config_disabled_returns_none ... ok
[INFO] [stdout] test permission::tests::test_always_deny_rule ... ok
[INFO] [stdout] test permission::tests::test_ask_rule_forces_confirmation ... ok
[INFO] [stdout] test permission::tests::test_auto_mode_allows_readonly ... ok
[INFO] [stdout] test permission::tests::test_ask_rule_type_serde ... ok
[INFO] [stdout] test permission::tests::test_auto_mode_requires_confirmation_for_network_bash ... ok
[INFO] [stdout] test permission::tests::test_auto_mode_requires_confirmation_for_dangerous_bash ... ok
[INFO] [stdout] test permission::tests::test_auto_permission_rejects_unsafe_file_path ... ok
[INFO] [stdout] test permission::tests::test_auto_permission_allows_safe_read_path ... ok
[INFO] [stdout] test permission::tests::test_bypass_overrides_ask_to_allowed ... ok
[INFO] [stdout] test permission::tests::test_bypass_permissions_allows_all ... ok
[INFO] [stdout] test permission::tests::test_check_pattern_rule_without_command_falls_back_to_mode ... ok
[INFO] [stdout] test message::tests::test_unknown_block_does_not_break_known_types ... ok
[INFO] [stdout] test permission::tests::test_ask_takes_precedence_over_allow ... ok
[INFO] [stdout] test permission::tests::test_auto_mode_allows_safe_bash ... ok
[INFO] [stdout] test permission::tests::test_check_plan_mode_still_allows_read_only_allow_rule ... ok
[INFO] [stdout] test permission::tests::test_check_prioritizes_deny_over_allow ... ok
[INFO] [stdout] test permission::tests::test_check_wildcard_pattern_rule_matches_command ... ok
[INFO] [stdout] test permission::tests::test_compact_string_both_patterns ... ok
[INFO] [stdout] test permission::tests::test_combined_command_and_path_rule ... ok
[INFO] [stdout] test permission::tests::test_compact_string_path_only ... ok
[INFO] [stdout] test permission::tests::test_compact_string_simple ... ok
[INFO] [stdout] test permission::tests::test_default_mode_allows_readonly ... ok
[INFO] [stdout] test permission::tests::test_compact_string_with_pattern ... ok
[INFO] [stdout] test permission::tests::test_deny_takes_precedence_over_ask ... ok
[INFO] [stdout] test permission::tests::test_dont_ask_denies_all ... ok
[INFO] [stdout] test permission::tests::test_extract_file_path_bash_returns_none ... ok
[INFO] [stdout] test permission::tests::test_extract_file_path_file_edit ... ok
[INFO] [stdout] test permission::tests::test_extract_file_path_file_write ... ok
[INFO] [stdout] test permission::tests::test_extract_file_path_file_read ... ok
[INFO] [stdout] test permission::tests::test_extract_file_path_no_field ... ok
[INFO] [stdout] test permission::tests::test_ask_rule_with_path_pattern ... ok
[INFO] [stdout] test permission::tests::test_manual_verification_path_glob_matching_and_non_matching ... ok
[INFO] [stdout] test permission::tests::test_mode_from_str_unknown_fails ... ok
[INFO] [stdout] test permission::tests::test_default_mode_needs_confirmation_for_writes ... ok
[INFO] [stdout] test permission::tests::test_mode_string_roundtrip ... ok
[INFO] [stdout] test permission::tests::test_parse_empty_string_fails ... ok
[INFO] [stdout] test permission::tests::test_parse_missing_closing_paren_fails ... ok
[INFO] [stdout] test permission::tests::test_parse_path_only_absolute ... ok
[INFO] [stdout] test permission::tests::test_parse_empty_tool_name_before_paren_fails ... ok
[INFO] [stdout] test permission::tests::test_parse_path_only_rule ... ok
[INFO] [stdout] test permission::tests::test_parse_roundtrip ... ok
[INFO] [stdout] test permission::tests::test_parse_simple_tool_name ... ok
[INFO] [stdout] test permission::tests::test_parse_tool_with_pattern ... ok
[INFO] [stdout] test permission::tests::test_parse_rule_with_both_patterns ... ok
[INFO] [stdout] test permission::tests::test_parse_with_complex_pattern ... ok
[INFO] [stdout] test permission::tests::test_path_rule_allow_matching_file ... ok
[INFO] [stdout] test permission::tests::test_path_rule_deny_matching_file ... ok
[INFO] [stdout] test permission::tests::test_path_rule_no_match_falls_through ... ok
[INFO] [stdout] test permission::tests::test_parse_path_only_cwd_relative ... ok
[INFO] [stdout] test permission::tests::test_path_rule_without_file_path_doesnt_match ... ok
[INFO] [stdout] test permission::tests::test_pattern_matching ... ok
[INFO] [stdout] test permission::tests::test_path_rule_parse_roundtrip ... ok
[INFO] [stdout] test permission::tests::test_pattern_rule_is_ignored_when_command_does_not_match ... ok
[INFO] [stdout] test permission::tests::test_parse_path_only_home_relative ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_add_rules ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_check_allowed ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_bypass_mode ... ok
[INFO] [stdout] test permission::tests::test_pattern_rule_matches_command ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_check_delegates_to_mode ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_check_denied ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_deny_overrides_allow ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_load_nonexistent_file ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_new ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_check_needs_confirmation ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_plan_mode_denies_write ... ok
[INFO] [stdout] test permission::tests::test_check_plan_mode_does_not_allow_write_even_with_allow_rule ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_default_path ... ok
[INFO] [stdout] test memory::tests::save_memory_entry_dedup_creates_new_entry ... ok
[INFO] [stdout] test model::tests::haiku_switches_to_sonnet_in_plan_mode ... ok
[INFO] [stdout] test permission::tests::test_parse_tool_name_only_no_parens ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_save_creates_parent_dirs ... ok
[INFO] [stdout] test file_state_cache::tests::test_stale_after_external_modification ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_save_and_load_roundtrip ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_plan_mode_allows_read ... ok
[INFO] [stdout] test permission::tests::test_permission_mode_serde ... ok
[INFO] [stdout] test permission::tests::test_plan_mode_allows_readonly ... ok
[INFO] [stdout] test permission::tests::test_plan_mode_denies_writes ... ok
[INFO] [stdout] test permission::tests::test_permission_manager_save_load_with_ask_rules ... ok
[INFO] [stdout] test permission::tests::test_wildcard_rule ... ok
[INFO] [stdout] test permission::tests::test_resolve_project_relative ... ok
[INFO] [stdout] test sandbox::tests::allowed_paths_resolve_relative_and_home ... ok
[INFO] [stdout] test sandbox::tests::sandbox_defaults_are_disabled ... ok
[INFO] [stdout] test session::tests::test_assistant_message_event_roundtrip ... ok
[INFO] [stdout] test permission::tests::test_resolve_home_relative ... ok
[INFO] [stdout] test permission::tests::test_resolve_cwd_relative ... ok
[INFO] [stdout] test permission::tests::test_plan_mode_overrides_ask_to_denied_for_writes ... ok
[INFO] [stdout] test session::tests::test_compact_boundary_event_roundtrip ... ok
[INFO] [stdout] test session::tests::test_session_end_event_roundtrip ... ok
[INFO] [stdout] test permission::tests::test_resolve_absolute_path ... ok
[INFO] [stdout] test session::tests::test_session_summary_interrupted_default_false ... ok
[INFO] [stdout] test session::tests::test_header_event_roundtrip ... ok
[INFO] [stdout] test session::tests::test_session_summary_not_interrupted_omits_field ... ok
[INFO] [stdout] test session::tests::test_permission_change_event_roundtrip ... ok
[INFO] [stdout] test session::tests::test_unknown_event_type_is_tolerated_via_value ... ok
[INFO] [stdout] test session::tests::test_permission_change_event_omits_empty_rules ... ok
[INFO] [stdout] test session::tests::test_session_summary_interrupted_true_roundtrip ... ok
[INFO] [stdout] test session::tests::test_user_message_event_roundtrip ... ok
[INFO] [stdout] test session::tests::test_usage_update_event_roundtrip ... ok
[INFO] [stdout] test settings::tests::test_load_file_without_env_field ... ok
[INFO] [stdout] test settings::tests::test_load_missing_file_returns_empty ... ok
[INFO] [stdout] test settings::tests::test_load_project_local_only ... ok
[INFO] [stdout] test settings::tests::test_load_project_local_overrides_shared ... ok
[INFO] [stdout] test settings::tests::test_discover_project_settings_uses_git_boundary ... ok
[INFO] [stdout] test settings::tests::test_discover_project_local_settings ... ok
[INFO] [stdout] test settings::tests::test_apply_env_sets_missing_keys ... ok
[INFO] [stdout] test settings::tests::test_apply_env_does_not_overwrite_existing ... ok
[INFO] [stdout] test settings::tests::test_load_settings_with_mcp_servers ... ok
[INFO] [stdout] test settings::tests::test_load_settings_with_unsupported_mcp_transport ... ok
[INFO] [stdout] test settings::tests::test_load_project_no_settings_returns_none ... ok
[INFO] [stdout] test settings::tests::test_load_valid_file ... ok
[INFO] [stdout] test settings::tests::test_load_settings_with_hooks ... ok
[INFO] [stdout] test settings::tests::test_load_project_shared_only ... ok
[INFO] [stdout] test settings::tests::test_load_settings_without_hooks ... ok
[INFO] [stdout] test settings::tests::test_merge_hooks_same_event ... ok
[INFO] [stdout] test settings::tests::test_merge_mcp_servers_different_names ... ok
[INFO] [stdout] test settings::tests::test_merge_mcp_servers_one_layer_empty ... ok
[INFO] [stdout] test settings::tests::test_load_settings_without_mcp_servers ... ok
[INFO] [stdout] test settings::tests::test_load_settings_with_remote_mcp_servers ... ok
[INFO] [stdout] test settings::tests::test_merge_hooks_different_events ... ok
[INFO] [stdout] test settings::tests::test_merge_preserves_user_deny_when_project_only_sets_allow ... ok
[INFO] [stdout] test settings::tests::test_manual_verification_settings_local_model_override ... ok
[INFO] [stdout] test skills::tests::missing_directory_yields_empty_registry ... ok
[INFO] [stdout] test settings::tests::test_merge_prefers_high_priority_fields ... ok
[INFO] [stdout] test skills::tests::list_is_sorted_by_name ... ok
[INFO] [stdout] test skills::tests::parse_error_does_not_abort_scan ... ok
[INFO] [stdout] test skills::tests::loads_flat_file_and_directory_skill ... ok
[INFO] [stdout] test skills::tests::parses_allowed_tools_as_list_and_scalar_and_csv ... ok
[INFO] [stdout] test settings::tests::test_merge_mcp_servers_project_overrides_user ... ok
[INFO] [stdout] test settings::tests::test_parse_permissions ... ok
[INFO] [stdout] test skills::tests::parses_trigger_field ... ok
[INFO] [stdout] test skills::tests::parses_minimal_skill ... ok
[INFO] [stdout] test skills::tests::project_overrides_user_on_name_collision ... ok
[INFO] [stdout] test skills::tests::rejects_missing_required_fields ... ok
[INFO] [stdout] test skills::tests::rejects_missing_frontmatter ... ok
[INFO] [stdout] test state::tests::test_add_message ... ok
[INFO] [stdout] test skills::tests::rejects_unterminated_frontmatter ... ok
[INFO] [stdout] test state::tests::test_backward_compat_todo_aliases ... ok
[INFO] [stdout] test state::tests::test_app_state_new ... ok
[INFO] [stdout] test state::tests::test_add_assistant_message_updates_most_recent_usage ... ok
[INFO] [stdout] test state::tests::test_enter_plan_mode_is_idempotent_when_already_plan ... ok
[INFO] [stdout] test state::tests::test_plan_mode_transition_saves_and_restores_previous_mode ... ok
[INFO] [stdout] test state::tests::test_check_permission_uses_state_rules ... ok
[INFO] [stdout] test state::tests::test_from_config_copies_permission_and_model_settings ... ok
[INFO] [stdout] test state::tests::test_task_cancelled_status_serde ... ok
[INFO] [stdout] test state::tests::test_record_mcp_tool_usage_is_bounded_and_deduplicated ... ok
[INFO] [stdout] test state::tests::test_record_mcp_tool_usage_handles_server_name_with_double_underscores ... ok
[INFO] [stdout] test state::tests::test_task_serde ... ok
[INFO] [stdout] test state::tests::test_session_settings_serde ... ok
[INFO] [stdout] test state::tests::test_update_tasks_all_cancelled_clears ... ok
[INFO] [stdout] test state::tests::test_record_permission_decisions_keeps_most_recent ... ok
[INFO] [stdout] test state::tests::test_update_tasks_all_completed_clears ... ok
[INFO] [stdout] test state::tests::test_update_tasks_mixed_keeps ... ok
[INFO] [stdout] test task_list::tests::crud_roundtrip_on_data_structure ... ok
[INFO] [stdout] test task_list::tests::default_root_points_under_config_dir_when_home_set ... ok
[INFO] [stdout] test task_list::tests::deserialize_partial_entry_uses_defaults ... ok
[INFO] [stdout] test task_list::tests::entry_serializes_and_round_trips ... ok
[INFO] [stdout] test task_list::tests::new_entry_defaults_to_pending_with_empty_optionals ... ok
[INFO] [stdout] test task_list::tests::next_id_is_sequential_and_ignores_non_numeric ... ok
[INFO] [stdout] test task_list::tests::sanitize_scope_rejects_traversal_and_special_chars ... ok
[INFO] [stdout] test task_list::tests::store_isolates_scopes ... ok
[INFO] [stdout] test task_list::tests::list_sorted_is_numeric_then_stable ... ok
[INFO] [stdout] test task_list::tests::update_clears_owner_with_some_none ... ok
[INFO] [stdout] test task_list::tests::upsert_replaces_existing_id_and_returns_old ... ok
[INFO] [stdout] test task_list::tests::store_persists_to_named_scope_file ... ok
[INFO] [stdout] test task_list::tests::store_save_then_load_round_trips ... ok
[INFO] [stdout] test team::tests::append_message_assigns_sequential_seq_and_persists ... ok
[INFO] [stdout] test task_list::tests::store_load_missing_scope_returns_empty_list ... ok
[INFO] [stdout] test team::tests::sanitize_name_rejects_traversal_and_special_chars ... ok
[INFO] [stdout] test team::tests::default_root_points_under_config_dir_when_home_set ... ok
[INFO] [stdout] test team::tests::save_creates_team_directory_and_config_file ... ok
[INFO] [stdout] test team::tests::mailboxes_isolate_by_member ... ok
[INFO] [stdout] test team::tests::delete_clears_member_mailboxes_too ... ok
[INFO] [stdout] test tool_types::tests::test_tool_result_error ... ok
[INFO] [stdout] test tool_types::tests::test_tool_result_serde ... ok
[INFO] [stdout] test tool_types::tests::test_tool_result_success ... ok
[INFO] [stdout] test team::tests::save_then_load_round_trips ... ok
[INFO] [stdout] test tool_types::tests::test_tool_result_to_content_block ... ok
[INFO] [stdout] test team::tests::teams_isolate_by_name ... ok
[INFO] [stdout] test trust::tests::test_parent_inheritance ... ok
[INFO] [stdout] test trust::tests::test_home_directory_in_memory_only ... ok
[INFO] [stdout] test team::tests::delete_removes_team_directory_and_reports_existence ... ok
[INFO] [stdout] test team::tests::new_team_has_empty_optionals ... ok
[INFO] [stdout] test tool_types::tests::test_tool_result_builder ... ok
[INFO] [stdout] test trust::tests::test_untrusted_by_default ... ok
[INFO] [stdout] test trust::tests::test_explicit_trust ... ok
[INFO] [stdout] test trust::tests::test_sibling_not_trusted ... ok
[INFO] [stdout] test team::tests::load_missing_team_is_none ... ok
[INFO] [stdout] test trust::tests::test_trust_json_roundtrip ... ok
[INFO] [stdout] test git::tests::has_uncommitted_changes_detects_dirty_worktree ... ok
[INFO] [stdout] test permission::tests::test_permission_rule_serde ... ok
[INFO] [stdout] test git::tests::enter_existing_worktree_resolves_canonical_path_and_branch ... ok
[INFO] [stdout] test git::tests::create_worktree_rejects_duplicate_path ... ok
[INFO] [stdout] test git::tests::common_repo_root_from_worktree_is_main_root ... ok
[INFO] [stdout] test git::tests::remove_worktree_and_branch_when_clean ... ok
[INFO] [stdout] test git::tests::create_worktree_makes_dir_and_branch ... ok
[INFO] [stdout] test git::tests::remove_worktree_refuses_dirty_without_force ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 363 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_claude_mcp-81842d73a38e2b06)
[INFO] [stdout] 
[INFO] [stdout] running 47 tests
[INFO] [stdout] test manager::tests::test_disconnected_tool_call_error_is_server_not_connected ... ok
[INFO] [stdout] test jsonrpc::tests::test_check_response_success ... ok
[INFO] [stdout] test jsonrpc::tests::test_parse_response_notification_is_none ... ok
[INFO] [stdout] test jsonrpc::tests::test_parse_response_success ... ok
[INFO] [stdout] test jsonrpc::tests::test_parse_response_invalid_json ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_serialization ... ok
[INFO] [stdout] test jsonrpc::tests::test_parse_response_error ... ok
[INFO] [stdout] test manager::tests::test_qualified_tool_name_uses_mcp_prefix ... ok
[INFO] [stdout] test manager::tests::test_reconnect_delay_uses_exponential_backoff ... ok
[INFO] [stdout] test manager::tests::test_manager_can_report_remote_disconnected_status ... ok
[INFO] [stdout] test manager::tests::test_server_names_empty_when_no_connections ... ok
[INFO] [stdout] test manager::tests::test_read_server_resources_not_connected ... ok
[INFO] [stdout] test manager::tests::test_start_with_empty_config ... ok
[INFO] [stdout] test manager::tests::test_list_server_resources_not_connected ... ok
[INFO] [stdout] test manager::tests::test_call_tool_not_found ... ok
[INFO] [stdout] test jsonrpc::tests::test_write_and_read_message ... ok
[INFO] [stdout] test jsonrpc::tests::test_multiple_messages_in_stream ... ok
[INFO] [stdout] test jsonrpc::tests::test_read_message_eof ... ok
[INFO] [stdout] test jsonrpc::tests::test_read_message_invalid_content_length ... ok
[INFO] [stdout] test jsonrpc::tests::test_read_message_missing_content_length ... ok
[INFO] [stdout] test jsonrpc::tests::test_write_and_read_json_rpc ... ok
[INFO] [stdout] test manager::tests::test_failure_isolation_bad_server_does_not_block ... ok
[INFO] [stdout] test protocol::tests::test_read_resource_result_empty ... ok
[INFO] [stdout] test manager::tests::test_start_with_unsupported_transport ... ok
[INFO] [stdout] test protocol::tests::test_tools_list_result_deserialize ... ok
[INFO] [stdout] test protocol::tests::test_resources_list_result_empty ... ok
[INFO] [stdout] test protocol::tests::test_resources_list_result_deserialize ... ok
[INFO] [stdout] test protocol::tests::test_tools_call_result_success ... ok
[INFO] [stdout] test protocol::tests::test_tools_list_result_empty ... ok
[INFO] [stdout] test protocol::tests::test_tools_call_result_error ... ok
[INFO] [stdout] test transport::tests::test_http_transport_requires_url ... ok
[INFO] [stdout] test protocol::tests::test_unsupported_resources_surfaces_method_not_found ... ok
[INFO] [stdout] test protocol::tests::test_client_lists_and_reads_resources_via_transport ... ok
[INFO] [stdout] test transport::tests::test_parse_http_response_json_rpc_result ... ok
[INFO] [stdout] test protocol::tests::test_initialize_result_deserialize ... ok
[INFO] [stdout] test manager::tests::test_empty_manager ... ok
[INFO] [stdout] test transport::tests::test_stdio_transport_implements_transport_trait ... ok
[INFO] [stdout] test protocol::tests::test_tool_definition_deserialize ... ok
[INFO] [stdout] test protocol::tests::test_read_resource_result_deserialize_text_and_blob ... ok
[INFO] [stdout] test jsonrpc::tests::test_check_response_error ... ok
[INFO] [stdout] test transport::tests::test_sse_transport_requires_url ... ok
[INFO] [stdout] test transport::tests::test_start_nonexistent_command ... ok
[INFO] [stdout] test manager::tests::test_start_with_nonexistent_command ... ok
[INFO] [stdout] test protocol::tests::test_client_uses_transport_trait_for_tools ... ok
[INFO] [stdout] test transport::tests::test_parse_sse_response_data_event ... ok
[INFO] [stdout] test transport::tests::test_start_and_kill_process ... ok
[INFO] [stdout] test transport::tests::test_timeout_on_no_response ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_claude_sdk-80f662768de7a279)
[INFO] [stdout] 
[INFO] [stdout] running 132 tests
[INFO] [stdout] test agent_loop::tests::test_build_request_uses_sonnet_for_opusplan_when_last_usage_exceeds_200k ... ok
[INFO] [stdout] test agent_loop::tests::test_build_request_uses_opus_for_opusplan_in_plan_mode ... ok
[INFO] [stdout] test agent_loop::tests::test_prompt_too_long_stage3_fails_after_exhaustion ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_consumes_streamed_response ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_ask_user_question_uses_ui_response ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_default_mode_needs_confirmation_auto_denies ... ok
[INFO] [stdout] test agent_loop::tests::test_prompt_too_long_triggers_reactive_compaction ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_denies_monitor_command_before_spawn ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_denies_mutating_tool_after_entering_plan_mode ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_denied_tool_returns_error_tool_result ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_allowed_tool_executes_normally ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_passes_real_session_id_to_hooks ... ok
[INFO] [stdout] test agent_loop::tests::test_session_persistence_receives_max_tokens_continuation_message ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_plan_mode_denies_write_tools ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_registers_concurrency_safe_tool ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_forwards_system_prompt ... ok
[INFO] [stdout] test agent_loop::tests::test_session_persistence_receives_user_and_assistant_messages ... ok
[INFO] [stdout] test compaction::tests::test_compact_api_failure ... ok
[INFO] [stdout] test agent_loop::tests::test_session_persistence_receives_tool_result_message ... ok
[INFO] [stdout] test compaction::tests::test_compact_if_needed_above_threshold ... ok
[INFO] [stdout] test compaction::tests::test_compact_if_needed_below_threshold ... ok
[INFO] [stdout] test compaction::tests::test_compact_bounds_recent_permission_decisions ... ok
[INFO] [stdout] test agent_loop::tests::test_invoked_deferred_tool_sends_full_schema_on_next_request ... ok
[INFO] [stdout] test compaction::tests::test_compact_includes_mcp_usage_when_available ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_executes_tool_and_returns_final_message ... ok
[INFO] [stdout] test compaction::tests::test_compact_success ... ok
[INFO] [stdout] test compaction::tests::test_compact_too_few_messages ... ok
[INFO] [stdout] test compaction::tests::test_compact_omits_mcp_usage_when_unavailable ... ok
[INFO] [stdout] test compaction::tests::test_compact_omits_project_guidance_when_unavailable ... ok
[INFO] [stdout] test compaction::tests::test_micro_compact_clears_old_tool_results ... ok
[INFO] [stdout] test compaction::tests::test_micro_compact_empty_messages ... ok
[INFO] [stdout] test compaction::tests::test_micro_compact_leaves_text_and_thinking_untouched ... ok
[INFO] [stdout] test compaction::tests::test_micro_compact_preserves_recent_tool_results ... ok
[INFO] [stdout] test compaction::tests::test_micro_compact_idempotent ... ok
[INFO] [stdout] test hooks::tests::test_empty_matcher_matches_all ... ok
[INFO] [stdout] test compaction::tests::test_compact_includes_project_guidance_when_available ... ok
[INFO] [stdout] test hooks::tests::test_matcher_does_not_match_different_tool ... ok
[INFO] [stdout] test hooks::tests::test_matcher_ignored_for_non_tool_events ... ok
[INFO] [stdout] test hooks::tests::test_matcher_matches_tool_name ... ok
[INFO] [stdout] test hooks::tests::test_no_event_configured ... ok
[INFO] [stdout] test hooks::tests::test_no_matcher_matches_all ... ok
[INFO] [stdout] test compaction::tests::test_micro_compact_skips_error_tool_results ... ok
[INFO] [stdout] test hooks::tests::test_parse_approve_json ... ok
[INFO] [stdout] test hooks::tests::test_parse_block_without_reason ... ok
[INFO] [stdout] test hooks::tests::test_parse_empty_json ... ok
[INFO] [stdout] test hooks::tests::test_parse_block_json ... ok
[INFO] [stdout] test hooks::tests::test_parse_empty_stdout ... ok
[INFO] [stdout] test hooks::tests::test_parse_exit_code_1_continues ... ok
[INFO] [stdout] test hooks::tests::test_parse_exit_code_2_blocks ... ok
[INFO] [stdout] test hooks::tests::test_parse_exit_code_2_with_json_reason ... ok
[INFO] [stdout] test hooks::tests::test_parse_invalid_json ... ok
[INFO] [stdout] test hooks::tests::test_parse_exit_code_2_with_plain_text ... ok
[INFO] [stdout] test hooks::tests::test_hook_receives_env_vars ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_supports_multiple_tool_rounds ... ok
[INFO] [stdout] test hooks::tests::test_once_hook_runs_only_once ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_exit_code_2 ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_block ... ok
[INFO] [stdout] test hooks::tests::test_parse_updated_input_json ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_approve ... ok
[INFO] [stdout] test agent_loop::tests::test_streaming_tool_starts_before_message_stop ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_short_circuits_on_block ... ok
[INFO] [stdout] test hooks::tests::test_run_post_tool_use ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_no_matching_hooks ... ok
[INFO] [stdout] test hooks::tests::test_unsupported_type_skipped ... ok
[INFO] [stdout] test output::stream_json_tests::clones_share_one_writer ... ok
[INFO] [stdout] test output::stream_json_tests::each_line_is_independently_parseable ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_updates_input_sequentially ... ok
[INFO] [stdout] test hooks::tests::test_run_user_prompt_submit ... ok
[INFO] [stdout] test output::stream_json_tests::emit_error_then_done_terminates_the_stream ... ok
[INFO] [stdout] test output::stream_json_tests::multiple_tools_keep_call_result_order ... ok
[INFO] [stdout] test output::stream_json_tests::sink_error_event_uses_same_shape_as_emit_error ... ok
[INFO] [stdout] test output::stream_json_tests::emits_valid_ndjson_in_stable_order ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_hooks_use_updated_session_cwd_between_bash_calls ... ok
[INFO] [stdout] test hooks::tests::test_session_lifecycle_hooks_run ... ok
[INFO] [stdout] test plugin::tests::install_existing_target_returns_conflict ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_executes_concurrency_safe_tools_in_parallel ... ok
[INFO] [stdout] test plugin::tests::install_from_path_copies_and_reloads_plugin ... ok
[INFO] [stdout] test plugin::tests::install_invalid_version_returns_error ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_plan_mode_allows_read_tools ... ok
[INFO] [stdout] test plugin::tests::install_missing_manifest_returns_error ... ok
[INFO] [stdout] test plugin::tests::remove_nonexistent_plugin_returns_error ... ok
[INFO] [stdout] test plugin::tests::remove_installed_plugin_deletes_user_directory ... ok
[INFO] [stdout] test plugin::tests::remove_does_not_delete_project_plugin ... ok
[INFO] [stdout] test hooks::tests::test_parse_non_object_updated_input_ignores_mutation ... ok
[INFO] [stdout] test plugin::tests::test_parse_minimal_manifest ... ok
[INFO] [stdout] test plugin::tests::test_parse_full_manifest ... ok
[INFO] [stdout] test plugin::tests::test_reject_missing_version ... ok
[INFO] [stdout] test plugin::tests::test_discover_with_invalid_manifest ... ok
[INFO] [stdout] test session::tests::builder_accepts_full_configuration ... ok
[INFO] [stdout] test session::tests::builder_constructs_minimum_session ... ok
[INFO] [stdout] test session::tests::builder_rejects_duplicate_custom_tool ... ok
[INFO] [stdout] test session::tests::channel_output_sink_converts_events ... ok
[INFO] [stdout] test skill::tests::discover_without_any_dirs_is_empty ... ok
[INFO] [stdout] test plugin::tests::test_reject_missing_name ... ok
[INFO] [stdout] test plugin::tests::test_discover_empty_dir ... ok
[INFO] [stdout] test skill::tests::discover_combines_user_and_project_skills ... ok
[INFO] [stdout] test skill::tests::discover_finds_user_skill ... ok
[INFO] [stdout] test plugin::tests::test_project_overrides_user ... ok
[INFO] [stdout] test skill::tests::project_overrides_user_skill_with_same_name ... ok
[INFO] [stdout] test system_prompt::tests::test_build_environment_section ... ok
[INFO] [stdout] test system_prompt::tests::test_build_system_prompt_contains_core ... ok
[INFO] [stdout] test system_prompt::tests::test_build_system_prompt_contains_environment ... ok
[INFO] [stdout] test system_prompt::tests::test_build_system_prompt_contains_tools ... ok
[INFO] [stdout] test system_prompt::tests::test_build_system_prompt_with_custom_append ... ok
[INFO] [stdout] test system_prompt::tests::test_build_tool_section_empty_registry ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_local_file_annotation ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_prompt_ordering ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_rule_file_after_local ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_rule_file_annotation ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_section_empty ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_section_multiple_files ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_section_single_file ... ok
[INFO] [stdout] test system_prompt::tests::test_claude_md_section_truncation ... ok
[INFO] [stdout] test system_prompt::tests::test_git_context_section_is_included ... ok
[INFO] [stdout] test system_prompt::tests::test_memory_section_is_included ... ok
[INFO] [stdout] test system_prompt::tests::test_relevant_memory_section_is_included ... ok
[INFO] [stdout] test system_prompt::tests::test_truncation_with_mixed_types ... ok
[INFO] [stdout] test streaming_tool_executor::tests::bash_failure_cancels_later_bash_but_not_file_read ... ok
[INFO] [stdout] test plugin::tests::install_from_missing_path_returns_error ... ok
[INFO] [stdout] test agent_loop::tests::test_query_loop_executes_non_concurrency_safe_tools_serially ... ok
[INFO] [stdout] test agent_loop::tests::test_build_request_sends_minimal_deferred_tools_when_threshold_exceeded ... ok
[INFO] [stdout] test streaming_tool_executor::tests::discard_waits_for_blocking_tools ... ok
[INFO] [stdout] test hooks::tests::test_run_stop ... ok
[INFO] [stdout] test streaming_tool_executor::tests::serializes_non_concurrency_safe_tools ... ok
[INFO] [stdout] test streaming_tool_executor::tests::returns_results_in_tool_use_order ... ok
[INFO] [stdout] test streaming_tool_executor::tests::bash_failure_cancels_bash_already_waiting_on_serial_lock ... ok
[INFO] [stdout] test streaming_tool_executor::tests::starts_concurrency_safe_tool_before_finish ... ok
[INFO] [stdout] test agent_loop::tests::test_overloaded_counter_resets_on_success ... ok
[INFO] [stdout] test hooks::tests::test_run_pre_tool_use_timeout ... ok
[INFO] [stdout] test agent_loop::tests::test_overloaded_backoff_and_retry ... ok
[INFO] [stdout] test agent_loop::tests::test_overloaded_fallback_model_switch ... ok
[INFO] [stdout] test agent_loop::tests::test_overloaded_no_fallback_continues_retrying ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_claude_tools-e8575a58dca1c4fe)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 206 tests
[INFO] [stdout] test agent_tool::tests::test_missing_agent_context_returns_tool_error_result ... ok
[INFO] [stdout] test agent_tool::tests::test_depth_limit_returns_error_result ... ok
[INFO] [stdout] test agent_tool::tests::test_missing_custom_agent_returns_error ... ok
[INFO] [stdout] test agent_tool::tests::test_custom_agent_applies_options_and_tool_intersection ... ok
[INFO] [stdout] test agent_tool::tests::test_successful_agent_execution ... ok
[INFO] [stdout] test ask_user_question::tests::callback_can_return_custom_answer ... ok
[INFO] [stdout] test ask_user_question::tests::callback_can_select_option ... ok
[INFO] [stdout] test ask_user_question::tests::fallback_selects_first_option_without_callback ... ok
[INFO] [stdout] test agent_tool::tests::test_custom_agent_tool_allowlist_cannot_be_broadened ... ok
[INFO] [stdout] test ask_user_question::tests::missing_callback_without_options_returns_error_result ... ok
[INFO] [stdout] test ask_user_question::tests::invalid_input_rejects_empty_question ... ok
[INFO] [stdout] test auto_memory::tests::parses_valid_auto_memory_candidate ... ok
[INFO] [stdout] test auto_memory::tests::rejects_unsafe_auto_memory_path ... ok
[INFO] [stdout] test ask_user_question::tests::cancellation_returns_error_tool_result ... ok
[INFO] [stdout] test bash::tests::test_cwd_marker_is_removed_from_visible_stderr ... ok
[INFO] [stdout] test bash::tests::test_bash_detects_dangerous_command ... ok
[INFO] [stdout] test bash::tests::test_bash_sandbox_enabled_fails_closed_when_runtime_missing ... ok
[INFO] [stdout] test bash::tests::test_invalid_final_directory_does_not_update_session_cwd ... ok
[INFO] [stdout] test bash::tests::test_bash_sandbox_disabled_preserves_execution ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_rejects_missing_path_alias ... ok
[INFO] [stdout] test agent_tool::tests::test_nested_agent_uses_incremented_depth ... ok
[INFO] [stdout] test bash::tests::test_bash_timeout ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_allows_non_stale_file ... ok
[INFO] [stdout] test bash::tests::test_bash_starts_from_session_cwd_by_default ... ok
[INFO] [stdout] test bash::tests::test_bash_sandbox_final_cwd_when_runtime_available ... ok
[INFO] [stdout] test bash::tests::test_bash_timeout_does_not_update_session_cwd ... ok
[INFO] [stdout] test bash::tests::test_bash_executes_simple_command ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_creates_new_file_when_old_string_empty ... ok
[INFO] [stdout] test bash::tests::test_bash_nonzero_exit_still_updates_session_cwd ... ok
[INFO] [stdout] test bash::tests::test_bash_respects_workdir_and_updates_session_cwd ... ok
[INFO] [stdout] test file_read::tests::test_file_read_rejects_missing_path_alias ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_accepts_file_path_alias ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_rejects_non_unique_match_without_replace_all ... ok
[INFO] [stdout] test file_read::tests::test_file_read_lists_directory ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_single_replace ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_replace_all ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_rejects_partial_view ... ok
[INFO] [stdout] test file_read::tests::test_file_read_reads_with_line_numbers ... ok
[INFO] [stdout] test file_write::tests::test_file_write_accepts_file_path_alias ... ok
[INFO] [stdout] test file_write::tests::test_file_write_allows_unknown_file ... ok
[INFO] [stdout] test glob::tests::test_glob_missing_pattern ... ok
[INFO] [stdout] test file_write::tests::test_file_write_rejects_missing_path_alias ... ok
[INFO] [stdout] test bash::tests::test_bash_cd_affects_later_commands ... ok
[INFO] [stdout] test file_read::tests::test_file_read_accepts_file_path_alias ... ok
[INFO] [stdout] test file_write::tests::test_file_write_creates_parent_dirs ... ok
[INFO] [stdout] test glob::tests::test_glob_no_matches ... ok
[INFO] [stdout] test grep::tests::test_grep_basic_search ... ok
[INFO] [stdout] test glob::tests::test_glob_basic_pattern ... ok
[INFO] [stdout] test grep::tests::test_grep_missing_pattern ... ok
[INFO] [stdout] test grep::tests::test_grep_content_mode ... ok
[INFO] [stdout] test grep::tests::test_grep_files_with_matches_mode ... ok
[INFO] [stdout] test glob::tests::test_glob_recursive_pattern ... ok
[INFO] [stdout] test grep::tests::test_grep_context_lines ... ok
[INFO] [stdout] test grep::tests::test_grep_head_limit ... ok
[INFO] [stdout] test grep::tests::test_matches_file_type ... ok
[INFO] [stdout] test grep::tests::test_type_to_extensions ... ok
[INFO] [stdout] test grep::tests::test_grep_case_insensitive ... ok
[INFO] [stdout] test grep::tests::test_grep_file_type_filter ... ok
[INFO] [stdout] test lsp::language::tests::detects_languages ... ok
[INFO] [stdout] test lsp::manager::tests::unsupported_language_errors ... ok
[INFO] [stdout] test lsp::protocol::tests::builds_requests ... ok
[INFO] [stdout] test grep::tests::test_grep_no_matches ... ok
[INFO] [stdout] test lsp_tool::tests::schema_lists_operations ... ok
[INFO] [stdout] test grep::tests::test_grep_glob_filter ... ok
[INFO] [stdout] test lsp::transport::tests::start_nonexistent_server_fails ... ok
[INFO] [stdout] test lsp::language::tests::discovers_server_commands ... ok
[INFO] [stdout] test mcp_proxy::tests::test_proxy_tool_naming_convention ... ok
[INFO] [stdout] test mcp_proxy::tests::test_proxy_tool_safety_defaults ... ok
[INFO] [stdout] test mcp_resource_tools::tests::error_message_unsupported_resources ... ok
[INFO] [stdout] test mcp_resource_tools::tests::error_message_not_connected ... ok
[INFO] [stdout] test mcp_resource_tools::tests::error_message_other_is_generic ... ok
[INFO] [stdout] test mcp_resource_tools::tests::list_execute_unknown_server_reports_not_connected ... ok
[INFO] [stdout] test mcp_resource_tools::tests::list_execute_rejects_missing_server ... ok
[INFO] [stdout] test mcp_resource_tools::tests::list_tool_metadata ... ok
[INFO] [stdout] test mcp_resource_tools::tests::read_execute_rejects_empty_uri ... ok
[INFO] [stdout] test mcp_resource_tools::tests::render_contents_blob_placeholder ... ok
[INFO] [stdout] test mcp_resource_tools::tests::read_tool_metadata ... ok
[INFO] [stdout] test mcp_resource_tools::tests::register_mcp_tools_also_registers_resource_tools ... ok
[INFO] [stdout] test mcp_resource_tools::tests::read_execute_unknown_server_reports_not_connected ... ok
[INFO] [stdout] test mcp_proxy::tests::test_proxy_tool_execute_tool_not_found ... ok
[INFO] [stdout] test mcp_proxy::tests::test_register_mcp_tools_empty_manager ... ok
[INFO] [stdout] test mcp_resource_tools::tests::render_contents_empty_is_clear ... ok
[INFO] [stdout] test mcp_resource_tools::tests::render_contents_text_passthrough ... ok
[INFO] [stdout] test mcp_resource_tools::tests::render_list_empty_is_clear_and_non_error ... ok
[INFO] [stdout] test mcp_resource_tools::tests::render_list_populated_shows_entries ... ok
[INFO] [stdout] test grep::tests::test_grep_regex_pattern ... ok
[INFO] [stdout] test notebook_edit_tool::tests::replaces_existing_cell ... ok
[INFO] [stdout] test plan_mode::tests::test_enter_plan_mode_saves_previous_mode ... ok
[INFO] [stdout] test plan_mode::tests::test_enter_plan_mode_when_already_plan_is_idempotent ... ok
[INFO] [stdout] test monitor::tests::test_monitor_returns_matched_output_and_omitted_count ... ok
[INFO] [stdout] test plan_mode::tests::test_exit_plan_mode_rejects_empty_summary ... ok
[INFO] [stdout] test plan_mode::tests::test_exit_plan_mode_restores_saved_mode_with_summary ... ok
[INFO] [stdout] test plan_mode::tests::test_exit_plan_mode_without_saved_mode_reports_no_active_transition ... ok
[INFO] [stdout] test registry::tests::test_empty_registry_partitions ... ok
[INFO] [stdout] test registry::tests::test_estimate_deferred_schema_tokens ... ok
[INFO] [stdout] test registry::tests::test_apply_tool_filters_matches_mcp_tool_names_exactly ... ok
[INFO] [stdout] test notebook_edit_tool::tests::rejects_invalid_index ... ok
[INFO] [stdout] test registry::tests::test_list_sorted ... ok
[INFO] [stdout] test registry::tests::test_partition_deferred_and_non_deferred ... ok
[INFO] [stdout] test registry::tests::test_register_and_get ... ok
[INFO] [stdout] test registry::tests::test_register_all_core_tools ... ok
[INFO] [stdout] test registry::tests::test_register_preserves_explicit_interrupt_behavior ... ok
[INFO] [stdout] test registry::tests::test_schema_contract_summary_for_builtin_tools ... ok
[INFO] [stdout] test registry::tests::test_schema_contract_file_tools_expose_path_aliases ... ok
[INFO] [stdout] test registry::tests::test_execute_registered_tool ... ok
[INFO] [stdout] test registry::tests::test_search_tools_camelcase_tokenization ... ok
[INFO] [stdout] test registry::tests::test_schema_contract_tool_search_excludes_non_deferred_tools ... ok
[INFO] [stdout] test registry::tests::test_schema_contract_tool_search_exposes_deferred_schema ... ok
[INFO] [stdout] test registry::tests::test_search_tools_exact_selection ... ok
[INFO] [stdout] test registry::tests::test_search_tools_keyword_match ... ok
[INFO] [stdout] test registry::tests::test_search_tools_mcp_name_splitting ... ok
[INFO] [stdout] test registry::tests::test_tokenize_tool_name ... ok
[INFO] [stdout] test registry::tests::test_search_tools_scoring_name_over_description ... ok
[INFO] [stdout] test skill_tool::tests::execute_rejects_invalid_input ... ok
[INFO] [stdout] test sandbox::tests::executable_available_reports_missing_binary ... ok
[INFO] [stdout] test skill_tool::tests::missing_args_placeholder_renders_empty ... ok
[INFO] [stdout] test skill_tool::tests::execute_uses_owned_registry ... ok
[INFO] [stdout] test skill_tool::tests::missing_skill_returns_clear_error ... ok
[INFO] [stdout] test skill_tool::tests::finds_skill_and_renders_body ... ok
[INFO] [stdout] test task_tool::tests::test_create_task ... ok
[INFO] [stdout] test skill_tool::tests::substitutes_args_placeholder ... ok
[INFO] [stdout] test skill_tool::tests::tool_metadata_and_flags ... ok
[INFO] [stdout] test task_tool::tests::test_invalid_command ... ok
[INFO] [stdout] test task_tool::tests::test_list_tasks_empty ... ok
[INFO] [stdout] test task_tool::tests::test_get_task ... ok
[INFO] [stdout] test task_tool::tests::test_missing_app_state ... ok
[INFO] [stdout] test task_tool::tests::test_update_task ... ok
[INFO] [stdout] test task_tools::tests::execute_errors_when_app_state_missing ... ok
[INFO] [stdout] test task_tools::tests::task_get_errors_on_missing_id ... ok
[INFO] [stdout] test task_tools::tests::task_create_records_blocked_by ... ok
[INFO] [stdout] test task_tools::tests::task_create_assigns_sequential_id_and_persists ... ok
[INFO] [stdout] test task_tools::tests::task_get_returns_created_task ... ok
[INFO] [stdout] test task_tools::tests::task_list_handles_empty_scope ... ok
[INFO] [stdout] test task_tools::tests::task_list_shows_blocked_by_semantics ... ok
[INFO] [stdout] test task_tools::tests::task_update_errors_on_missing_id ... ok
[INFO] [stdout] test task_tools::tests::task_update_changes_status_subject_and_dependencies ... ok
[INFO] [stdout] test task_tools::tests::tools_expose_expected_names_and_read_only_flags ... ok
[INFO] [stdout] test task_tools::tests::task_update_partial_leaves_other_fields_unchanged ... ok
[INFO] [stdout] test team_tools::tests::send_message_errors_for_unknown_member ... ok
[INFO] [stdout] test team_tools::tests::send_message_defaults_sender_to_orchestrator ... ok
[INFO] [stdout] test team_tools::tests::send_message_errors_for_unknown_team ... ok
[INFO] [stdout] test team_tools::tests::team_create_persists_and_lists_members ... ok
[INFO] [stdout] test team_tools::tests::send_message_writes_to_member_mailbox ... ok
[INFO] [stdout] test team_tools::tests::team_create_rejects_duplicate ... ok
[INFO] [stdout] test team_tools::tests::team_delete_errors_on_missing ... ok
[INFO] [stdout] test team_tools::tests::tools_expose_expected_names ... ok
[INFO] [stdout] test team_tools::tests::team_delete_removes_team ... ok
[INFO] [stdout] test todo_write::tests::test_todo_write_clears_when_all_completed ... ok
[INFO] [stdout] test task_tools::tests::task_list_is_sorted_by_numeric_id ... ok
[INFO] [stdout] test tool_search::tests::test_clamp_max_results ... ok
[INFO] [stdout] test todo_write::tests::test_todo_write_updates_app_state ... ok
[INFO] [stdout] test todo_write::tests::test_todo_write_requires_app_state ... ok
[INFO] [stdout] test tool_search::tests::test_execute_clamps_max_results_above_20 ... ok
[INFO] [stdout] test tool_search::tests::test_execute_empty_results ... ok
[INFO] [stdout] test tool_search::tests::test_execute_exact_selection ... ok
[INFO] [stdout] test tool_search::tests::test_execute_keyword_search ... ok
[INFO] [stdout] test tool_search::tests::test_tool_search_tool_is_read_only ... ok
[INFO] [stdout] test tool_search::tests::test_execute_respects_max_results ... ok
[INFO] [stdout] test tool_search::tests::test_tool_search_tool_info ... ok
[INFO] [stdout] test tool_search::tests::test_tool_search_tool_should_not_defer ... ok
[INFO] [stdout] test web::fetch::tests::cache_hit_within_ttl ... ok
[INFO] [stdout] test web::fetch::tests::truncates_text ... ok
[INFO] [stdout] test web::search::tests::dummy_backend_has_name ... ok
[INFO] [stdout] test web_fetch_tool::tests::schema_requires_url ... ok
[INFO] [stdout] test web::search::tests::dummy_backend_returns_result ... ok
[INFO] [stdout] test web_search_tool::tests::brave_response_normalizes_results ... ok
[INFO] [stdout] test web_search_tool::tests::domain_filter_logic ... ok
[INFO] [stdout] test web_search_tool::tests::domain_filters_apply_to_backend_results ... ok
[INFO] [stdout] test web_search_tool::tests::empty_results_returns_no_results_message ... ok
[INFO] [stdout] test web_search_tool::tests::live_brave_search_returns_results_when_configured ... ignored, requires BRAVE_SEARCH_API_KEY and live network
[INFO] [stdout] test web_search_tool::tests::malformed_brave_response_returns_error ... ok
[INFO] [stdout] test web_search_tool::tests::malformed_searxng_response_returns_error ... ok
[INFO] [stdout] test web_search_tool::tests::malformed_tavily_response_returns_error ... ok
[INFO] [stdout] test web_search_tool::tests::missing_credentials_return_clear_error ... ok
[INFO] [stdout] test web_search_tool::tests::missing_searxng_url_returns_clear_error ... ok
[INFO] [stdout] test web_search_tool::tests::missing_tavily_credentials_return_clear_error ... ok
[INFO] [stdout] test web_search_tool::tests::provider_errors_are_tool_errors ... ok
[INFO] [stdout] test file_edit::tests::test_file_edit_rejects_stale_file ... ok
[INFO] [stdout] test web_search_tool::tests::searxng_response_normalizes_results ... ok
[INFO] [stdout] test web_search_tool::tests::success_formats_results ... ok
[INFO] [stdout] test web_search_tool::tests::tavily_response_normalizes_results ... ok
[INFO] [stdout] test glob::tests::test_glob_mtime_sorting ... ok
[INFO] [stdout] test file_write::tests::test_file_write_rejects_stale_file ... ok
[INFO] [stdout] test web::fetch::tests::strips_html ... ok
[INFO] [stdout] test monitor::tests::test_monitor_reads_stderr ... ok
[INFO] [stdout] test monitor::tests::test_monitor_truncates_by_capture_limit ... ok
[INFO] [stdout] test ask_user_question::tests::schema_exposes_question_options_and_custom_flag ... ok
[INFO] [stdout] test file_read::tests::test_file_read_preserves_empty_lines ... ok
[INFO] [stdout] test mcp_proxy::tests::test_proxy_tool_info ... ok
[INFO] [stdout] test monitor::tests::test_monitor_truncates_long_matched_line ... ok
[INFO] [stdout] test worktree_tools::tests::tool_metadata_and_flags ... ok
[INFO] [stdout] test web_search_tool::tests::schema_requires_query ... ok
[INFO] [stdout] test web_search_tool::tests::config_reads_provider_and_credentials_from_env ... ok
[INFO] [stdout] test worktree_tools::tests::exit_without_active_worktree_errors ... ok
[INFO] [stdout] test worktree_tools::tests::enter_refuses_when_already_in_worktree ... ok
[INFO] [stdout] test worktree_tools::tests::enter_requires_name_or_path ... ok
[INFO] [stdout] test worktree_tools::tests::exit_keep_restores_cwd_and_clears_state ... ok
[INFO] [stdout] test worktree_tools::tests::exit_remove_refuses_dirty_worktree ... ok
[INFO] [stdout] test bash::tests::test_bash_truncates_long_output ... ok
[INFO] [stdout] test worktree_tools::tests::exit_remove_discard_deletes_dirty_worktree ... ok
[INFO] [stdout] test worktree_tools::tests::enter_existing_by_path ... ok
[INFO] [stdout] test worktree_tools::tests::enter_creates_worktree_and_switches_cwd ... ok
[INFO] [stdout] test worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch ... FAILED
[INFO] [stdout] test bash::tests::test_bash_abort_kills_child_process ... ok
[INFO] [stdout] test monitor::tests::test_monitor_abort_kills_child_process ... ok
[INFO] [stdout] test monitor::tests::test_monitor_timeout_returns_collected_matches ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch' (3636) panicked at crates/tools/src/worktree_tools.rs:583:9:
[INFO] [stdout] assertion failed: !branches.contains(&branch)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56775630fac8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56775630fac8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56775630fac8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56775630fac8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x567756327aea - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x567756327aea - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x567756314e62 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x567756314e62 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5677562ea946 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5677562ea946 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x567756306579 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5677559765bc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5677559765bc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5677563067f2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5677563067f2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5677562eaa34 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5677562df6f9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5677562ebb5d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x56775632832c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5677563282f2 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x567755735a27 - rust_claude_tools[e5ccb1f7784238ce]::worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/tools/src/worktree_tools.rs:583:9
[INFO] [stdout]   21:     0x567755853112 - <core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>> as core[8fb95b77d25ab6c8]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9
[INFO] [stdout]   22:     0x56775585318d - <core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>> as core[8fb95b77d25ab6c8]::future::future::Future>::poll
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9
[INFO] [stdout]   23:     0x56775589b9ad - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:778:70
[INFO] [stdout]   24:     0x56775589b7eb - tokio[395ae8ea94f29594]::task::coop::with_budget::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   25:     0x56775589b7eb - tokio[395ae8ea94f29594]::task::coop::budget::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   26:     0x56775589b7eb - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:778:25
[INFO] [stdout]   27:     0x567755883fd0 - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Context>::enter::<core[8fb95b77d25ab6c8]::task::poll::Poll<()>, <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:451:19
[INFO] [stdout]   28:     0x56775589a3ed - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:777:44
[INFO] [stdout]   29:     0x567755899694 - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:865:68
[INFO] [stdout]   30:     0x56775580b49b - <tokio[395ae8ea94f29594]::runtime::context::scoped::Scoped<tokio[395ae8ea94f29594]::runtime::scheduler::Context>>::set::<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>)>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   31:     0x567755850a99 - tokio[395ae8ea94f29594]::runtime::context::set_scheduler::<(alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/context.rs:181:38
[INFO] [stdout]   32:     0x56775583a2c2 - <std[10d71ac2c42b111e]::thread::local::LocalKey<tokio[395ae8ea94f29594]::runtime::context::Context>>::try_with::<tokio[395ae8ea94f29594]::runtime::context::set_scheduler<(alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:462:12
[INFO] [stdout]   33:     0x567755839e4e - <std[10d71ac2c42b111e]::thread::local::LocalKey<tokio[395ae8ea94f29594]::runtime::context::Context>>::with::<tokio[395ae8ea94f29594]::runtime::context::set_scheduler<(alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>)>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:426:20
[INFO] [stdout]   34:     0x5677558457cd - tokio[395ae8ea94f29594]::runtime::context::set_scheduler::<(alloc[a7ee25936407c584]::boxed::Box<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::Core>, core[8fb95b77d25ab6c8]::option::Option<()>), <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/context.rs:181:17
[INFO] [stdout]   35:     0x5677558875d0 - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::enter::<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:865:27
[INFO] [stdout]   36:     0x5677558878c6 - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CoreGuard>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:765:24
[INFO] [stdout]   37:     0x5677558991a0 - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:205:33
[INFO] [stdout]   38:     0x567755920e63 - tokio[395ae8ea94f29594]::runtime::context::runtime::enter_runtime::<<tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CurrentThread>::block_on<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   39:     0x567755883b01 - <tokio[395ae8ea94f29594]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/scheduler/current_thread/mod.rs:193:9
[INFO] [stdout]   40:     0x567755854044 - <tokio[395ae8ea94f29594]::runtime::runtime::Runtime>::block_on_inner::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/runtime.rs:371:52
[INFO] [stdout]   41:     0x56775585420f - <tokio[395ae8ea94f29594]::runtime::runtime::Runtime>::block_on::<core[8fb95b77d25ab6c8]::pin::Pin<&mut dyn core[8fb95b77d25ab6c8]::future::future::Future<Output = ()>>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.0/src/runtime/runtime.rs:345:18
[INFO] [stdout]   42:     0x5677557499fe - rust_claude_tools[e5ccb1f7784238ce]::worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/tools/src/worktree_tools.rs:585:42
[INFO] [stdout]   43:     0x56775572e077 - rust_claude_tools[e5ccb1f7784238ce]::worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/tools/src/worktree_tools.rs:547:56
[INFO] [stdout]   44:     0x5677556d4b86 - <rust_claude_tools[e5ccb1f7784238ce]::worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45:     0x56775596969b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   46:     0x56775596969b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   47:     0x567755976f15 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   48:     0x567755976f15 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   49:     0x567755976f15 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   50:     0x567755976f15 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   51:     0x567755976f15 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   52:     0x567755976f15 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   53:     0x567755976f15 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   54:     0x567755970824 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   55:     0x567755970824 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   56:     0x567755979f92 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   57:     0x567755979f92 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   58:     0x567755979f92 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   59:     0x567755979f92 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   60:     0x567755979f92 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   61:     0x567755979f92 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   62:     0x567755979f92 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   63:     0x56775630ea3f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   64:     0x56775630ea3f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   65:     0x7ce099ac6aa4 - <unknown>
[INFO] [stdout]   66:     0x7ce099b53a64 - clone
[INFO] [stdout]   67:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     worktree_tools::tests::exit_remove_clean_deletes_dir_and_branch
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 204 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.06s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p rust-claude-tools --lib`
[INFO] running `Command { std: "docker" "inspect" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce", kill_on_drop: false }`
[INFO] [stdout] 05662703a241414aa0233623d8493ab413659c307470332980526f26c781b4ce
