[INFO] cloning repository https://github.com/base58ed/rust-mcp-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/base58ed/rust-mcp-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbase58ed%2Frust-mcp-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbase58ed%2Frust-mcp-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9c31ee77208feb9da813cb90be210e3eb9b83c6e
[INFO] testing base58ed/rust-mcp-server against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbase58ed%2Frust-mcp-server" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/base58ed/rust-mcp-server
[INFO] finished tweaking git repo https://github.com/base58ed/rust-mcp-server
[INFO] tweaked toml for git repo https://github.com/base58ed/rust-mcp-server written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/base58ed/rust-mcp-server on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/base58ed/rust-mcp-server already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad
[INFO] running `Command { std: "docker" "start" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", 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" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", 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" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling aws-lc-rs v1.16.3
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling aws-lc-sys v0.40.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling dlv-list v0.5.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling ordered-multimap v0.7.3
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling metrics v0.24.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling sketches-ddsketch v0.3.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling arraydeque v0.5.1
[INFO] [stderr]    Compiling rmcp v0.13.0
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.18.1
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling yaml-rust2 v0.10.4
[INFO] [stderr]    Compiling metrics-util v0.20.1
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling serde-untagged v0.1.9
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling rust-ini v0.21.3
[INFO] [stderr]    Compiling retry-policies v0.5.1
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling pathdiff v0.2.3
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling rand_xoshiro v0.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling opentelemetry v0.31.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling tonic v0.14.5
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling tonic-prost v0.14.5
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling rmcp-macros v0.13.0
[INFO] [stderr]    Compiling ron v0.12.1
[INFO] [stderr]    Compiling sse-stream v0.2.2
[INFO] [stderr]    Compiling tracing-opentelemetry v0.32.1
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling config v0.15.22
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling reqwest-middleware v0.5.1
[INFO] [stderr]    Compiling reqwest-retry v0.9.1
[INFO] [stderr]    Compiling rust-mcp-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12m 22s
[INFO] running `Command { std: "docker" "inspect" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", 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" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling ron v0.12.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling metrics-util v0.20.1
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling config v0.15.22
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tracing-opentelemetry v0.32.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling tonic v0.14.5
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling metrics-exporter-prometheus v0.18.1
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling tonic-prost v0.14.5
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling reqwest-middleware v0.5.1
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.1
[INFO] [stderr]    Compiling reqwest-retry v0.9.1
[INFO] [stderr]    Compiling rmcp v0.13.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling rust-mcp-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6m 30s
[INFO] running `Command { std: "docker" "inspect" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", 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" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.47s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_mcp_server-9dad9b52c95099fc)
[INFO] [stdout] 
[INFO] [stdout] running 84 tests
[INFO] [stdout] test app::tests::parse_cors_origins_drops_invalid_entries ... ok
[INFO] [stdout] test app::tests::parse_cors_origins_drops_empty_entries ... ok
[INFO] [stdout] test app::tests::parse_cors_origins_empty_string_returns_empty ... ok
[INFO] [stdout] test app::tests::parse_cors_origins_trims_surrounding_whitespace ... ok
[INFO] [stdout] test app::tests::parse_cors_origins_whitespace_only_returns_empty ... ok
[INFO] [stdout] test app::tests::parse_cors_origins_valid_list ... ok
[INFO] [stdout] test common::circuit_breaker::tests::allows_requests_when_closed ... ok
[INFO] [stdout] test common::circuit_breaker::tests::call_propagates_service_error ... ok
[INFO] [stdout] test common::circuit_breaker::tests::call_rejects_when_open ... ok
[INFO] [stdout] test common::circuit_breaker::tests::call_returns_success_result ... ok
[INFO] [stdout] test common::circuit_breaker::tests::call_trips_circuit_after_repeated_failures ... ok
[INFO] [stdout] test common::circuit_breaker::tests::circuit_breaker_is_clone ... ok
[INFO] [stdout] test common::circuit_breaker::tests::circuit_state_display ... ok
[INFO] [stdout] test common::circuit_breaker::tests::circuit_breaker_error_display ... ok
[INFO] [stdout] test common::circuit_breaker::tests::concurrent_failures_trip_circuit ... ok
[INFO] [stdout] test common::circuit_breaker::tests::concurrent_mixed_requests ... ok
[INFO] [stdout] test common::circuit_breaker::tests::circuit_open_error_display ... ok
[INFO] [stdout] test common::circuit_breaker::tests::default_config_has_sensible_values ... ok
[INFO] [stdout] test common::circuit_breaker::tests::does_not_trip_below_volume_threshold ... ok
[INFO] [stdout] test common::circuit_breaker::tests::high_failure_ratio_config ... ok
[INFO] [stdout] test common::circuit_breaker::tests::low_failure_ratio_config ... ok
[INFO] [stdout] test common::circuit_breaker::tests::mixed_success_failure_eventually_trips ... ok
[INFO] [stdout] test common::circuit_breaker::tests::rejects_before_delay_expires ... ok
[INFO] [stdout] test common::circuit_breaker::tests::rejects_requests_when_open ... ok
[INFO] [stdout] test common::circuit_breaker::tests::concurrent_open_to_half_open_transition ... ok
[INFO] [stdout] test common::circuit_breaker::tests::concurrent_record_failure_and_success_in_half_open ... ok
[INFO] [stdout] test common::circuit_breaker::tests::concurrent_half_open_success_closes_exactly_once ... ok
[INFO] [stdout] test common::circuit_breaker::tests::half_open_requires_multiple_successes ... ok
[INFO] [stdout] test common::circuit_breaker::tests::limits_half_open_requests ... ok
[INFO] [stdout] test common::circuit_breaker::tests::single_request_threshold ... ok
[INFO] [stdout] test common::circuit_breaker::tests::recovers_after_delay_with_success ... ok
[INFO] [stdout] test common::circuit_breaker::tests::stays_closed_below_failure_ratio ... ok
[INFO] [stdout] test common::circuit_breaker::tests::stays_closed_with_all_successes ... ok
[INFO] [stdout] test common::circuit_breaker::tests::reopens_on_failure_in_half_open ... ok
[INFO] [stdout] test common::circuit_breaker::tests::trips_after_failure_threshold ... ok
[INFO] [stdout] test common::circuit_breaker::tests::trips_at_exact_failure_ratio ... ok
[INFO] [stdout] test common::trace_id::tests::test_format ... ok
[INFO] [stdout] test common::trace_id::tests::test_to_hex_into ... ok
[INFO] [stdout] test common::trace_id::tests::test_to_hex_into_max ... ok
[INFO] [stdout] test common::trace_id::tests::test_to_hex_into_zeros ... ok
[INFO] [stdout] test config::tests::validate_allows_disabled_auth_with_empty_keys ... ok
[INFO] [stdout] test config::tests::server_address_formats_correctly ... ok
[INFO] [stdout] test config::tests::validate_allows_out_of_range_failure_ratio_when_disabled ... ok
[INFO] [stdout] test config::tests::validate_accepts_good_config ... ok
[INFO] [stdout] test config::tests::auth_config_debug_redacts_keys ... ok
[INFO] [stdout] test common::trace_id::tests::test_thread_safety ... ok
[INFO] [stdout] test config::tests::validate_rejects_empty_key ... ok
[INFO] [stdout] test config::tests::validate_rejects_empty_otel_endpoint_when_enabled ... ok
[INFO] [stdout] test config::tests::validate_rejects_empty_url ... ok
[INFO] [stdout] test config::tests::validate_rejects_enabled_auth_with_empty_keys ... ok
[INFO] [stdout] test config::tests::validate_rejects_enabled_auth_with_empty_string_key ... ok
[INFO] [stdout] test config::tests::validate_rejects_inverted_retry_bounds ... ok
[INFO] [stdout] test config::tests::validate_rejects_out_of_range_failure_ratio ... ok
[INFO] [stdout] test config::tests::validate_rejects_unknown_log_format ... ok
[INFO] [stdout] test config::tests::validate_rejects_zero_shutdown_timeout ... ok
[INFO] [stdout] test config::tests::validate_rejects_zero_request_volume_threshold ... ok
[INFO] [stdout] test observability::auth::tests::disabled_passes_through_without_header ... ok
[INFO] [stdout] test observability::auth::tests::enabled_accepts_any_listed_key ... ok
[INFO] [stdout] test config::tests::validate_rejects_zero_timeout ... ok
[INFO] [stdout] test common::trace_id::tests::test_uniqueness ... ok
[INFO] [stdout] test observability::auth::tests::enabled_rejects_empty_header ... ok
[INFO] [stdout] test observability::auth::tests::enabled_accepts_valid_key ... ok
[INFO] [stdout] test observability::auth::tests::unauthorized_response_has_www_authenticate_header ... ok
[INFO] [stdout] test observability::auth::tests::enabled_rejects_unknown_key ... ok
[INFO] [stdout] test observability::auth::tests::enabled_rejects_missing_header ... ok
[INFO] [stdout] test config::tests::weather_timeout_converts_correctly ... ok
[INFO] [stdout] test observability::auth::tests::disabled_passes_through_with_any_header ... ok
[INFO] [stdout] test common::circuit_breaker::tests::starts_in_closed_state ... ok
[INFO] [stdout] test tool::weather::tests::get_current_weather_too_long_city_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::get_forecast_days_above_max_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::get_current_weather_empty_city_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::get_forecast_days_zero_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::get_current_weather_fahrenheit ... ok
[INFO] [stdout] test tool::weather::tests::get_current_weather_success ... ok
[INFO] [stdout] test tool::weather::tests::get_current_weather_api_error ... ok
[INFO] [stdout] test tool::weather::tests::get_forecast_too_long_city_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::search_locations_too_long_query_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::search_locations_empty_query_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::get_forecast_empty_city_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::search_locations_success ... ok
[INFO] [stdout] test tool::weather::tests::get_forecast_success ... ok
[INFO] [stdout] test tool::weather::tests::search_locations_whitespace_only_returns_validation_error ... ok
[INFO] [stdout] test tool::weather::tests::search_locations_short_query_returns_validation_error ... ok
[INFO] [stdout] test common::circuit_breaker::tests::rapid_trip_and_recover_cycle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_mcp_server-5ed08bd63a7ddd0b)
[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/app_tests.rs (/opt/rustwide/target/debug/deps/app_tests-4d8477483500787e)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test app_address_formats_host_and_port ... ok
[INFO] [stdout] test auth_enabled_accepts_valid_key ... ok
[INFO] [stdout] test auth_disabled_allows_request_without_header ... ok
[INFO] [stdout] test auth_enabled_rejects_wrong_key ... ok
[INFO] [stdout] test auth_enabled_rejects_request_without_header ... ok
[INFO] [stdout] test app_new_succeeds_with_valid_config ... ok
[INFO] [stdout] test otel_guard_is_droppable ... ok
[INFO] [stdout] test init_observability_succeeds_with_otel_disabled ... ok
[INFO] [stdout] test router_adds_correlation_id_header_to_response ... ok
[INFO] [stdout] test app_shutdown_timeout_returns_configured_value ... ok
[INFO] [stdout] test router_health_endpoint_returns_ok ... ok
[INFO] [stdout] test router_mcp_endpoint_accepts_post ... ok
[INFO] [stdout] test app_shutdown_timeout_zero ... ok
[INFO] [stdout] test router_preserves_provided_correlation_id ... ok
[INFO] [stdout] test body_limit_accepts_small_payload ... ok
[INFO] [stdout] test body_limit_rejects_oversized_payload ... ok
[INFO] [stdout] test router_live_endpoint_returns_ok ... ok
[INFO] [stdout] test router_single_origin_cors ... ok
[INFO] [stdout] test router_nonexistent_route_returns_404 ... ok
[INFO] [stdout] test router_specific_cors_preflight_with_listed_origin ... ok
[INFO] [stdout] test router_metrics_endpoint_returns_ok ... ok
[INFO] [stdout] test router_specific_cors_rejects_unlisted_origin ... ok
[INFO] [stdout] test router_specific_cors_allows_listed_origin ... ok
[INFO] [stdout] test router_specific_cors_with_whitespace_in_list ... ok
[INFO] [stdout] test router_startup_endpoint_returns_ok ... ok
[INFO] [stdout] test router_wildcard_cors_allows_any_origin ... ok
[INFO] [stdout] test router_wildcard_cors_preflight_allows_methods ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/circuit_breaker_integration_tests.rs (/opt/rustwide/target/debug/deps/circuit_breaker_integration_tests-ac541fbfb9083571)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test breaker_trips_and_short_circuits_subsequent_calls ... ok
[INFO] [stdout] test breaker_closes_after_successful_probe ... ok
[INFO] [stdout] test breaker_transitions_to_half_open_after_delay ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/client_tests.rs (/opt/rustwide/target/debug/deps/client_tests-670bf27928b4f8fd)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test get_current_weather_malformed_json_returns_error ... ok
[INFO] [stdout] test get_current_weather_empty_body_returns_error ... ok
[INFO] [stdout] test get_current_weather_403_returns_error ... ok
[INFO] [stdout] test get_current_weather_500_returns_error ... ok
[INFO] [stdout] test error_400_includes_body_in_error_message ... ok
[INFO] [stdout] test error_500_includes_body_in_error_message ... ok
[INFO] [stdout] test error_body_is_truncated_when_too_long ... ok
[INFO] [stdout] test get_current_weather_success ... ok
[INFO] [stdout] test get_forecast_malformed_json_returns_error ... ok
[INFO] [stdout] test get_current_weather_not_found ... ok
[INFO] [stdout] test get_current_weather_partial_json_returns_error ... ok
[INFO] [stdout] test get_current_weather_parses_all_fields ... ok
[INFO] [stdout] test get_current_weather_401_returns_error ... ok
[INFO] [stdout] test get_forecast_with_min_days ... ok
[INFO] [stdout] test health_check_success ... ok
[INFO] [stdout] test get_forecast_with_max_days ... ok
[INFO] [stdout] test new_rejects_empty_key ... ok
[INFO] [stdout] test new_rejects_empty_url ... ok
[INFO] [stdout] test new_rejects_whitespace_key ... ok
[INFO] [stdout] test new_rejects_whitespace_url ... ok
[INFO] [stdout] test health_check_returns_positive_latency ... ok
[INFO] [stdout] test get_forecast_success ... ok
[INFO] [stdout] test outbound_request_uses_configured_key ... ok
[INFO] [stdout] test health_check_with_slow_response ... ok
[INFO] [stdout] test search_locations_empty_array_returns_ok ... ok
[INFO] [stdout] test new_accepts_valid_config ... ok
[INFO] [stdout] test search_locations_parses_all_fields ... ok
[INFO] [stdout] test get_current_weather_unicode_city ... ok
[INFO] [stdout] test get_forecast_parses_all_day_fields ... ok
[INFO] [stdout] test health_check_failure ... ok
[INFO] [stdout] test search_locations_malformed_json_returns_error ... ok
[INFO] [stdout] test search_locations_success ... ok
[INFO] [stdout] test search_locations_unicode_query ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_load_tests.rs (/opt/rustwide/target/debug/deps/config_load_tests-ee18ba93225d56b5)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test load_layers_profile_over_default ... ok
[INFO] [stdout] test load_missing_profile_toml_is_not_fatal ... ok
[INFO] [stdout] test load_reads_default_toml ... ok
[INFO] [stdout] test load_fails_validation_on_bad_default_toml ... ok
[INFO] [stdout] test load_weather_api_key_env_var_overrides_toml ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_tests.rs (/opt/rustwide/target/debug/deps/config_tests-f7318cdbf538f557)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test circuit_breaker_settings_delay_zero ... ok
[INFO] [stdout] test circuit_breaker_settings_to_breaker_config ... ok
[INFO] [stdout] test circuit_breaker_settings_to_breaker_config_preserves_zero_threshold ... ok
[INFO] [stdout] test circuit_breaker_settings_delay_conversion ... ok
[INFO] [stdout] test observability_config_empty_log_format ... ok
[INFO] [stdout] test observability_config_is_json_format_case_insensitive ... ok
[INFO] [stdout] test observability_config_is_json_format_false_for_pretty ... ok
[INFO] [stdout] test observability_config_is_json_format_false_for_text ... ok
[INFO] [stdout] test observability_config_is_json_format_true ... ok
[INFO] [stdout] test observability_config_whitespace_log_format ... ok
[INFO] [stdout] test server_config_address_with_ipv4 ... ok
[INFO] [stdout] test server_config_address_with_wildcard ... ok
[INFO] [stdout] test server_config_port_zero ... ok
[INFO] [stdout] test shutdown_config_large_timeout ... ok
[INFO] [stdout] test shutdown_config_timeout_conversion ... ok
[INFO] [stdout] test server_config_max_port ... ok
[INFO] [stdout] test weather_config_debug_redacts_api_key ... ok
[INFO] [stdout] test weather_config_large_timeout ... ok
[INFO] [stdout] test weather_config_retry_max_wait_conversion ... ok
[INFO] [stdout] test circuit_breaker_settings_default_values ... ok
[INFO] [stdout] test server_config_empty_host ... ok
[INFO] [stdout] test weather_config_retry_min_wait_conversion ... ok
[INFO] [stdout] test weather_config_timeout_conversion ... ok
[INFO] [stdout] test weather_config_zero_timeout ... ok
[INFO] [stdout] test observability_config_json_exact_match ... ok
[INFO] [stdout] test observability_config_non_json_formats ... ok
[INFO] [stdout] test shutdown_config_zero_timeout ... ok
[INFO] [stdout] test server_config_address_with_ipv6 ... ok
[INFO] [stdout] test server_config_address_with_localhost ... ok
[INFO] [stdout] test weather_config_retry_min_greater_than_max ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/correlation_tests.rs (/opt/rustwide/target/debug/deps/correlation_tests-f2940da3555ec2ec)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test correlation_layer_is_clone ... ok
[INFO] [stdout] test middleware_handles_special_chars_correlation_id ... ok
[INFO] [stdout] test middleware_accepts_max_length_correlation_id ... ok
[INFO] [stdout] test middleware_handles_numeric_correlation_id ... ok
[INFO] [stdout] test middleware_generates_correlation_id_when_missing ... ok
[INFO] [stdout] test middleware_generates_unique_ids_per_request ... ok
[INFO] [stdout] test middleware_handles_empty_correlation_id ... ok
[INFO] [stdout] test middleware_rejects_invalid_chars_in_correlation_id ... ok
[INFO] [stdout] test middleware_rejects_whitespace_only_correlation_id ... ok
[INFO] [stdout] test middleware_case_sensitive_header_name ... ok
[INFO] [stdout] test middleware_preserves_provided_correlation_id ... ok
[INFO] [stdout] test middleware_rejects_too_long_correlation_id ... ok
[INFO] [stdout] test middleware_handles_uuid_format_correlation_id ... ok
[INFO] [stdout] test middleware_generated_ids_are_16_hex_chars ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cors_tests.rs (/opt/rustwide/target/debug/deps/cors_tests-3efdbf53d1cada67)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test cors_allows_authorization_header ... ok
[INFO] [stdout] test cors_actual_request_with_custom_header ... ok
[INFO] [stdout] test cors_allows_https_origin ... ok
[INFO] [stdout] test cors_allows_any_origin ... ok
[INFO] [stdout] test cors_allows_content_type_header ... ok
[INFO] [stdout] test cors_allows_get_method ... ok
[INFO] [stdout] test cors_allows_localhost_origin ... ok
[INFO] [stdout] test cors_allows_ip_address_origin ... ok
[INFO] [stdout] test cors_allows_port_in_origin ... ok
[INFO] [stdout] test cors_allows_multiple_custom_headers ... ok
[INFO] [stdout] test cors_claude_desktop_scenario ... ok
[INFO] [stdout] test cors_allows_subdomain_origin ... ok
[INFO] [stdout] test cors_browser_json_post_workflow ... ok
[INFO] [stdout] test cors_allows_post_method ... ok
[INFO] [stdout] test cors_mcp_client_scenario ... ok
[INFO] [stdout] test cors_method_not_allowed_still_has_cors_headers ... ok
[INFO] [stdout] test cors_handles_preflight_options ... ok
[INFO] [stdout] test cors_allows_x_correlation_id_header ... ok
[INFO] [stdout] test cors_non_existent_route_returns_404 ... ok
[INFO] [stdout] test cors_works_without_origin_header ... ok
[INFO] [stdout] test cors_preflight_response_has_correct_status ... ok
[INFO] [stdout] test cors_preflight_for_get_method ... ok
[INFO] [stdout] test cors_preflight_includes_allow_methods ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/health_tests.rs (/opt/rustwide/target/debug/deps/health_tests-9430bc1aa882b67d)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test live_endpoint_returns_ok ... ok
[INFO] [stdout] test health_endpoint_returns_up ... ok
[INFO] [stdout] test startup_endpoint_returns_ok ... ok
[INFO] [stdout] test ready_endpoint_returns_up_when_api_healthy ... ok
[INFO] [stdout] test ready_endpoint_returns_down_when_api_unhealthy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-b18d4772ca9f9c46)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test prompt_all_prompts_have_descriptions ... ok
[INFO] [stdout] test prompt_debug_help_with_error ... ok
[INFO] [stdout] test prompt_debug_help_without_error ... ok
[INFO] [stdout] test prompt_code_review_includes_code_in_output ... ok
[INFO] [stdout] test prompt_explain_code_beginner_audience ... ok
[INFO] [stdout] test prompt_explain_code_default_audience ... ok
[INFO] [stdout] test prompt_code_review_has_required_args ... ok
[INFO] [stdout] test prompt_explain_code_expert_audience ... ok
[INFO] [stdout] test prompt_explain_code_with_all_args ... ok
[INFO] [stdout] test prompt_explain_code_has_optional_audience ... ok
[INFO] [stdout] test prompt_with_unicode_code ... ok
[INFO] [stdout] test prompt_with_missing_language_uses_unknown ... ok
[INFO] [stdout] test prompt_provider_lists_all_prompts ... ok
[INFO] [stdout] test prompt_write_tests_with_framework ... ok
[INFO] [stdout] test prompt_write_tests_without_framework ... ok
[INFO] [stdout] test resource_provider_all_resources_have_metadata ... ok
[INFO] [stdout] test resource_api_endpoints_contains_valid_json ... ok
[INFO] [stdout] test resource_provider_reads_server_info ... ok
[INFO] [stdout] test resource_provider_lists_all_resources ... ok
[INFO] [stdout] test resource_provider_returns_none_for_unknown_uri ... ok
[INFO] [stdout] test resource_server_info_contains_valid_json ... ok
[INFO] [stdout] test resource_server_info_port_varies ... ok
[INFO] [stdout] test resource_provider_returns_none_for_similar_but_wrong_uri ... ok
[INFO] [stdout] test resource_tools_docs_contains_all_tool_names ... ok
[INFO] [stdout] test trace_id_contains_no_uppercase ... ok
[INFO] [stdout] test trace_id_has_correct_format ... ok
[INFO] [stdout] test trace_ids_are_all_unique ... ok
[INFO] [stdout] test prompt_provider_returns_code_review_prompt ... ok
[INFO] [stdout] test prompt_provider_returns_none_for_unknown_prompt ... ok
[INFO] [stdout] test trace_id_generation_is_unique ... ok
[INFO] [stdout] test prompt_with_empty_code_still_returns ... ok
[INFO] [stdout] test forecast_result_conversion ... ok
[INFO] [stdout] test weather_result_celsius_conversion ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/metrics_tests.rs (/opt/rustwide/target/debug/deps/metrics_tests-fdd1586794c3f503)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test metrics_default_creates_instance ... ok
[INFO] [stdout] test metrics_is_clone ... ok
[INFO] [stdout] test metrics_record_payload_bytes_does_not_panic ... ok
[INFO] [stdout] test metrics_record_tool_error_does_not_panic ... ok
[INFO] [stdout] test metrics_new_creates_instance ... ok
[INFO] [stdout] test metrics_record_payload_bytes_serializable_does_not_panic ... ok
[INFO] [stdout] test metrics_record_tool_duration_does_not_panic ... ok
[INFO] [stdout] test metrics_timed_async_returns_future_result ... ok
[INFO] [stdout] test metrics_timed_async_with_delay ... ok
[INFO] [stderr]      Running tests/model_tests.rs (/opt/rustwide/target/debug/deps/model_tests-9cd2c21f2b6ab0bc)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test forecast_result_celsius_uses_correct_fields ... ok
[INFO] [stdout] test forecast_result_preserves_metadata ... ok
[INFO] [stdout] test forecast_result_with_multiple_days ... ok
[INFO] [stdout] test forecast_result_with_empty_forecastday ... ok
[INFO] [stdout] test forecast_result_with_negative_temperatures ... ok
[INFO] [stdout] test location_result_from_response ... ok
[INFO] [stdout] test location_result_serializes_to_valid_json ... ok
[INFO] [stdout] test location_result_with_negative_coordinates ... ok
[INFO] [stdout] test location_result_with_zero_coordinates ... ok
[INFO] [stdout] test location_result_with_unicode_name ... ok
[INFO] [stdout] test temperature_unit_default_is_celsius ... ok
[INFO] [stdout] test temperature_unit_is_celsius ... ok
[INFO] [stdout] test temperature_unit_serde_round_trip ... ok
[INFO] [stdout] test temperature_unit_symbols ... ok
[INFO] [stdout] test weather_result_celsius_uses_correct_fields ... ok
[INFO] [stdout] test weather_result_fahrenheit_uses_correct_fields ... ok
[INFO] [stdout] test weather_result_default_unit_is_celsius ... ok
[INFO] [stdout] test weather_result_negative_temperatures ... ok
[INFO] [stdout] test temperature_unit_unknown_string_returns_error ... ok
[INFO] [stdout] test temperature_unit_deserialize_case_insensitive ... ok
[INFO] [stdout] test weather_result_preserves_city_and_country ... ok
[INFO] [stdout] test forecast_result_serializes_to_valid_json ... ok
[INFO] [stdout] test weather_result_preserves_wind_direction ... ok
[INFO] [stdout] test weather_result_serializes_to_valid_json ... ok
[INFO] [stdout] test weather_result_very_high_temperature ... ok
[INFO] [stdout] test forecast_result_fahrenheit_uses_correct_fields ... ok
[INFO] [stdout] test weather_result_preserves_local_time ... ok
[INFO] [stdout] test weather_result_preserves_uv_index ... ok
[INFO] [stdout] test weather_result_zero_temperature ... ok
[INFO] [stdout] test weather_result_preserves_condition_text ... ok
[INFO] [stdout] test weather_result_preserves_humidity ... ok
[INFO] [stdout] test weather_result_with_unicode_serializes_correctly ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/proptest_tests.rs (/opt/rustwide/target/debug/deps/proptest_tests-533ed5515d6a5a48)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test days_clamping_always_produces_valid_range ... ok
[INFO] [stdout] test json_invariants::failure_always_serializes_to_valid_json ... ok
[INFO] [stdout] test json_invariants::tool_result_error_always_valid_json ... ok
[INFO] [stdout] test json_invariants::tool_result_ok_string_always_valid_json ... ok
[INFO] [stdout] test tool_result_json_is_valid ... ok
[INFO] [stdout] test json_invariants::failure_with_special_chars_serializes_safely ... ok
[INFO] [stdout] test tool_result_ok_always_has_success_true ... ok
[INFO] [stdout] test trace_id_always_16_hex_chars ... ok
[INFO] [stdout] test failure_preserves_code_and_message ... ok
[INFO] [stdout] test trace_ids_are_monotonically_increasing ... ok
[INFO] [stdout] test failure_with_cause_preserves_all_fields ... ok
[INFO] [stdout] test tool_result_error_always_has_success_false ... ok
[INFO] [stdout] test validation_properties::city_name_accepts_valid_lengths ... ok
[INFO] [stdout] test validation_properties::city_name_trims_whitespace ... ok
[INFO] [stdout] test weather_conversion::celsius_conversion_uses_celsius_values ... ok
[INFO] [stdout] test weather_conversion::fahrenheit_conversion_uses_fahrenheit_values ... ok
[INFO] [stdout] test validation_properties::forecast_days_accepts_only_in_range ... ok
[INFO] [stdout] test validation_properties::city_name_rejects_empty_after_trim ... ok
[INFO] [stdout] test validation_properties::search_query_accepts_2_plus_chars ... ok
[INFO] [stdout] test validation_properties::search_query_rejects_single_char_after_trim ... ok
[INFO] [stdout] test validation_properties::city_name_rejects_over_200_chars ... ok
[INFO] [stdout] test circuit_breaker_properties::circuit_breaker_allows_when_closed ... ok
[INFO] [stderr]      Running tests/shutdown_sigterm_tests.rs (/opt/rustwide/target/debug/deps/shutdown_sigterm_tests-6c67e384b12bcd9a)
[INFO] [stdout] test circuit_breaker_properties::circuit_breaker_always_starts_closed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::shutdown_signal_completes_on_sigterm ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test shutdown_signal_completes_on_sigint ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test failure_api_error_creates_correct_code ... ok
[INFO] [stdout] test failure_chained_with_cause_overwrites_previous ... ok
[INFO] [stdout] test failure_display_all_factory_methods ... ok
[INFO] [stdout] test failure_display_formats_correctly ... ok
[INFO] [stdout] test failure_internal_creates_correct_code ... ok
[INFO] [stdout] test failure_new_with_custom_code ... ok
[INFO] [stdout] test failure_implements_error_trait ... ok
[INFO] [stdout] test failure_not_found_creates_correct_code ... ok
[INFO] [stdout] test failure_serializes_empty_strings ... ok
[INFO] [stdout] test failure_serializes_json_special_chars_correctly ... ok
[INFO] [stdout] test failure_serializes_unicode_correctly ... ok
[INFO] [stdout] test failure_serializes_with_cause ... ok
[INFO] [stdout] test failure_timeout_creates_correct_code ... ok
[INFO] [stdout] test failure_serializes_without_cause ... ok
[INFO] [stdout] test failure_validation_creates_correct_code ... ok
[INFO] [stdout] test failure_with_backslashes_in_cause ... ok
[INFO] [stdout] test failure_with_cause_adds_cause ... ok
[INFO] [stdout] test failure_with_cause_preserves_original_fields ... ok
[INFO] [stdout] test failure_with_special_json_chars_in_message ... ok
[INFO] [stdout] test failure_with_newlines_in_message ... ok
[INFO] [stdout] test failure_with_unicode_message ... ok
[INFO] [stdout] test tool_result_error_with_json_special_chars ... ok
[INFO] [stdout] test tool_result_error_with_unicode_message ... ok
[INFO] [stdout] test tool_result_from_failure_preserves_all_fields ... ok
[INFO] [stdout] test tool_result_json_with_string_containing_special_escapes ... ok
[INFO] [stdout] test tool_result_ok_with_boolean ... ok
[INFO] [stdout] test tool_result_ok_with_emoji_data ... ok
[INFO] [stdout] test tool_result_ok_with_empty_array ... ok
[INFO] [stdout] test tool_result_ok_serializes_correctly ... ok
[INFO] [stdout] test tool_result_from_anyhow_creates_internal_error ... ok
[INFO] [stdout] test tool_result_ok_with_float_precision ... ok
[INFO] [stdout] test tool_result_ok_with_empty_string_data ... ok
[INFO] [stdout] test tool_result_from_anyhow_with_context ... ok
[INFO] [stdout] test tool_result_ok_with_large_number ... ok
[INFO] [stdout] test tool_result_ok_with_nested_json ... ok
[INFO] [stdout] test tool_result_error_serializes_correctly ... ok
[INFO] [stdout] test tool_result_ok_with_null_json_value ... ok
[INFO] [stderr]      Running tests/shutdown_tests.rs (/opt/rustwide/target/debug/deps/shutdown_tests-dbc4ee679b44444c)
[INFO] [stderr]      Running tests/tool_tests.rs (/opt/rustwide/target/debug/deps/tool_tests-8e4ebc2142d942df)
[INFO] [stdout] test failure_display_with_cause_does_not_include_cause ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test init_tracing_json_format_without_otel ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test init_tracing_pretty_format_without_otel ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/tracing_json_tests.rs (/opt/rustwide/target/debug/deps/tracing_json_tests-65a95b970c0e2b52)
[INFO] [stderr]      Running tests/tracing_pretty_tests.rs (/opt/rustwide/target/debug/deps/tracing_pretty_tests-b65bc6c7462e363c)
[INFO] [stderr]      Running tests/tracing_reinit_tests.rs (/opt/rustwide/target/debug/deps/tracing_reinit_tests-c7c0a327626f4752)
[INFO] [stdout] test init_tracing_twice_returns_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/validation_tests.rs (/opt/rustwide/target/debug/deps/validation_tests-03054cd7b14d7a20)
[INFO] [stdout] 
[INFO] [stdout] running 57 tests
[INFO] [stdout] test city_name_accepts_multi_word ... ok
[INFO] [stdout] test city_name_accepts_hyphenated ... ok
[INFO] [stdout] test city_name_accepts_period ... ok
[INFO] [stdout] test city_name_accepts_simple_ascii ... ok
[INFO] [stdout] test city_name_accepts_apostrophe ... ok
[INFO] [stdout] test city_name_accepts_unicode_accented ... ok
[INFO] [stdout] test city_name_accepts_unicode_at_exactly_200_bytes ... ok
[INFO] [stdout] test city_name_accepts_unicode_arabic ... ok
[INFO] [stdout] test city_name_accepts_unicode_chinese ... ok
[INFO] [stdout] test city_name_accepts_unicode_german ... ok
[INFO] [stdout] test city_name_accepts_unicode_japanese ... ok
[INFO] [stdout] test city_name_at_max_length_200 ... ok
[INFO] [stdout] test city_name_rejects_empty ... ok
[INFO] [stdout] test city_name_single_char_is_valid ... ok
[INFO] [stdout] test city_name_rejects_newline_only ... ok
[INFO] [stdout] test city_name_trims_leading_trailing_whitespace ... ok
[INFO] [stdout] test city_name_rejects_over_200_chars ... ok
[INFO] [stdout] test city_name_rejects_tab_only ... ok
[INFO] [stdout] test city_name_trims_newlines ... ok
[INFO] [stdout] test city_name_trims_tabs ... ok
[INFO] [stdout] test city_name_with_angle_brackets ... ok
[INFO] [stdout] test city_name_rejects_unicode_over_200_bytes_but_under_200_chars ... ok
[INFO] [stdout] test city_name_rejects_way_over_limit ... ok
[INFO] [stdout] test city_name_rejects_whitespace_only ... ok
[INFO] [stdout] test city_name_with_backslash ... ok
[INFO] [stdout] test city_name_with_comma ... ok
[INFO] [stdout] test city_name_with_double_quotes ... ok
[INFO] [stdout] test city_name_with_mixed_unicode_scripts ... ok
[INFO] [stdout] test city_name_with_emoji ... ok
[INFO] [stdout] test city_name_with_null_byte_in_string ... ok
[INFO] [stdout] test city_name_with_numbers ... ok
[INFO] [stdout] test city_name_with_parentheses ... ok
[INFO] [stdout] test city_name_with_sql_injection_attempt ... ok
[INFO] [stdout] test forecast_days_100_rejected ... ok
[INFO] [stdout] test city_name_with_slash ... ok
[INFO] [stdout] test forecast_days_all_valid_values ... ok
[INFO] [stdout] test forecast_days_eight_rejected ... ok
[INFO] [stdout] test forecast_days_error_message_mentions_range ... ok
[INFO] [stdout] test forecast_days_mid_range ... ok
[INFO] [stdout] test forecast_days_seven_accepted ... ok
[INFO] [stdout] test forecast_days_u32_max_rejected ... ok
[INFO] [stdout] test forecast_days_one_accepted ... ok
[INFO] [stdout] test forecast_days_zero_rejected ... ok
[INFO] [stdout] test search_query_accepts_at_max_length ... ok
[INFO] [stdout] test search_query_accepts_coordinates_format ... ok
[INFO] [stdout] test search_query_accepts_postal_code ... ok
[INFO] [stdout] test search_query_accepts_special_chars ... ok
[INFO] [stdout] test search_query_accepts_two_chars ... ok
[INFO] [stdout] test search_query_accepts_single_unicode_char_with_multibyte ... ok
[INFO] [stdout] test search_query_accepts_unicode ... ok
[INFO] [stdout] test search_query_rejects_empty ... ok
[INFO] [stdout] test search_query_rejects_over_200_chars ... ok
[INFO] [stdout] test search_query_rejects_single_char ... ok
[INFO] [stdout] test search_query_rejects_tab_only ... ok
[INFO] [stdout] test search_query_rejects_single_char_after_trim ... ok
[INFO] [stdout] test search_query_rejects_whitespace_only ... ok
[INFO] [stdout] test search_query_trims_whitespace ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rust_mcp_server
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 18) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.61s; merged doctests compilation took 1.59s
[INFO] running `Command { std: "docker" "inspect" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad", kill_on_drop: false }`
[INFO] [stdout] f1e7267af1d080326a629dde1a8fd66a9012c45c9f78f0782317631b314135ad
