[INFO] cloning repository https://github.com/LarsenClose/rust-lean-mcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LarsenClose/rust-lean-mcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLarsenClose%2Frust-lean-mcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLarsenClose%2Frust-lean-mcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6b52bb4250516a52e8ae850efff81810b5c8516d
[INFO] testing LarsenClose/rust-lean-mcp 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%2FLarsenClose%2Frust-lean-mcp" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/LarsenClose/rust-lean-mcp
[INFO] finished tweaking git repo https://github.com/LarsenClose/rust-lean-mcp
[INFO] tweaked toml for git repo https://github.com/LarsenClose/rust-lean-mcp written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LarsenClose/rust-lean-mcp 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/LarsenClose/rust-lean-mcp 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]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded assert-json-diff v2.0.2
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded uuid v1.22.0
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded tracing-appender v0.2.4
[INFO] [stderr]   Downloaded rmcp v1.2.0
[INFO] [stderr]   Downloaded cc v1.2.57
[INFO] [stderr]   Downloaded rmcp-macros v1.2.0
[INFO] [stderr]   Downloaded rustls v0.23.37
[INFO] [stderr]   Downloaded rustls-webpki v0.103.10
[INFO] [stderr]   Downloaded openssl-sys v0.9.112
[INFO] [stderr]   Downloaded schannel v0.1.29
[INFO] [stderr]   Downloaded openssl v0.10.76
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.47
[INFO] [stderr]   Downloaded mockall v0.14.0
[INFO] [stderr]   Downloaded zerocopy v0.8.47
[INFO] [stderr]   Downloaded mockall_derive v0.14.0
[INFO] [stderr]   Downloaded proptest v1.10.0
[INFO] [stderr]   Downloaded is-terminal v0.4.17
[INFO] [stderr]   Downloaded assert_cmd v2.2.0
[INFO] [stderr]   Downloaded lsp-types v0.97.0
[INFO] [stderr]   Downloaded fluent-uri v0.1.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8
[INFO] running `Command { std: "docker" "start" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", 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" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8" "/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" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", 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" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling fluent-uri v0.1.4
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling rmcp v1.2.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rmcp-macros v1.2.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling lsp-types v0.97.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling lean-mcp-core v0.1.0 (/opt/rustwide/workdir/crates/lean-mcp-core)
[INFO] [stderr]    Compiling lean-lsp-client v0.1.0 (/opt/rustwide/workdir/crates/lean-lsp-client)
[INFO] [stderr]    Compiling lean-mcp-server v0.1.0 (/opt/rustwide/workdir/crates/lean-mcp-server)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 44s
[INFO] running `Command { std: "docker" "inspect" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", 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" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8" "/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 num-traits v0.2.19
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling mockall_derive v0.14.0
[INFO] [stderr]    Compiling mockall v0.14.0
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling fragile v2.0.1
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling lean-lsp-client v0.1.0 (/opt/rustwide/workdir/crates/lean-lsp-client)
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling rmcp v1.2.0
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling lean-mcp-core v0.1.0 (/opt/rustwide/workdir/crates/lean-mcp-core)
[INFO] [stderr]    Compiling lean-mcp-server v0.1.0 (/opt/rustwide/workdir/crates/lean-mcp-server)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 35s
[INFO] running `Command { std: "docker" "inspect" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", 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" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.53s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lean_lsp_client-4b79d1d7d85f771e)
[INFO] [stdout] 
[INFO] [stdout] running 142 tests
[INFO] [stdout] test client::tests::test_error_display_timeout ... ok
[INFO] [stdout] test client::tests::test_error_display_not_initialized ... ok
[INFO] [stdout] test client::tests::test_error_display_file_not_open ... ok
[INFO] [stdout] test client::tests::test_error_display_transport ... ok
[INFO] [stdout] test client::tests::test_error_display_lsp_error ... ok
[INFO] [stdout] test client::tests::test_mock_client_can_be_created ... ok
[INFO] [stdout] test client::tests::test_path_to_uri_root_file ... ok
[INFO] [stdout] test client::tests::test_path_to_uri_creates_correct_uri ... ok
[INFO] [stdout] test client::tests::test_uri_to_path_extracts_correct_path ... ok
[INFO] [stdout] test jsonrpc::tests::test_notification_new ... ok
[INFO] [stdout] test jsonrpc::tests::test_notification_roundtrip ... ok
[INFO] [stdout] test jsonrpc::tests::test_message_from_value_notification ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_deserialization ... ok
[INFO] [stdout] test jsonrpc::tests::test_message_from_value_error_response ... ok
[INFO] [stdout] test jsonrpc::tests::test_message_from_value_request ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_roundtrip ... ok
[INFO] [stdout] test client::tests::test_mock_client_open_file_succeeds ... ok
[INFO] [stdout] test jsonrpc::tests::test_response_error_with_data ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_serialization_omits_none_params ... ok
[INFO] [stdout] test client::tests::test_mock_client_get_goal_returns_value ... ok
[INFO] [stdout] test jsonrpc::tests::test_response_deserialization ... ok
[INFO] [stdout] test jsonrpc::tests::test_message_from_value_request_with_string_id ... ok
[INFO] [stdout] test jsonrpc::tests::test_response_with_string_id_deserialization ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_new_without_params ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_with_string_id_deserialization ... ok
[INFO] [stdout] test jsonrpc::tests::test_response_with_result ... ok
[INFO] [stdout] test jsonrpc::tests::test_notification_serialization_omits_none_params ... ok
[INFO] [stdout] test jsonrpc::tests::test_message_from_value_response ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_serialization ... ok
[INFO] [stdout] test jsonrpc::tests::test_response_with_error ... ok
[INFO] [stdout] test lean_client::tests::elaboration_state_new_defaults ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_id_display ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_id_hash_equality ... ok
[INFO] [stdout] test jsonrpc::tests::test_request_new ... ok
[INFO] [stdout] test lean_client::tests::is_line_range_complete_boundary_cases ... ok
[INFO] [stdout] test lean_client::tests::is_line_range_complete_no_overlap ... ok
[INFO] [stdout] test lean_client::tests::is_line_range_complete_no_processing ... ok
[INFO] [stdout] test lean_client::tests::is_line_range_complete_with_overlap ... ok
[INFO] [stdout] test lean_client::tests::open_file_disk_change_updates_cached_content ... ok
[INFO] [stdout] test client::tests::test_error_is_send_sync ... ok
[INFO] [stdout] test lean_client::tests::open_file_disk_change_increments_version ... ok
[INFO] [stdout] test lean_client::tests::regression_open_file_detects_disk_change ... ok
[INFO] [stdout] test lean_client::tests::test_close_files_sends_did_close ... ok
[INFO] [stdout] test lean_client::tests::get_diagnostics_fatal_error_returns_immediately ... ok
[INFO] [stdout] test lean_client::tests::test_get_code_actions ... ok
[INFO] [stdout] test lean_client::tests::test_get_completions_returns_items ... ok
[INFO] [stdout] test lean_client::tests::test_get_declarations_returns_locations ... ok
[INFO] [stdout] test lean_client::tests::test_get_document_symbols ... ok
[INFO] [stdout] test lean_client::tests::test_get_file_content_not_open ... ok
[INFO] [stdout] test lean_client::tests::test_get_goal_returns_none_for_null ... ok
[INFO] [stdout] test lean_client::tests::test_get_file_content_returns_cached ... ok
[INFO] [stdout] test lean_client::tests::test_get_code_action_resolve ... ok
[INFO] [stdout] test lean_client::tests::test_get_goal_returns_result ... ok
[INFO] [stdout] test lean_client::tests::test_get_hover_returns_result ... ok
[INFO] [stdout] test lean_client::tests::test_lean_lsp_client_is_send_sync ... ok
[INFO] [stdout] test lean_client::tests::test_get_term_goal_returns_result ... ok
[INFO] [stdout] test lean_client::tests::test_get_references_includes_context ... ok
[INFO] [stdout] test lean_client::tests::test_lsp_error_response ... ok
[INFO] [stdout] test lean_client::tests::test_open_file_is_idempotent ... ok
[INFO] [stdout] test lean_client::tests::test_open_file_force_reopens ... ok
[INFO] [stdout] test lean_client::tests::test_project_path ... ok
[INFO] [stdout] test lean_client::tests::test_open_file_sends_did_open ... ok
[INFO] [stdout] test lean_client::tests::test_shutdown_sends_protocol_messages ... ok
[INFO] [stdout] test lean_client::tests::elaboration_state_resets_on_update_file_content ... ok
[INFO] [stdout] test lean_client::tests::file_progress_updates_elaboration_state ... ok
[INFO] [stdout] test lean_client::tests::elaboration_state_resets_on_open_file ... ok
[INFO] [stdout] test lean_client::tests::file_progress_kind_2_sets_fatal_error ... ok
[INFO] [stdout] test lean_client::tests::file_progress_empty_processing_sets_not_processing ... ok
[INFO] [stdout] test lean_client::tests::test_update_file_content_replaces_content ... ok
[INFO] [stdout] test lean_client::tests::test_update_file_sends_did_change ... ok
[INFO] [stdout] test multiplexer::tests::test_error_display ... ok
[INFO] [stdout] test multiplexer::tests::test_error_is_send_sync ... ok
[INFO] [stdout] test lean_client::tests::publish_diagnostics_updates_last_activity ... ok
[INFO] [stdout] test multiplexer::tests::test_concurrent_requests_dispatched_correctly ... ok
[INFO] [stdout] test multiplexer::tests::test_error_response_delivered ... ok
[INFO] [stdout] test multiplexer::tests::test_multiplexer_is_send ... ok
[INFO] [stdout] test lean_client::tests::test_version_increments_on_updates ... ok
[INFO] [stdout] test multiplexer::tests::test_notification_without_params ... ok
[INFO] [stdout] test multiplexer::tests::test_request_id_auto_increments ... ok
[INFO] [stdout] test multiplexer::tests::test_request_params_reach_server ... ok
[INFO] [stdout] test multiplexer::tests::test_request_receives_matching_response ... ok
[INFO] [stdout] test lean_client::tests::open_file_unchanged_content_no_notification ... ok
[INFO] [stdout] test multiplexer::tests::test_response_with_string_id_dispatched ... ok
[INFO] [stdout] test multiplexer::tests::test_send_notification ... ok
[INFO] [stdout] test lean_client::tests::test_get_diagnostics_waits_for_notifications ... ok
[INFO] [stdout] test lean_client::tests::test_get_diagnostics_filters_by_line ... ok
[INFO] [stdout] test multiplexer::tests::test_shutdown_cancels_pending ... ok
[INFO] [stdout] test pool::tests::acquire_returns_guard_and_tracks_in_flight ... ok
[INFO] [stdout] test pool::tests::affinity_entry_count_tracks_correctly ... ok
[INFO] [stdout] test pool::tests::auto_scales_when_all_busy ... ok
[INFO] [stdout] test lean_client::tests::test_update_file_not_open ... ok
[INFO] [stdout] test pool::tests::close_files_clears_affinity ... ok
[INFO] [stdout] test client::tests::test_uri_to_path_returns_none_for_non_file_uri ... ok
[INFO] [stdout] test multiplexer::tests::test_server_request_with_string_id_does_not_crash ... ok
[INFO] [stdout] test multiplexer::tests::test_reader_eof_closes_pending ... ok
[INFO] [stdout] test multiplexer::tests::test_notification_routed_to_handler ... ok
[INFO] [stdout] test pool::tests::saturated_affinity_falls_back_to_least_loaded ... ok
[INFO] [stdout] test pool::tests::shutdown_shuts_down_all_instances ... ok
[INFO] [stdout] test transport::tests::test_multiple_messages_in_sequence ... ok
[INFO] [stdout] test transport::tests::test_duplex_write_and_read ... ok
[INFO] [stdout] test transport::tests::test_read_message_closed_stream ... ok
[INFO] [stdout] test transport::tests::test_read_message_ignores_extra_headers ... ok
[INFO] [stdout] test lean_client::tests::get_diagnostics_inactivity_fallback ... ok
[INFO] [stdout] test transport::tests::test_read_message_missing_content_length ... ok
[INFO] [stdout] test transport::tests::test_read_message_malformed_content_length ... ok
[INFO] [stdout] test transport::tests::test_read_message_parses_correctly ... ok
[INFO] [stdout] test transport::tests::test_roundtrip_write_then_read ... ok
[INFO] [stdout] test transport::tests::test_stdio_transport_is_send ... ok
[INFO] [stdout] test transport::tests::test_transport_error_display ... ok
[INFO] [stdout] test pool::tests::spawn_failure_does_not_crash_pool ... ok
[INFO] [stdout] test transport::tests::test_transport_error_from_io ... ok
[INFO] [stdout] test transport::tests::test_transport_error_from_json ... ok
[INFO] [stdout] test transport::tests::test_transport_error_is_send_sync ... ok
[INFO] [stdout] test types::tests::content_change_full_has_no_range ... ok
[INFO] [stdout] test types::tests::content_change_new_creates_correct_range ... ok
[INFO] [stdout] test transport::tests::test_write_message_formats_correctly ... ok
[INFO] [stdout] test types::tests::content_change_roundtrip ... ok
[INFO] [stdout] test types::tests::content_change_serialization_omits_none_range ... ok
[INFO] [stdout] test types::tests::lsp_position_roundtrip ... ok
[INFO] [stdout] test types::tests::lsp_range_roundtrip ... ok
[INFO] [stdout] test types::tests::methods_constants_are_correct ... ok
[INFO] [stdout] test types::tests::plain_goal_response_empty_goals ... ok
[INFO] [stdout] test types::tests::plain_goal_response_roundtrip ... ok
[INFO] [stdout] test types::tests::plain_term_goal_response_without_goal ... ok
[INFO] [stdout] test types::tests::plain_term_goal_response_with_goal ... ok
[INFO] [stdout] test types::tests::severity_name_for_all_values ... ok
[INFO] [stdout] test types::tests::types_are_send_and_sync ... ok
[INFO] [stdout] test types::tests::widget_source_params_serialization ... ok
[INFO] [stdout] test types::tests::widget_source_params_roundtrip ... ok
[INFO] [stdout] test pool::tests::least_loaded_distributes_evenly ... ok
[INFO] [stdout] test pool::tests::pool_starts_with_one_instance ... ok
[INFO] [stdout] test types::tests::plain_goal_response_multiple_goals ... ok
[INFO] [stdout] test multiplexer::tests::test_request_timeout ... ok
[INFO] [stdout] test pool::tests::does_not_exceed_max_instances ... ok
[INFO] [stdout] test multiplexer::tests::test_multiple_notifications_to_handler ... ok
[INFO] [stdout] test pool::tests::affinity_routes_to_preferred_instance ... ok
[INFO] [stdout] test lean_client::tests::test_normal_diagnostics_no_rebuild ... ok
[INFO] [stdout] test lean_client::tests::get_diagnostics_triple_signal_fast_completion ... ok
[INFO] [stdout] test lean_client::tests::test_stale_imports_triggers_force_reopen ... ok
[INFO] [stdout] test lean_client::tests::get_diagnostics_line_range_early_return ... ok
[INFO] [stdout] test lean_client::tests::test_stale_imports_rebuild_only_attempted_once ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lean_mcp_core-b34808371c37c1b9)
[INFO] [stdout] test lean_client::tests::test_stale_imports_different_files_tracked_separately ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 142 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 312 tests
[INFO] [stdout] test build_coordinator::tests::build_coordinator_is_send_and_sync ... ok
[INFO] [stdout] test build_coordinator::tests::allow_mode_runs_build_directly ... ok
[INFO] [stdout] test cache::tests::get_missing_key_returns_none ... ok
[INFO] [stdout] test cache::tests::hash_content_differs_for_different_input ... ok
[INFO] [stdout] test cache::tests::debug_impl_works ... ok
[INFO] [stdout] test cache::tests::clear_removes_all_entries ... ok
[INFO] [stdout] test cache::tests::clone_shares_underlying_state ... ok
[INFO] [stdout] test cache::tests::hash_content_is_deterministic ... ok
[INFO] [stdout] test cache::tests::different_methods_same_position_are_independent ... ok
[INFO] [stdout] test build_coordinator::tests::mode_from_string_parsing ... ok
[INFO] [stdout] test build_coordinator::tests::default_mode_is_allow ... ok
[INFO] [stdout] test cache::tests::new_cache_is_empty ... ok
[INFO] [stdout] test cache::tests::invalidate_content_removes_matching_entries ... ok
[INFO] [stdout] test cache::tests::non_expired_entry_returns_value ... ok
[INFO] [stdout] test cache::tests::overwrite_does_not_grow_size ... ok
[INFO] [stdout] test cache::tests::overwrite_updates_value_and_refreshes_timestamp ... ok
[INFO] [stdout] test config::tests::build_concurrency_display_and_parse ... ok
[INFO] [stdout] test cache::tests::put_then_get_returns_value ... ok
[INFO] [stdout] test config::tests::cli_lean_project_path_override ... ok
[INFO] [stdout] test config::tests::cli_instructions_override ... ok
[INFO] [stdout] test config::tests::cli_host_and_port_override ... ok
[INFO] [stdout] test config::tests::cli_disable_tools ... ok
[INFO] [stdout] test config::tests::cli_repl_flags ... ok
[INFO] [stdout] test config::tests::cli_overrides_env_instructions ... ok
[INFO] [stdout] test config::tests::cli_overrides_env_project_path ... ok
[INFO] [stdout] test config::tests::cli_loogle_flags ... ok
[INFO] [stdout] test config::tests::cli_transport_override ... ok
[INFO] [stdout] test cache::tests::concurrent_reads_and_writes ... ok
[INFO] [stdout] test build_coordinator::tests::share_mode_single_build_succeeds ... ok
[INFO] [stdout] test build_coordinator::tests::allow_mode_runs_builds_independently ... ok
[INFO] [stdout] test build_coordinator::tests::cancel_mode_single_build_succeeds ... ok
[INFO] [stdout] test config::tests::cli_overrides_env_disabled_tools ... ok
[INFO] [stdout] test config::tests::config_default_trait ... ok
[INFO] [stdout] test config::tests::cli_tool_descriptions_json ... ok
[INFO] [stdout] test config::tests::env_log_level ... ok
[INFO] [stdout] test config::tests::config_is_send_and_sync ... ok
[INFO] [stdout] test config::tests::env_lean_project_path_fallback ... ok
[INFO] [stdout] test config::tests::env_instructions_fallback ... ok
[INFO] [stdout] test config::tests::env_disabled_tools_fallback ... ok
[INFO] [stdout] test config::tests::config_defaults ... ok
[INFO] [stdout] test config::tests::env_build_concurrency ... ok
[INFO] [stdout] test config::tests::loogle_cache_dir_from_env ... ok
[INFO] [stdout] test config::tests::env_loogle_local_true ... ok
[INFO] [stdout] test config::tests::empty_disable_tools_string_yields_empty_vec ... ok
[INFO] [stdout] test error::tests::config_error_is_send_and_sync ... ok
[INFO] [stdout] test config::tests::env_repl_and_timeout ... ok
[INFO] [stdout] test config::tests::invalid_transport_rejected ... ok
[INFO] [stdout] test config::tests::env_tool_descriptions_fallback ... ok
[INFO] [stdout] test config::tests::transport_display_and_parse ... ok
[INFO] [stdout] test config::tests::invalid_build_concurrency_env ... ok
[INFO] [stdout] test config::tests::env_loogle_local_one ... ok
[INFO] [stdout] test config::tests::invalid_repl_timeout_env ... ok
[INFO] [stdout] test config::tests::invalid_tool_descriptions_json ... ok
[INFO] [stdout] test error::tests::display_json_parse_error ... ok
[INFO] [stdout] test error::tests::display_axiom_check_failed ... ok
[INFO] [stdout] test error::tests::display_lsp_timeout ... ok
[INFO] [stdout] test error::tests::display_lsp_error ... ok
[INFO] [stdout] test error::tests::display_no_declaration ... ok
[INFO] [stdout] test error::tests::display_column_out_of_range ... ok
[INFO] [stdout] test error::tests::display_line_out_of_range ... ok
[INFO] [stdout] test error::tests::display_declaration_not_found ... ok
[INFO] [stdout] test error::tests::display_invalid_path ... ok
[INFO] [stdout] test error::tests::display_client_start_failed ... ok
[INFO] [stdout] test error::tests::display_invalid_project_root ... ok
[INFO] [stdout] test error::tests::display_invalid_value ... ok
[INFO] [stdout] test cache::tests::evicts_oldest_when_at_capacity ... ok
[INFO] [stdout] test error::tests::display_no_goals ... ok
[INFO] [stdout] test error::tests::display_no_hover_info ... ok
[INFO] [stdout] test error::tests::display_no_project_path ... ok
[INFO] [stdout] test error::tests::display_project_path_not_set ... ok
[INFO] [stdout] test error::tests::display_other ... ok
[INFO] [stdout] test error::tests::display_project_path_unknown ... ok
[INFO] [stdout] test error::tests::display_rate_limit_exceeded ... ok
[INFO] [stdout] test error::tests::display_ripgrep_not_found ... ok
[INFO] [stdout] test error::tests::display_symbol_not_found ... ok
[INFO] [stdout] test error::tests::lean_tool_error_is_send_and_sync ... ok
[INFO] [stdout] test error::tests::display_project_root_not_found ... ok
[INFO] [stdout] test error::tests::display_search_failed ... ok
[INFO] [stdout] test error::tests::search_error_is_send_and_sync ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_missing_source_file_returns_empty ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_missing_olean_is_stale ... ok
[INFO] [stdout] test build_coordinator::tests::share_mode_both_callers_get_new_result ... ok
[INFO] [stdout] test build_coordinator::tests::cancel_mode_supersedes_in_progress_build ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_no_build_dir_returns_empty ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_walks_up_from_nested_subdir ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_finds_dir_with_lakefile_toml ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_starts_from_file_path ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_finds_dir_with_lakefile_lean ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_finds_dir_with_lean_toolchain ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_returns_none_when_no_markers ... ok
[INFO] [stdout] test file_utils::tests::detect_lean_project_prefers_nearest_ancestor ... ok
[INFO] [stdout] test file_utils::tests::get_file_contents_error_on_missing_file ... ok
[INFO] [stdout] test file_utils::tests::get_file_contents_handles_invalid_utf8 ... ok
[INFO] [stdout] test file_utils::tests::infer_project_path_returns_immediate_dir ... ok
[INFO] [stdout] test file_utils::tests::infer_project_path_none_when_no_toolchain ... ok
[INFO] [stdout] test file_utils::tests::infer_project_path_finds_ancestor ... ok
[INFO] [stdout] test file_utils::tests::get_file_contents_reads_utf8 ... ok
[INFO] [stdout] test file_utils::tests::is_olean_stale_returns_true_when_olean_missing ... ok
[INFO] [stdout] test file_utils::tests::is_olean_stale_returns_false_when_source_missing ... ok
[INFO] [stdout] test file_utils::tests::relative_path_absolute_outside_project ... ok
[INFO] [stdout] test file_utils::tests::relative_path_nonexistent_absolute ... ok
[INFO] [stdout] test file_utils::tests::relative_path_absolute_under_project ... ok
[INFO] [stdout] test file_utils::tests::relative_path_nonexistent_relative ... ok
[INFO] [stdout] test file_utils::tests::relative_path_already_relative ... ok
[INFO] [stdout] test file_utils::tests::valid_lean_project_path_false_when_missing ... ok
[INFO] [stdout] test file_utils::tests::valid_lean_project_path_false_when_toolchain_is_dir ... ok
[INFO] [stdout] test goal_diff::tests::diff_both_empty ... ok
[INFO] [stdout] test goal_diff::tests::diff_goal_solved ... ok
[INFO] [stdout] test goal_diff::tests::diff_goal_split_into_two ... ok
[INFO] [stdout] test goal_diff::tests::diff_hypothesis_added_by_intro ... ok
[INFO] [stdout] test file_utils::tests::valid_lean_project_path_true_when_toolchain_exists ... ok
[INFO] [stdout] test goal_diff::tests::diff_hypothesis_removed ... ok
[INFO] [stdout] test goal_diff::tests::parse_goal_empty_string ... ok
[INFO] [stdout] test goal_diff::tests::diff_multiple_goals_one_solved ... ok
[INFO] [stdout] test goal_diff::tests::diff_new_goal_from_empty ... ok
[INFO] [stdout] test goal_diff::tests::parse_goal_multiline_conclusion ... ok
[INFO] [stdout] test goal_diff::tests::diff_no_change ... ok
[INFO] [stdout] test goal_diff::tests::parse_goal_multiple_hypotheses ... ok
[INFO] [stdout] test goal_diff::tests::parse_goal_no_turnstile ... ok
[INFO] [stdout] test goal_diff::tests::parse_goal_only_turnstile ... ok
[INFO] [stdout] test goal_diff::tests::parse_goal_standard_format ... ok
[INFO] [stdout] test instructions::tests::instructions_is_not_empty ... ok
[INFO] [stdout] test instructions::tests::instructions_contains_key_sections ... ok
[INFO] [stdout] test loogle::tests::cache_dir_default_fallback ... ok
[INFO] [stdout] test loogle::tests::cache_dir_from_env_var ... ok
[INFO] [stdout] test loogle::tests::cache_dir_empty_env_var_ignored ... ok
[INFO] [stdout] test loogle::tests::cleanup_old_indices_nonexistent_dir_is_noop ... ok
[INFO] [stdout] test loogle::tests::cache_dir_from_xdg ... ok
[INFO] [stdout] test instructions::tests::instructions_mentions_all_search_tools ... ok
[INFO] [stdout] test instructions::tests::instructions_mentions_all_key_tools ... ok
[INFO] [stdout] test loogle::tests::discover_project_paths_no_project ... ok
[INFO] [stdout] test loogle::tests::get_mathlib_version_returns_unknown_when_no_manifest ... ok
[INFO] [stdout] test loogle::tests::drop_when_no_process_is_safe ... ok
[INFO] [stdout] test loogle::tests::cleanup_old_indices_removes_old_files ... ok
[INFO] [stdout] test loogle::tests::index_path_deterministic ... ok
[INFO] [stdout] test loogle::tests::index_path_with_extra_paths_includes_hash ... ok
[INFO] [stdout] test loogle::tests::get_mathlib_version_parses_manifest ... ok
[INFO] [stdout] test loogle::tests::discover_project_paths_with_packages ... ok
[INFO] [stdout] test loogle::tests::index_path_without_extra_paths ... ok
[INFO] [stdout] test loogle::tests::loogle_result_is_send_and_sync ... ok
[INFO] [stdout] test loogle::tests::manager_binary_path ... ok
[INFO] [stdout] test loogle::tests::manager_is_installed_false_when_no_binary ... ok
[INFO] [stdout] test loogle::tests::manager_is_running_false_initially ... ok
[INFO] [stdout] test loogle::tests::manager_new_custom_cache_dir ... ok
[INFO] [stdout] test loogle::tests::manager_new_default_cache_dir ... ok
[INFO] [stdout] test loogle::tests::set_project_path_returns_false_when_unchanged ... ok
[INFO] [stdout] test loogle::tests::set_project_path_to_nonexistent_returns_no_paths ... ok
[INFO] [stdout] test loogle::tests::stop_when_no_process_is_noop ... ok
[INFO] [stdout] test loogle::tests::urlencoding_basic ... ok
[INFO] [stdout] test loogle::tests::urlencoding_special_chars ... ok
[INFO] [stdout] test models::tests::attempt_result_timed_out_defaults_to_false ... ok
[INFO] [stdout] test models::tests::attempt_result_timed_out_false_omitted ... ok
[INFO] [stdout] test models::tests::attempt_result_timed_out_true_included ... ok
[INFO] [stdout] test models::tests::batch_goal_position_omits_none_column ... ok
[INFO] [stdout] test models::tests::diagnostic_severity_lowercase_serialization ... ok
[INFO] [stdout] test models::tests::diagnostic_severity_round_trip ... ok
[INFO] [stdout] test models::tests::diagnostics_result_explicit_false ... ok
[INFO] [stdout] test models::tests::diagnostics_result_stale_fields_omitted_when_empty ... ok
[INFO] [stdout] test models::tests::diagnostics_result_success_defaults_to_true ... ok
[INFO] [stdout] test models::tests::empty_hashmap_default ... ok
[INFO] [stdout] test models::tests::empty_vec_fields_deserialize_from_missing_key ... ok
[INFO] [stdout] test models::tests::goal_diff_result_defaults_from_minimal_json ... ok
[INFO] [stdout] test models::tests::key_types_are_send_and_sync ... ok
[INFO] [stdout] test models::tests::lean_search_type_field_renamed ... ok
[INFO] [stdout] test models::tests::optional_fields_omitted_when_none ... ok
[INFO] [stdout] test models::tests::outline_entry_with_children ... ok
[INFO] [stdout] test models::tests::project_health_defaults_from_minimal_json ... ok
[INFO] [stdout] test models::tests::proof_profile_result_categories_round_trip ... ok
[INFO] [stdout] test models::tests::round_trip_batch_call ... ok
[INFO] [stdout] test models::tests::round_trip_batch_call_result_error ... ok
[INFO] [stdout] test models::tests::round_trip_batch_call_result_success ... ok
[INFO] [stdout] test models::tests::round_trip_batch_goal_entry_error ... ok
[INFO] [stdout] test models::tests::round_trip_batch_goal_entry_success ... ok
[INFO] [stdout] test models::tests::round_trip_batch_goal_position ... ok
[INFO] [stdout] test models::tests::round_trip_batch_goal_result ... ok
[INFO] [stdout] test models::tests::round_trip_batch_result ... ok
[INFO] [stdout] test models::tests::round_trip_build_result ... ok
[INFO] [stdout] test models::tests::round_trip_code_actions_result ... ok
[INFO] [stdout] test models::tests::round_trip_diagnostics_result ... ok
[INFO] [stdout] test models::tests::round_trip_diagnostics_result_with_stale_oleans ... ok
[INFO] [stdout] test models::tests::round_trip_goal_diff_result ... ok
[INFO] [stdout] test models::tests::round_trip_goal_state_with_before_after ... ok
[INFO] [stdout] test models::tests::round_trip_goal_state_with_goals ... ok
[INFO] [stdout] test models::tests::round_trip_hover_info ... ok
[INFO] [stdout] test models::tests::round_trip_project_health_result ... ok
[INFO] [stdout] test models::tests::round_trip_verify_result ... ok
[INFO] [stdout] test models::tests::sorry_location_omits_none_fields ... ok
[INFO] [stdout] test models::tests::widgets_result_round_trip ... ok
[INFO] [stdout] test rate_limit::tests::allows_requests_under_limit ... ok
[INFO] [stdout] test rate_limit::tests::allows_requests_up_to_limit ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_detects_stale_source ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_clean_when_olean_newer ... ok
[INFO] [stdout] test rate_limit::tests::default_creates_empty_limiter ... ok
[INFO] [stdout] test rate_limit::tests::error_message_reflects_parameters ... ok
[INFO] [stdout] test rate_limit::tests::partially_expired_window_frees_capacity ... ok
[INFO] [stdout] test rate_limit::tests::independent_categories_do_not_interfere ... ok
[INFO] [stdout] test rate_limit::tests::rejects_at_limit ... ok
[INFO] [stdout] test rate_limit::tests::window_expiry_resets_counter ... ok
[INFO] [stdout] test repl::tests::close_when_no_process_is_noop ... ok
[INFO] [stdout] test rate_limit::tests::thread_safety_with_arc_mutex ... ok
[INFO] [stdout] test repl::tests::drop_when_no_process_is_noop ... ok
[INFO] [stdout] test repl::tests::extract_proof_state_empty_sorries_array ... ok
[INFO] [stdout] test repl::tests::extract_proof_state_missing_sorries_field ... ok
[INFO] [stdout] test repl::tests::extract_proof_state_single_sorry ... ok
[INFO] [stdout] test repl::tests::extract_proof_state_multiple_sorries_returns_last ... ok
[INFO] [stdout] test repl::tests::extract_proof_state_sorry_without_proof_state ... ok
[INFO] [stdout] test repl::tests::find_repl_binary_empty_env_var_skipped ... ok
[INFO] [stdout] test repl::tests::find_repl_binary_from_env_var ... ok
[INFO] [stdout] test repl::tests::new_repl_has_correct_fields ... ok
[INFO] [stdout] test repl::tests::run_snippets_empty_snippets_returns_empty ... ok
[INFO] [stdout] test repl::tests::set_timeout_changes_value ... ok
[INFO] [stdout] test repl::tests::snippet_result_default_fields ... ok
[INFO] [stdout] test repl::tests::snippet_result_is_send_and_sync ... ok
[INFO] [stdout] test repl::tests::snippet_result_with_error ... ok
[INFO] [stdout] test repl::tests::split_header_body_immediate_declaration ... ok
[INFO] [stdout] test repl::tests::split_header_body_no_declaration ... ok
[INFO] [stdout] test repl::tests::find_repl_binary_in_lake_packages ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_stops_at_non_import_line ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_skips_comments_in_import_section ... ok
[INFO] [stdout] test repl::tests::split_header_body_open_namespace ... ok
[INFO] [stdout] test repl::tests::split_header_body_private_declaration ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_parses_public_import ... ok
[INFO] [stdout] test repl::tests::split_header_body_with_def ... ok
[INFO] [stdout] test repl::tests::split_header_body_with_imports_and_theorem ... ok
[INFO] [stdout] test repl::tests::split_header_body_with_lemma ... ok
[INFO] [stdout] test repl::tests::find_repl_binary_nonexistent_project ... ok
[INFO] [stdout] test repl_pool::tests::different_headers_are_not_matched ... ok
[INFO] [stdout] test repl_pool::tests::find_lru_picks_oldest ... ok
[INFO] [stdout] test repl_pool::tests::find_entry_returns_matching_index ... ok
[INFO] [stdout] test repl_pool::tests::find_lru_single_entry ... ok
[INFO] [stdout] test repl::tests::start_uses_lake_env_wrapping ... ok
[INFO] [stdout] test repl_pool::tests::lru_eviction_when_pool_exceeds_max_size ... ok
[INFO] [stdout] test repl_pool::tests::new_pool_has_correct_max_size ... ok
[INFO] [stdout] test repl_pool::tests::acquire_cache_miss_creates_new_repl ... ok
[INFO] [stdout] test repl_pool::tests::pool_size_env_var_override ... ok
[INFO] [stdout] test repl_pool::tests::new_pool_is_empty ... ok
[INFO] [stdout] test repl_pool::tests::repl_pool_is_send_and_sync ... ok
[INFO] [stdout] test repl_pool::tests::release_and_acquire_cache_hit ... ok
[INFO] [stdout] test repl_pool::tests::run_snippets_empty_returns_empty ... ok
[INFO] [stdout] test repl_pool::tests::with_defaults_uses_default_max_size ... ok
[INFO] [stdout] test repl_pool::tests::shutdown_empties_pool ... ok
[INFO] [stdout] test search_utils::tests::decl_keywords_contains_essential_keywords ... ok
[INFO] [stdout] test search_utils::tests::determine_kind_all_variants ... ok
[INFO] [stdout] test search_utils::tests::deduplication_preserves_first_occurrence ... ok
[INFO] [stdout] test search_utils::tests::determine_kind_with_modifier ... ok
[INFO] [stdout] test repl_pool::tests::run_snippets_propagates_acquire_error ... ok
[INFO] [stdout] test search_utils::tests::check_ripgrep_status_returns_tuple ... ok
[INFO] [stdout] test search_utils::tests::lean_local_search_empty_query_errors ... ok
[INFO] [stdout] test search_utils::tests::get_lean_src_search_path_returns_option ... ok
[INFO] [stdout] test file_utils::tests::is_olean_stale_returns_false_when_olean_newer ... ok
[INFO] [stdout] test search_utils::tests::lean_local_search_nonexistent_root_errors ... ok
[INFO] [stdout] test search_utils::tests::lean_local_search_excludes_lake_build_artifacts ... ok
[INFO] [stdout] test search_utils::tests::lean_local_search_finds_declarations_in_lake_packages ... ok
[INFO] [stdout] test search_utils::tests::local_search_result_is_send_and_sync ... ok
[INFO] [stdout] test file_utils::tests::is_olean_stale_returns_true_when_source_newer ... ok
[INFO] [stdout] test search_utils::tests::make_relative_path_absolute_inside_root ... ok
[INFO] [stdout] test search_utils::tests::make_relative_path_absolute_outside_root ... ok
[INFO] [stdout] test search_utils::tests::lean_local_search_ranks_project_files_over_packages ... ok
[INFO] [stdout] test search_utils::tests::lean_local_search_no_matches ... ok
[INFO] [stdout] test search_utils::tests::make_relative_path_already_relative ... ok
[INFO] [stdout] test search_utils::tests::extract_declaration_theorem ... ok
[INFO] [stdout] test search_utils::tests::extract_declaration_private_def ... ok
[INFO] [stdout] test search_utils::tests::extract_declaration_skips_comments ... ok
[INFO] [stdout] test search_utils::tests::name_regex_matches_with_attribute ... ok
[INFO] [stdout] test search_utils::tests::name_regex_matches_theorem ... ok
[INFO] [stdout] test search_utils::tests::relevance_case_insensitive ... ok
[INFO] [stdout] test search_utils::tests::relevance_exact_match_highest ... ok
[INFO] [stdout] test search_utils::tests::relevance_last_component_exact_match ... ok
[INFO] [stdout] test search_utils::tests::relevance_project_over_package ... ok
[INFO] [stdout] test search_utils::tests::resolve_namespace_after_end ... ok
[INFO] [stdout] test search_utils::tests::resolve_namespace_missing_file ... ok
[INFO] [stdout] test search_utils::tests::resolve_namespace_nested ... ok
[INFO] [stdout] test search_utils::tests::resolve_namespace_no_namespace ... ok
[INFO] [stdout] test search_utils::tests::resolve_namespace_single_namespace ... ok
[INFO] [stdout] test task_manager::tests::cancel_triggers_token ... ok
[INFO] [stdout] test task_manager::tests::cancel_task_sets_cancelled ... ok
[INFO] [stdout] test task_manager::tests::create_task_returns_unique_ids ... ok
[INFO] [stdout] test task_manager::tests::failed_item_counts_as_completed ... ok
[INFO] [stdout] test search_utils::tests::name_regex_matches_lemma ... ok
[INFO] [stdout] test search_utils::tests::name_regex_matches_def ... ok
[INFO] [stdout] test task_manager::tests::new_task_is_all_pending ... ok
[INFO] [stdout] test task_manager::tests::get_task_returns_none_for_unknown_id ... ok
[INFO] [stdout] test search_utils::tests::name_regex_matches_class ... ok
[INFO] [stdout] test task_manager::tests::partial_completion_snapshot ... ok
[INFO] [stdout] test task_manager::tests::cleanup_keeps_running_tasks ... ok
[INFO] [stdout] test search_utils::tests::name_regex_matches_noncomputable_def ... ok
[INFO] [stdout] test task_manager::tests::cleanup_removes_expired_completed_tasks ... ok
[INFO] [stdout] test task_manager::tests::task_completes_when_all_items_done ... ok
[INFO] [stdout] test task_manager::tests::update_item_changes_status ... ok
[INFO] [stdout] test utils::tests::completion_kind_known_values ... ok
[INFO] [stdout] test utils::tests::completion_kind_unknown ... ok
[INFO] [stdout] test utils::tests::extract_goals_missing_key ... ok
[INFO] [stdout] test utils::tests::extract_goals_empty_array ... ok
[INFO] [stdout] test utils::tests::extract_goals_filters_non_strings ... ok
[INFO] [stdout] test utils::tests::extract_goals_with_goals ... ok
[INFO] [stdout] test utils::tests::find_position_at_start ... ok
[INFO] [stdout] test utils::tests::find_position_empty_content ... ok
[INFO] [stdout] test utils::tests::find_position_multi_line ... ok
[INFO] [stdout] test utils::tests::find_position_not_found ... ok
[INFO] [stdout] test utils::tests::find_position_single_line ... ok
[INFO] [stdout] test utils::tests::extract_goals_non_array ... ok
[INFO] [stdout] test utils::tests::extract_goals_none_response ... ok
[INFO] [stdout] test utils::tests::find_position_at_line_boundary ... ok
[INFO] [stdout] test task_manager::tests::update_out_of_bounds_is_noop ... ok
[INFO] [stdout] test file_utils::tests::check_stale_imports_detects_stale_import ... ok
[INFO] [stdout] test loogle::tests::loogle_remote_network_error ... ok
[INFO] [stdout] test cache::tests::expired_entry_returns_none ... ok
[INFO] [stdout] test cache::tests::expired_entries_purged_on_put ... ok
[INFO] [stdout] test loogle::tests::loogle_remote_success ... ok
[INFO] [stdout] test loogle::tests::loogle_remote_no_hits ... ok
[INFO] [stdout] test loogle::tests::loogle_remote_empty_hits ... ok
[INFO] [stdout] test loogle::tests::loogle_remote_with_extra_headers ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 312 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lean_mcp_server-bfcf8fc8dc2eface)
[INFO] [stdout] 
[INFO] [stdout] running 401 tests
[INFO] [stdout] test server::tests::app_context_debug_includes_task_manager ... ok
[INFO] [stdout] test server::tests::app_context_with_project_path ... ok
[INFO] [stdout] test server::tests::app_context_is_send_and_sync ... ok
[INFO] [stdout] test server::tests::resolve_project_path_detects_from_file_path ... ok
[INFO] [stdout] test server::tests::app_context_default_matches_new ... ok
[INFO] [stdout] test server::tests::server_instructions_contains_key_sections ... ok
[INFO] [stdout] test server::tests::server_name_returns_lean_lsp ... ok
[INFO] [stdout] test server::tests::server_version_is_not_empty ... ok
[INFO] [stdout] test server::tests::app_context_debug_format ... ok
[INFO] [stdout] test server::tests::resolve_project_path_cwd_result_is_cached ... ok
[INFO] [stdout] test server::tests::server_health_shows_version ... ok
[INFO] [stdout] test server::tests::task_manager_update_and_poll ... ok
[INFO] [stdout] test server::tests::get_info_advertises_tools_capability ... ok
[INFO] [stdout] test server::tests::get_info_returns_correct_server_metadata ... ok
[INFO] [stdout] test server::tests::task_manager_in_app_context ... ok
[INFO] [stdout] test server::tests::resolve_project_path_detects_from_cwd ... ok
[INFO] [stdout] test server::tests::task_result_cancel ... ok
[INFO] [stdout] test tools::batch::tests::empty_batch_returns_empty_items ... ok
[INFO] [stdout] test tools::batch::tests::lsp_tool_without_client_returns_error ... ok
[INFO] [stdout] test server::tests::to_json_serializes_simple_value ... ok
[INFO] [stdout] test server::tests::app_context_new_has_no_project_path ... ok
[INFO] [stdout] test server::tests::threads_per_instance_default_is_four ... ok
[INFO] [stdout] test tools::batch::tests::order_preserved ... ok
[INFO] [stdout] test tools::batch::tests::build_without_project_path_returns_error ... ok
[INFO] [stdout] test server::tests::task_result_cancel_unknown_task ... ok
[INFO] [stdout] test tools::batch::tests::multi_attempt_async_not_supported_in_batch ... ok
[INFO] [stdout] test tools::batch::tests::self_recursion_blocked ... ok
[INFO] [stdout] test tools::batch::tests::server_health_not_supported_in_batch ... ok
[INFO] [stdout] test tools::batch::tests::project_health_without_project_path_returns_error ... ok
[INFO] [stdout] test server::tests::server_health_no_sessions_initially ... ok
[INFO] [stdout] test server::tests::threads_per_instance_respects_env_var ... ok
[INFO] [stdout] test server::tests::task_result_expired_task_not_found ... ok
[INFO] [stdout] test server::tests::resolve_project_path_error_when_nothing_found ... ok
[INFO] [stdout] test tools::batch::tests::task_result_not_supported_in_batch ... ok
[INFO] [stdout] test tools::batch::tests::unknown_tool_returns_error ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_line_zero_returns_error ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_empty_positions ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_preserves_order ... ok
[INFO] [stdout] test server::tests::task_result_returns_snapshot ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_multiple_files ... ok
[INFO] [stdout] test server::tests::threads_per_instance_ignores_empty_value ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_deduplicates_file_opens ... ok
[INFO] [stdout] test server::tests::task_result_serializes_attempt_results ... ok
[INFO] [stdout] test server::tests::resolve_project_path_explicit_takes_precedence ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_partial_failure_on_bad_column ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_partial_failure_on_bad_line ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_single_file_multiple_positions ... ok
[INFO] [stdout] test server::tests::task_result_not_found ... ok
[INFO] [stdout] test tools::build::tests::build_result_success ... ok
[INFO] [stdout] test tools::build::tests::collect_errors_finds_error_lines ... ok
[INFO] [stdout] test tools::build::tests::collect_errors_case_insensitive ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_types_are_send_and_sync ... ok
[INFO] [stdout] test tools::build::tests::collect_errors_empty_on_success ... ok
[INFO] [stdout] test tools::build::tests::build_result_failure_with_errors ... ok
[INFO] [stdout] test tools::build::tests::build_result_clean_failure ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_without_column_returns_before_after ... ok
[INFO] [stdout] test tools::batch_goals::tests::batch_with_column_returns_exact_goals ... ok
[INFO] [stdout] test tools::build::tests::build_result_output_truncation ... ok
[INFO] [stdout] test tools::code_actions::tests::code_actions_returns_multiple_distinct_actions ... ok
[INFO] [stdout] test tools::code_actions::tests::code_actions_returns_actions_with_edits ... ok
[INFO] [stdout] test tools::code_actions::tests::convert_text_edit_returns_none_without_new_text ... ok
[INFO] [stdout] test tools::code_actions::tests::convert_text_edit_returns_none_without_range ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_edits_empty_when_no_edit_field ... ok
[INFO] [stdout] test tools::code_actions::tests::code_actions_deduplicates_by_title ... ok
[INFO] [stdout] test tools::build::tests::truncate_output_handles_empty_input ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_edits_from_changes_map ... ok
[INFO] [stdout] test tools::build::tests::truncate_output_returns_empty_when_zero ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_edits_from_document_changes ... ok
[INFO] [stdout] test tools::code_actions::tests::code_actions_empty_line_returns_empty_actions ... ok
[INFO] [stdout] test tools::build::tests::truncate_output_returns_last_n_lines ... ok
[INFO] [stdout] test tools::code_actions::tests::code_actions_resolves_unresolved_actions ... ok
[INFO] [stdout] test tools::code_actions::tests::convert_text_edit_converts_0_to_1_indexed ... ok
[INFO] [stdout] test tools::build::tests::parse_progress_empty_on_no_patterns ... ok
[INFO] [stdout] test tools::build::tests::parse_progress_mixed_content ... ok
[INFO] [stdout] test tools::build::tests::parse_progress_extracts_patterns ... ok
[INFO] [stdout] test tools::build::tests::parse_progress_ignores_malformed ... ok
[INFO] [stdout] test tools::build::tests::parse_progress_handles_large_numbers ... ok
[INFO] [stdout] test tools::code_actions::tests::code_actions_positions_are_1_indexed_in_output ... ok
[INFO] [stdout] test tools::build::tests::truncate_output_returns_all_when_fewer_lines ... ok
[INFO] [stdout] test server::tests::server_health_returns_valid_json ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_ranges_filters_by_target_line ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_ranges_empty_when_no_match ... ok
[INFO] [stdout] test tools::completions::tests::completions_prefix_sorting ... ok
[INFO] [stdout] test tools::completions::tests::completions_maps_kind_integers_to_strings ... ok
[INFO] [stdout] test tools::completions::tests::completions_empty_returns_empty ... ok
[INFO] [stdout] test tools::completions::tests::prefix_from_partial_identifier ... ok
[INFO] [stdout] test tools::completions::tests::completions_returns_sorted_items ... ok
[INFO] [stdout] test tools::completions::tests::prefix_line_out_of_range ... ok
[INFO] [stdout] test tools::completions::tests::completions_with_dot_trigger ... ok
[INFO] [stdout] test tools::completions::tests::sort_prefix_then_contains_then_other ... ok
[INFO] [stdout] test tools::completions::tests::completions_skips_items_without_label ... ok
[INFO] [stdout] test tools::declarations::tests::declaration_file_no_declaration ... ok
[INFO] [stdout] test tools::declarations::tests::declaration_file_missing_uri_returns_error ... ok
[INFO] [stdout] test tools::completions::tests::prefix_after_space ... ok
[INFO] [stdout] test tools::declarations::tests::declaration_file_symbol_not_found ... ok
[INFO] [stdout] test tools::declarations::tests::declaration_file_uses_uri_fallback ... ok
[INFO] [stdout] test tools::declarations::tests::declaration_file_returns_content ... ok
[INFO] [stdout] test tools::diagnostics::tests::build_stderr_detected_with_lake_setup ... ok
[INFO] [stdout] test tools::completions::tests::completions_respects_max_limit ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_declaration_not_found_returns_error ... ok
[INFO] [stdout] test tools::completions::tests::prefix_after_dot ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_with_declaration_name ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_interactive_mode_returns_raw ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_ranges_prefers_full_range ... ok
[INFO] [stdout] test tools::completions::tests::prefix_from_empty_content ... ok
[INFO] [stdout] test tools::code_actions::tests::extract_ranges_includes_multiline_diagnostic_spanning_target ... ok
[INFO] [stdout] test tools::completions::tests::sort_empty_prefix_alphabetical ... ok
[INFO] [stdout] test tools::diagnostics::tests::severity_name_maps_all_known_values ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_empty_file_returns_success ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_returns_items_from_lsp ... ok
[INFO] [stdout] test tools::diagnostics::tests::process_diagnostics_returns_filtered_items ... ok
[INFO] [stdout] test tools::diagnostics::tests::extract_deps_empty_for_normal_message ... ok
[INFO] [stdout] test tools::diagnostics::tests::build_stderr_not_detected_for_normal_message ... ok
[INFO] [stdout] test tools::diagnostics::tests::build_stderr_detected_with_error_pattern ... ok
[INFO] [stdout] test tools::goal::tests::strip_fences_partial_prefix_only ... ok
[INFO] [stdout] test tools::goal::tests::goal_column_out_of_range_returns_error ... ok
[INFO] [stdout] test tools::goal::tests::strip_fences_with_lean_block ... ok
[INFO] [stdout] test tools::goal::tests::goal_line_zero_returns_error ... ok
[INFO] [stdout] test tools::goal::tests::term_goal_line_out_of_range ... ok
[INFO] [stdout] test tools::goal::tests::goal_with_column_returns_goals ... ok
[INFO] [stdout] test tools::goal::tests::goal_line_out_of_range_returns_error ... ok
[INFO] [stdout] test tools::goal::tests::goal_without_column_returns_before_and_after ... ok
[INFO] [stdout] test tools::goal::tests::goal_with_column_empty_response_returns_empty_goals ... ok
[INFO] [stdout] test tools::hover::tests::char_offset_ascii ... ok
[INFO] [stdout] test tools::goal::tests::term_goal_with_explicit_column ... ok
[INFO] [stdout] test tools::hover::tests::converts_diagnostics_with_full_range ... ok
[INFO] [stdout] test tools::goal::tests::term_goal_none_response_returns_none_expected_type ... ok
[INFO] [stdout] test tools::goal::tests::term_goal_strips_markdown_fences ... ok
[INFO] [stdout] test tools::goal::tests::term_goal_returns_expected_type ... ok
[INFO] [stdout] test tools::hover::tests::converts_raw_diagnostics_to_models ... ok
[INFO] [stdout] test tools::hover::tests::extracts_hover_content_missing ... ok
[INFO] [stdout] test tools::hover::tests::extracts_hover_content_with_fences ... ok
[INFO] [stdout] test tools::hover::tests::extracts_symbol_no_range ... ok
[INFO] [stdout] test tools::hover::tests::diagnostic_zero_length_range_exact_match ... ok
[INFO] [stdout] test tools::hover::tests::extracts_symbol_out_of_bounds ... ok
[INFO] [stdout] test tools::hover::tests::diagnostic_no_range_does_not_intersect ... ok
[INFO] [stdout] test tools::goal::tests::strip_fences_no_fences ... ok
[INFO] [stdout] test tools::hover::tests::filters_diagnostics_at_position ... ok
[INFO] [stdout] test tools::hover::tests::filters_diagnostics_none_match ... ok
[INFO] [stdout] test tools::hover::tests::extracts_symbol_single_line ... ok
[INFO] [stdout] test tools::diagnostics::tests::process_diagnostics_severity_filtering ... ok
[INFO] [stdout] test tools::diagnostics::tests::extract_deps_from_build_stderr ... ok
[INFO] [stdout] test tools::hover::tests::hover_includes_diagnostics_at_position ... ok
[INFO] [stdout] test tools::hover::tests::hover_with_no_info_returns_error ... ok
[INFO] [stdout] test tools::hover::tests::no_fences_passthrough ... ok
[INFO] [stdout] test tools::hover::tests::strips_bare_fences ... ok
[INFO] [stdout] test tools::hover::tests::hover_strips_markdown_fences ... ok
[INFO] [stdout] test tools::hover::tests::strips_lean_fences ... ok
[INFO] [stdout] test tools::hover::tests::char_offset_beyond_len ... ok
[INFO] [stdout] test tools::diagnostics::tests::process_diagnostics_uses_full_range_if_present ... ok
[INFO] [stdout] test tools::multi_attempt::tests::filter_diagnostics_empty_input ... ok
[INFO] [stdout] test tools::hover::tests::hover_returns_symbol_and_info ... ok
[INFO] [stdout] test tools::multi_attempt::tests::column_out_of_range ... ok
[INFO] [stdout] test tools::multi_attempt::tests::empty_snippets_returns_empty ... ok
[INFO] [stdout] test tools::hover::tests::strips_multiple_fences ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_content_restored ... ok
[INFO] [stdout] test tools::multi_attempt::tests::line_out_of_range ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_explicit_column ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_diagnostics_outside_range_filtered ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_force_reopen_called ... ok
[INFO] [stdout] test tools::multi_attempt::tests::handle_multi_attempt_parallel_false_uses_lsp ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_multiple_snippets ... ok
[INFO] [stdout] test tools::multi_attempt::tests::handle_multi_attempt_dispatches_parallel ... ok
[INFO] [stdout] test tools::multi_attempt::tests::filter_diagnostics_keeps_intersecting ... ok
[INFO] [stdout] test tools::diagnostics::tests::process_diagnostics_handles_build_stderr_extraction ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_single_snippet_returns_goals ... ok
[INFO] [stdout] test tools::multi_attempt::tests::lsp_with_diagnostics_in_range ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_diagnostics_captured ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_context_region_error_not_false_positive ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_close_files_called ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_empty_snippets ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_diagnostics_outside_range_filtered ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_indentation_empty_base_code ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_line_out_of_range ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_multiple_snippets ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_open_file_error_propagates ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_temp_files_in_lake_mcp_dir ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_multiline_snippet_indented ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_single_snippet_returns_results ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_edit_multiline_snippet ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_edit_single_line_snippet ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_no_timeout_works_normally ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_edit_strips_trailing_newline ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_restore_edit_roundtrip_multiline_snippet ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_sorry_uses_target_indent ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_temp_files_cleaned_up ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_timed_out_not_in_normal_json ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_preserves_indentation_goal_column ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_restore_edit_roundtrip_no_trailing_newline ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_no_heartbeats_line_offset ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_restore_edit_multiline_snippet ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_restore_edit_single_line_snippet ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_trailing_newline_trimmed ... ok
[INFO] [stdout] test tools::multi_attempt::tests::repl_skipped_when_column_specified ... ok
[INFO] [stdout] test tools::multi_attempt::tests::repl_skipped_when_multiline_snippet ... ok
[INFO] [stdout] test tools::multi_attempt::tests::resolve_column_none_finds_first_non_ws ... ok
[INFO] [stdout] test tools::multi_attempt::tests::regression_parallel_cold_file_open ... ok
[INFO] [stdout] test tools::multi_attempt::tests::resolve_column_some_converts_to_0_indexed ... ok
[INFO] [stdout] test tools::multi_attempt::tests::prepare_restore_edit_roundtrip_with_trailing_newline ... ok
[INFO] [stdout] test tools::multi_attempt::tests::resolve_column_zero_errors ... ok
[INFO] [stdout] test tools::multi_attempt::tests::run_one_snippet_warm_error_returns_diagnostic ... ok
[INFO] [stdout] test tools::multi_attempt::tests::run_one_snippet_warm_restores_on_error ... ok
[INFO] [stdout] test tools::multi_attempt::tests::run_one_snippet_warm_restores_content ... ok
[INFO] [stdout] test tools::outline::tests::extract_imports_basic ... ok
[INFO] [stdout] test tools::multi_attempt::tests::to_diagnostic_messages_converts_correctly ... ok
[INFO] [stdout] test tools::outline::tests::extract_imports_empty_content ... ok
[INFO] [stdout] test tools::multi_attempt::tests::run_one_snippet_warm_returns_goals ... ok
[INFO] [stdout] test tools::multi_attempt::tests::to_diagnostic_messages_adjusts_line_numbers_with_context ... ok
[INFO] [stdout] test tools::outline::tests::outline_empty_file ... ok
[INFO] [stdout] test tools::outline::tests::extract_imports_with_comments_and_blanks ... ok
[INFO] [stdout] test tools::outline::tests::extract_imports_no_imports ... ok
[INFO] [stdout] test tools::multi_attempt::tests::to_diagnostic_messages_filters_context_lines ... ok
[INFO] [stdout] test tools::outline::tests::extract_imports_with_public ... ok
[INFO] [stdout] test tools::outline::tests::outline_max_declarations_no_truncation_when_within_limit ... ok
[INFO] [stdout] test tools::outline::tests::outline_max_declarations_truncation ... ok
[INFO] [stdout] test tools::outline::tests::outline_tag_detection_def ... ok
[INFO] [stdout] test tools::outline::tests::symbol_to_entry_missing_name_returns_none ... ok
[INFO] [stdout] test tools::outline::tests::outline_with_imports ... ok
[INFO] [stdout] test tools::outline::tests::outline_with_nested_namespaces ... ok
[INFO] [stdout] test tools::outline::tests::outline_tag_detection_theorem ... ok
[INFO] [stdout] test tools::outline::tests::symbol_to_entry_with_children ... ok
[INFO] [stdout] test tools::outline::tests::symbol_to_entry_missing_range_returns_none ... ok
[INFO] [stdout] test tools::outline::tests::outline_tag_detection_example ... ok
[INFO] [stdout] test tools::outline::tests::symbol_to_entry_basic ... ok
[INFO] [stdout] test tools::outline::tests::outline_tag_detection_namespace ... ok
[INFO] [stdout] test tools::outline::tests::symbol_to_entry_with_detail ... ok
[INFO] [stdout] test tools::outline::tests::tag_class ... ok
[INFO] [stdout] test tools::outline::tests::tag_def_for_function ... ok
[INFO] [stdout] test tools::outline::tests::tag_example ... ok
[INFO] [stdout] test tools::outline::tests::tag_example_prefixed ... ok
[INFO] [stdout] test tools::outline::tests::tag_namespace_from_namespace_kind ... ok
[INFO] [stdout] test tools::outline::tests::tag_namespace_from_module_kind ... ok
[INFO] [stdout] test tools::outline::tests::tag_struct_from_enum_kind ... ok
[INFO] [stdout] test tools::outline::tests::tag_def_for_method ... ok
[INFO] [stdout] test tools::outline::tests::tag_struct_from_struct_kind ... ok
[INFO] [stdout] test tools::outline::tests::tag_theorem_from_detail_keyword ... ok
[INFO] [stdout] test tools::outline::tests::tag_theorem_from_detail_with_forall ... ok
[INFO] [stdout] test tools::outline::tests::tag_theorem_from_detail_with_equality ... ok
[INFO] [stdout] test tools::profile::tests::build_proof_items_basic ... ok
[INFO] [stdout] test tools::profile::tests::build_proof_items_with_bullets ... ok
[INFO] [stdout] test tools::profile::tests::build_proof_items_skips_comments_and_blanks ... ok
[INFO] [stdout] test tools::profile::tests::extract_line_times_stops_at_value_depth ... ok
[INFO] [stdout] test tools::profile::tests::declaration_re_matches_theorem ... ok
[INFO] [stdout] test tools::profile::tests::declaration_re_no_match_on_comment ... ok
[INFO] [stdout] test tools::profile::tests::declaration_re_matches_private_lemma ... ok
[INFO] [stdout] test tools::profile::tests::declaration_re_matches_def ... ok
[INFO] [stdout] test tools::profile::tests::extract_line_times_async_proof ... ok
[INFO] [stdout] test tools::profile::tests::filter_categories_empty ... ok
[INFO] [stdout] test tools::profile::tests::filter_categories_basic ... ok
[INFO] [stdout] test tools::profile::tests::extract_line_times_skips_expected_type ... ok
[INFO] [stdout] test tools::profile::tests::extract_line_times_basic ... ok
[INFO] [stdout] test tools::profile::tests::filter_categories_rounds_values ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_no_stale_warning_when_oleans_fresh ... ok
[INFO] [stdout] test tools::profile::tests::extract_theorem_source_not_a_theorem ... ok
[INFO] [stdout] test tools::profile::tests::find_proof_start_ends_with_by ... ok
[INFO] [stdout] test tools::profile::tests::find_proof_start_inline ... ok
[INFO] [stdout] test tools::profile::tests::find_proof_start_not_found ... ok
[INFO] [stdout] test tools::profile::tests::find_theorem_end_multiple_theorems ... ok
[INFO] [stdout] test tools::profile::tests::find_theorem_end_single_theorem ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_includes_stale_warning_when_no_errors ... ok
[INFO] [stdout] test tools::profile::tests::match_line_bullet_match ... ok
[INFO] [stdout] test tools::profile::tests::match_line_exact_prefix ... ok
[INFO] [stdout] test tools::profile::tests::extract_theorem_source_basic ... ok
[INFO] [stdout] test tools::profile::tests::match_line_no_match ... ok
[INFO] [stdout] test tools::profile::tests::match_line_skips_used ... ok
[INFO] [stdout] test tools::diagnostics::tests::diagnostics_no_stale_warning_when_errors_present ... ok
[INFO] [stdout] test tools::profile::tests::extract_theorem_source_lemma ... ok
[INFO] [stdout] test tools::profile::tests::profile_result_construction ... ok
[INFO] [stdout] test tools::profile::tests::parse_output_cumulative_section ... ok
[INFO] [stdout] test tools::profile::tests::find_header_end_no_header ... ok
[INFO] [stdout] test tools::project_health::tests::count_lean_files_finds_lean_files ... ok
[INFO] [stdout] test tools::profile::tests::parse_output_empty ... ok
[INFO] [stdout] test tools::profile::tests::parse_output_no_traces_only_cumulative ... ok
[INFO] [stdout] test tools::profile::tests::end_to_end_parse_and_extract ... ok
[INFO] [stdout] test tools::project_health::tests::count_lean_files_empty_project ... ok
[INFO] [stdout] test tools::project_health::tests::find_sorries_no_matches ... ok
[INFO] [stdout] test tools::project_health::tests::find_sorries_in_subdirectories ... ok
[INFO] [stdout] test tools::project_health::tests::find_sorries_word_boundary ... ok
[INFO] [stdout] test tools::profile::tests::parse_output_full_trace ... ok
[INFO] [stdout] test tools::profile::tests::parse_output_trace_lines ... ok
[INFO] [stdout] test tools::project_health::tests::find_error_patterns_detects_check_failure ... ok
[INFO] [stdout] test tools::project_health::tests::find_sorries_detects_sorry ... ok
[INFO] [stdout] test tools::project_health::tests::find_error_patterns_no_matches ... ok
[INFO] [stdout] test tools::proof_diff::tests::proof_diff_line_out_of_range ... ok
[INFO] [stdout] test tools::proof_diff::tests::proof_diff_goal_solved ... ok
[INFO] [stdout] test tools::proof_diff::tests::proof_diff_detects_intro ... ok
[INFO] [stdout] test tools::profile::tests::find_header_end_simple_imports ... ok
[INFO] [stdout] test tools::project_health::tests::handle_project_health_no_lsp ... ok
[INFO] [stdout] test tools::project_health::tests::find_sorries_skips_comments ... ok
[INFO] [stdout] test tools::project_health::tests::find_sorries_multiple_files ... ok
[INFO] [stdout] test tools::proof_diff::tests::proof_diff_before_line_out_of_range ... ok
[INFO] [stdout] test tools::proof_diff::tests::proof_diff_with_explicit_columns ... ok
[INFO] [stdout] test tools::references::tests::references_ensures_elaboration_before_querying ... ok
[INFO] [stdout] test tools::proof_diff::tests::proof_diff_no_change ... ok
[INFO] [stdout] test tools::project_health::tests::handle_project_health_empty_project ... ok
[INFO] [stdout] test tools::references::tests::references_with_no_results_returns_empty_list ... ok
[INFO] [stdout] test tools::references::tests::references_handles_multiple_files ... ok
[INFO] [stdout] test tools::references::tests::references_returns_locations_with_1_indexed_positions ... ok
[INFO] [stdout] test tools::profile::tests::find_header_end_with_block_comment ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_calls_close_files ... ok
[INFO] [stdout] test tools::profile::tests::extract_theorem_source_private_def ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_success_no_errors ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_file_context_missing_file_returns_error ... ok
[INFO] [stdout] test tools::references::tests::references_skips_malformed_entries ... ok
[INFO] [stdout] test tools::run_code::tests::temp_files_in_lake_mcp_dir ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_with_file_context_prepends_content ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_without_file_context_unchanged ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_warnings_only_counts_as_success ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_cleans_up_temp_file ... ok
[INFO] [stdout] test tools::run_code::tests::run_code_with_errors ... ok
[INFO] [stdout] test tools::run_code::tests::to_diagnostic_messages_adjusts_line_numbers_with_context ... ok
[INFO] [stdout] test tools::run_code::tests::to_diagnostic_messages_converts_correctly ... ok
[INFO] [stdout] test tools::run_code::tests::to_diagnostic_messages_skips_missing_range ... ok
[INFO] [stdout] test tools::search::tests::extract_name_from_url_no_match ... ok
[INFO] [stdout] test tools::search::tests::extract_name_from_url_without_pattern ... ok
[INFO] [stdout] test tools::search::tests::join_dot_segments_from_array ... ok
[INFO] [stdout] test tools::search::tests::join_dot_segments_from_non_string ... ok
[INFO] [stdout] test tools::search::tests::extract_name_from_url_with_pattern_query ... ok
[INFO] [stdout] test tools::search::tests::join_dot_segments_from_string ... ok
[INFO] [stdout] test tools::search::tests::join_dot_segments_single_element ... ok
[INFO] [stdout] test tools::run_code::tests::to_diagnostic_messages_filters_context_lines ... ok
[INFO] [stdout] test tools::search::tests::fixture_loogle_parses_real_response ... ok
[INFO] [stdout] test tools::search::tests::fixture_leansearch_parses_real_response ... ok
[INFO] [stdout] test tools::search::tests::fixture_leanfinder_parses_real_response ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_fallback_top_level_array ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_filters_by_url_not_corpus ... ok
[INFO] [stdout] test tools::search::tests::fixture_ripgrep_jsonl_parses_match_lines ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_results_key_extraction ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_skips_non_pattern_urls ... ok
[INFO] [stdout] test tools::multi_attempt::tests::run_one_snippet_warm_timeout ... ok
[INFO] [stdout] test tools::profile::tests::find_header_end_with_open_and_namespace ... ok
[INFO] [stdout] test tools::search::tests::leansearch_name_dot_joined ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_timeout_returns_timed_out_result ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_fast_snippet_completes_slow_times_out ... ok
[INFO] [stdout] test tools::multi_attempt::tests::parallel_timeout_cleans_up_temp_files ... ok
[INFO] [stdout] test tools::search::tests::leansearch_type_non_string_serialized ... ok
[INFO] [stdout] test tools::search::tests::leansearch_type_as_raw_value ... ok
[INFO] [stdout] test tools::search::tests::hammer_premise_no_goals_returns_error ... ok
[INFO] [stdout] test tools::search::tests::leansearch_sends_user_agent_header ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_extracts_names_from_urls ... ok
[INFO] [stdout] test tools::search::tests::leansearch_invalid_json_response ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_handles_empty_response ... ok
[INFO] [stdout] test tools::search::tests::parse_leansearch_empty_results ... ok
[INFO] [stdout] test tools::search::tests::parse_loogle_empty_hits ... ok
[INFO] [stdout] test tools::search::tests::parse_premise_results_empty_array ... ok
[INFO] [stdout] test tools::search::tests::leansearch_handles_missing_results_key ... ok
[INFO] [stdout] test tools::search::tests::leansearch_returns_results ... ok
[INFO] [stdout] test tools::search::tests::parse_premise_results_with_strings ... ok
[INFO] [stdout] test tools::search::tests::parse_state_search_non_array ... ok
[INFO] [stdout] test tools::search::tests::state_search_no_goals_returns_error ... ok
[INFO] [stdout] test tools::search::tests::value_as_string_from_array ... ok
[INFO] [stdout] test tools::search::tests::value_as_string_from_non_string ... ok
[INFO] [stdout] test tools::search::tests::value_as_string_from_string ... ok
[INFO] [stdout] test tools::symbol_resolve::tests::search_symbols_deeply_nested ... ok
[INFO] [stdout] test tools::symbol_resolve::tests::search_symbols_empty_list ... ok
[INFO] [stdout] test tools::symbol_resolve::tests::search_symbols_finds_nested ... ok
[INFO] [stdout] test tools::symbol_resolve::tests::search_symbols_finds_top_level ... ok
[INFO] [stdout] test tools::symbol_resolve::tests::search_symbols_returns_none_when_missing ... ok
[INFO] [stdout] test tools::tests::prepend_max_heartbeats_adds_default ... ok
[INFO] [stdout] test tools::tests::prepend_max_heartbeats_disabled_with_zero ... ok
[INFO] [stdout] test tools::tests::prepend_max_heartbeats_skips_when_already_present ... ok
[INFO] [stdout] test tools::tests::prepend_max_heartbeats_uses_custom_env_value ... ok
[INFO] [stdout] test tools::verify::tests::check_axiom_errors_empty_input ... ok
[INFO] [stdout] test tools::verify::tests::check_axiom_errors_returns_joined_errors ... ok
[INFO] [stdout] test tools::verify::tests::check_axiom_errors_returns_none_on_no_errors ... ok
[INFO] [stdout] test tools::verify::tests::handle_verify_no_axioms ... ok
[INFO] [stdout] test tools::verify::tests::handle_verify_returns_axioms ... ok
[INFO] [stdout] test tools::verify::tests::handle_verify_with_errors_returns_axiom_check_failed ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_filters_to_mathlib4 ... ok
[INFO] [stdout] test tools::verify::tests::parse_axioms_empty_on_empty_input ... ok
[INFO] [stdout] test tools::verify::tests::parse_axioms_empty_on_no_match ... ok
[INFO] [stdout] test tools::verify::tests::parse_axioms_extracts_from_info_diag ... ok
[INFO] [stdout] test tools::search::tests::leansearch_http_error_status ... ok
[INFO] [stdout] test tools::search::tests::loogle_http_error_status ... ok
[INFO] [stdout] test tools::verify::tests::parse_axioms_ignores_non_info ... ok
[INFO] [stdout] test tools::verify::tests::parse_axioms_handles_multiline_message ... ok
[INFO] [stdout] test tools::search::tests::loogle_handles_error_response ... ok
[INFO] [stdout] test tools::verify::tests::scan_warnings_returns_empty_on_missing_file ... ok
[INFO] [stdout] test tools::search::tests::hammer_premise_http_error_status ... ok
[INFO] [stdout] test tools::search::tests::loogle_handles_no_hits ... ok
[INFO] [stdout] test tools::search::tests::hammer_premise_gets_goal_then_retrieves ... ok
[INFO] [stdout] test tools::widgets::tests::get_widget_source_handles_empty ... ok
[INFO] [stdout] test tools::search::tests::leansearch_handles_empty_response ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_sends_user_agent_header ... ok
[INFO] [stdout] test tools::search::tests::leanfinder_http_error_status ... ok
[INFO] [stdout] test tools::widgets::tests::get_widget_source_returns_data ... ok
[INFO] [stdout] test tools::widgets::tests::get_widgets_returns_data ... ok
[INFO] [stdout] test tools::widgets::tests::get_widgets_converts_position ... ok
[INFO] [stdout] test tools::widgets::tests::get_widget_source_passes_hash ... ok
[INFO] [stdout] test tools::widgets::tests::get_widgets_handles_empty ... ok
[INFO] [stdout] test tools::verify::tests::scan_warnings_empty_on_clean_file ... ok
[INFO] [stdout] test tools::search::tests::loogle_respects_num_results ... ok
[INFO] [stdout] test tools::verify::tests::handle_verify_with_source_scan ... ok
[INFO] [stdout] test tools::search::tests::loogle_sends_user_agent_header ... ok
[INFO] [stdout] test tools::search::tests::state_search_gets_goal_then_searches ... ok
[INFO] [stdout] test tools::verify::tests::scan_warnings_detects_all_13_patterns ... ok
[INFO] [stdout] test tools::verify::tests::warning_patterns_has_13_entries ... ok
[INFO] [stdout] test tools::search::tests::state_search_http_error_status ... ok
[INFO] [stdout] test tools::verify::tests::warning_patterns_all_compile ... ok
[INFO] [stdout] test tools::search::tests::loogle_returns_results ... ok
[INFO] [stdout] test tools::verify::tests::scan_warnings_detects_patterns ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 401 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.46s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_lean_mcp-298ae770883f1faa)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e/main.rs (/opt/rustwide/target/debug/deps/e2e-d973856745006453)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test stress::cold_start_time ... ignored
[INFO] [stdout] test stress::concurrent_tool_calls ... ignored
[INFO] [stdout] test stress::mixed_workload ... ignored
[INFO] [stdout] test stress::sequential_baseline ... ignored
[INFO] [stdout] test stress::sustained_load ... ignored
[INFO] [stdout] test integration::binary_local_search_with_project_path ... ok
[INFO] [stdout] test shutdown::server_exits_cleanly_without_initialize ... ok
[INFO] [stdout] test protocol::initialize_returns_server_info ... ok
[INFO] [stdout] test protocol::initialize_response_includes_instructions_with_key_sections ... ok
[INFO] [stdout] test integration::lsp_tool_without_client_returns_error ... ok
[INFO] [stdout] test integration::binary_smoke_local_search ... ok
[INFO] [stdout] test tools::lean_goal_returns_error_without_lsp_client ... ok
[INFO] [stdout] test integration::initialized_server_lists_search_tools ... ok
[INFO] [stdout] test tools::lean_build_returns_error_without_project_path ... ok
[INFO] [stdout] test protocol::ping_responds ... ok
[INFO] [stdout] test errors::unknown_json_rpc_method_returns_error_or_disconnects ... ok
[INFO] [stdout] test errors::call_tool_with_missing_required_params_returns_error ... ok
[INFO] [stdout] test shutdown::server_exits_cleanly_on_stdin_close ... ok
[INFO] [stdout] test errors::call_nonexistent_tool_returns_error ... ok
[INFO] [stdout] test tools::tools_list_returns_all_28_tools ... ok
[INFO] [stdout] test tools::every_tool_has_description_and_input_schema ... ok
[INFO] [stdout] test tools::tool_schemas_have_required_params ... ok
[INFO] [stdout] test errors::call_tool_with_wrong_param_types_returns_error ... ok
[INFO] [stdout] test tools::lean_profile_proof_returns_error_without_project_path ... ok
[INFO] [stdout] test integration::multiple_tool_calls_dont_crash ... ok
[INFO] [stderr]    Doc-tests lean_lsp_client
[INFO] [stdout] test tools::lsp_tools_return_error_without_client ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests lean_mcp_core
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test crates/lean-mcp-core/src/repl_pool.rs - repl_pool::ReplPool (line 60) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests lean_mcp_server
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8", kill_on_drop: false }`
[INFO] [stdout] b2e59c5cffd645272a0fee38c885c8b62425a2d3c4102e237a1c3ac62db225b8
