[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 { [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 { [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:: [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 - <::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 - ::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::> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x567756314e62 - as std[10d71ac2c42b111e]::io::Write>::write_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x5677562ea946 - ::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 - 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::::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5677563067f2 - 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:: [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 - > as core[8fb95b77d25ab6c8]::future::future::Future>::poll [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9 [INFO] [stdout] 22: 0x56775585318d - >> as core[8fb95b77d25ab6c8]::future::future::Future>::poll [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9 [INFO] [stdout] 23: 0x56775589b9ad - ::block_on::>>>::{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::, ::block_on>>>::{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::, ::block_on>>>::{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 - ::block_on::>>>::{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 - ::enter::, ::block_on>>>::{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 - ::block_on::>>>::{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 - ::enter::<::block_on>>>::{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 - >::set::<::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box, 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, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{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 - >::try_with::, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box, core[8fb95b77d25ab6c8]::option::Option<()>)> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 33: 0x567755839e4e - >::with::, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box, 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, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{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 - ::enter::<::block_on>>>::{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 - ::block_on::>>> [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 - ::block_on::>>::{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::<::block_on>>::{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 - ::block_on::>> [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 - ::block_on_inner::>> [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 - ::block_on::>> [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 - >::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 45: 0x56775596969b - 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::, 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 - 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]::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]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 51: 0x567755976f15 - std[10d71ac2c42b111e]::panic::catch_unwind::, 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:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 56: 0x567755979f92 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 57: 0x567755979f92 - ::{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::::{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::{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::::{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::::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 62: 0x567755979f92 - ::{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 - + 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 - ::new::thread_start [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 65: 0x7ce099ac6aa4 - [INFO] [stdout] 66: 0x7ce099b53a64 - clone [INFO] [stdout] 67: 0x0 - [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