[INFO] fetching crate rmcp-server-kit 1.3.2... [INFO] testing rmcp-server-kit-1.3.2 against beta-2026-04-21 for beta-1.96-2 [INFO] extracting crate rmcp-server-kit 1.3.2 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate rmcp-server-kit 1.3.2 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate rmcp-server-kit 1.3.2 [INFO] tweaked toml for crates.io crate rmcp-server-kit 1.3.2 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate rmcp-server-kit 1.3.2 on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rmcp-server-kit 1.3.2 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27 [INFO] running `Command { std: "docker" "start" "-a" "21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27", kill_on_drop: false }` [INFO] [stdout] 21507500be4eac3b56cfec238b4eb0addfb94b8a2ea37f8ca089deccabe5ed27 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06 [INFO] running `Command { std: "docker" "start" "-a" "1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling asn1-rs-derive v0.6.0 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling compression-core v0.4.31 [INFO] [stderr] Compiling tokio v1.52.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling oid-registry v0.8.1 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling compression-codecs v0.4.37 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rmcp v1.5.0 [INFO] [stderr] Compiling rusticata-macros v4.1.0 [INFO] [stderr] Compiling winnow v1.0.2 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling asn1-rs v0.7.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling sse-stream v0.2.2 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling spinning_top v0.3.0 [INFO] [stderr] Compiling nonzero_ext v0.3.0 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling web-time v1.1.0 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling humantime-serde v1.1.1 [INFO] [stderr] Compiling governor v0.10.4 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling rmcp-macros v1.5.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling secrecy v0.10.3 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling der-parser v10.0.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling async-compression v0.4.41 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling x509-parser v0.18.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.9 [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 rmcp-server-kit v1.3.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s [INFO] running `Command { std: "docker" "inspect" "1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06", kill_on_drop: false }` [INFO] [stdout] 1a563ae6e26db7543e92573a195b072fc85089f525e316e1ff402e497a704f06 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee [INFO] running `Command { std: "docker" "start" "-a" "7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee", kill_on_drop: false }` [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling const-oid v0.9.6 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling zerocopy-derive v0.8.48 [INFO] [stderr] Compiling tokio v1.52.1 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling num-bigint-dig v0.8.6 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling sse-stream v0.2.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling yasna v0.5.2 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling der v0.7.10 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling memory-stats v1.2.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling asn1-rs v0.7.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling rcgen v0.14.7 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling pkcs8 v0.10.2 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling pkcs1 v0.7.5 [INFO] [stderr] Compiling oid-registry v0.8.1 [INFO] [stderr] Compiling der-parser v10.0.0 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling x509-parser v0.18.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling async-compression v0.4.41 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling rmcp v1.5.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand v0.8.6 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling governor v0.10.4 [INFO] [stderr] Compiling proptest v1.11.0 [INFO] [stderr] Compiling rsa v0.9.10 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling axum v0.8.9 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling rmcp-server-kit v1.3.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 58s [INFO] running `Command { std: "docker" "inspect" "7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee", kill_on_drop: false }` [INFO] [stdout] 7ea02649a94737b136c0ce10292f8cea786d5ec0c7c5d3b42cf63691247ffcee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd [INFO] running `Command { std: "docker" "start" "-a" "5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.59s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rmcp_server_kit-8934dbeeac70c056) [INFO] [stdout] [INFO] [stdout] running 143 tests [INFO] [stdout] test auth::tests::extract_bearer_is_case_insensitive_per_rfc7235 ... ok [INFO] [stdout] test auth::tests::extract_bearer_rejects_other_schemes ... ok [INFO] [stdout] test auth::tests::auth_identity_debug_redacts_raw_token ... ok [INFO] [stdout] test auth::tests::api_key_entry_debug_redacts_hash ... ok [INFO] [stdout] test auth::tests::extract_bearer_tolerates_extra_separator_whitespace ... ok [INFO] [stdout] test auth::tests::extract_bearer_accepts_canonical_case ... ok [INFO] [stdout] test auth::tests::auth_identity_debug_marks_absent_secrets ... ok [INFO] [stdout] test auth::tests::extract_bearer_rejects_malformed ... ok [INFO] [stdout] test auth::tests::extract_mtls_identity_invalid_der ... ok [INFO] [stdout] test auth::tests::pre_auth_default_multiplier_is_10x ... ok [INFO] [stdout] test auth::tests::pre_auth_explicit_override_wins ... ok [INFO] [stdout] test auth::tests::extract_mtls_identity_from_cn ... ok [INFO] [stdout] test auth::tests::extract_mtls_identity_falls_back_to_san ... ok [INFO] [stdout] test auth::tests::rate_limit_semantics_failed_only ... ok [INFO] [stdout] test auth::tests::middleware_rate_limits ... ok [INFO] [stdout] test auth::tests::middleware_rejects_no_credentials ... ok [INFO] [stdout] test admin::tests::no_identity_gets_403 ... ok [INFO] [stdout] test admin::tests::wrong_role_gets_403 ... ok [INFO] [stdout] test admin::tests::keys_endpoint_omits_hash ... ok [INFO] [stdout] test admin::tests::status_returns_uptime ... ok [INFO] [stdout] test auth::tests::rate_limiter_allows_within_quota ... ok [INFO] [stdout] test admin::tests::rbac_summary_includes_role_list ... ok [INFO] [stdout] test auth::tests::rate_limiter_separate_ips ... ok [INFO] [stdout] test auth::tests::pre_auth_gate_does_not_throttle_mtls ... ok [INFO] [stdout] test config::tests::invalid_request_timeout_rejected ... ok [INFO] [stdout] test config::tests::invalid_shutdown_timeout_rejected ... ok [INFO] [stdout] test config::tests::invalid_log_level_rejected ... ok [INFO] [stdout] test config::tests::all_valid_log_levels_accepted ... ok [INFO] [stdout] test config::tests::both_log_formats_accepted ... ok [INFO] [stdout] test config::tests::observability_config_defaults ... ok [INFO] [stdout] test config::tests::server_config_defaults ... ok [INFO] [stdout] test config::tests::tls_cert_without_key_rejected ... ok [INFO] [stdout] test config::tests::tls_both_set_passes ... ok [INFO] [stdout] test config::tests::tls_key_without_cert_rejected ... ok [INFO] [stdout] test config::tests::invalid_log_format_rejected ... ok [INFO] [stdout] test bounded_limiter::tests::evicted_keys_get_fresh_quota ... ok [INFO] [stdout] test config::tests::server_config_deserialize_defaults ... ok [INFO] [stdout] test config::tests::valid_server_config_passes ... ok [INFO] [stdout] test config::tests::valid_observability_config_passes ... ok [INFO] [stdout] test config::tests::observability_config_deserialize_defaults ... ok [INFO] [stdout] test error::tests::display_preserves_message ... ok [INFO] [stdout] test error::tests::auth_error_returns_401 ... ok [INFO] [stdout] test error::tests::config_error_returns_500 ... ok [INFO] [stdout] test error::tests::rate_limited_error_returns_429 ... ok [INFO] [stdout] test error::tests::tls_error_returns_500 ... ok [INFO] [stderr] 2026-04-27T00:32:25.963+00:00  WARN rmcp_server_kit::rbac: RBAC denied user=alice-the-auditor role=viewer tool="resource_delete" host="-" [INFO] [stdout] test error::tests::startup_error_returns_500 ... ok [INFO] [stderr] 2026-04-27T00:32:25.965+00:00 ERROR rmcp_server_kit::error: internal error error=I/O error: gone [INFO] [stdout] test config::tests::zero_port_rejected ... ok [INFO] [stderr] 2026-04-27T00:32:25.976+00:00  WARN rmcp_server_kit::rbac: RBAC denied user=alice role=viewer tool="resource_delete" host="-" [INFO] [stdout] test rbac::tests::argument_allowed_no_allowlist ... ok [INFO] [stderr] 2026-04-27T00:32:25.976+00:00  WARN rmcp_server_kit::rbac: RBAC denied user=alice role=viewer tool="resource_delete" host="-" [INFO] [stdout] test rbac::tests::argument_allowed_with_allowlist ... ok [INFO] [stderr] 2026-04-27T00:32:25.976+00:00  WARN rmcp_server_kit::rbac: argument not in allowlist user=dev role=restricted-exec tool="resource_exec" argument="cmd" arg_hmac=bddb2112 [INFO] [stdout] test observability::tests::config_format_valid ... ok [INFO] [stderr] 2026-04-27T00:32:25.976+00:00  WARN rmcp_server_kit::rbac: argument not in allowlist user=dev role=restricted-exec tool="resource_exec" argument="cmd" arg_hmac=bddb2112 [INFO] [stdout] test rbac::tests::argument_denied_not_in_allowlist ... ok [INFO] [stderr] 2026-04-27T00:32:25.984+00:00  WARN rmcp_server_kit::tool_hooks: tool result exceeds max_result_bytes; replacing with structured error tool=replaced_tool size_bytes=8247 limit_bytes=256 [INFO] [stdout] test rbac::tests::argument_denied_unknown_role ... ok [INFO] [stderr] 2026-04-27T00:32:25.986+00:00  WARN rmcp_server_kit::tool_hooks: tool result exceeds max_result_bytes; replacing with structured error tool=whatever size_bytes=8247 limit_bytes=256 [INFO] [stdout] test rbac::tests::check_operation_allows_without_host ... ok [INFO] [stderr] 2026-04-27T00:32:25.986+00:00  WARN rmcp_server_kit::transport: rejected request: Origin not allowed origin="http://anything.com" method=GET path=/test allowed=[] [INFO] [stdout] test observability::tests::init_tracing_double_init_returns_err_not_panic ... ok [INFO] [stderr] 2026-04-27T00:32:25.992+00:00  WARN rmcp_server_kit::transport: rejected request: Origin not allowed origin="http://evil.com" method=GET path=/test allowed=["http://localhost:3000"] [INFO] [stdout] test rbac::tests::check_operation_unknown_role ... ok [INFO] [stdout] test rbac::tests::check_operation_disabled ... ok [INFO] [stdout] test rbac::tests::current_role_returns_none_outside_scope ... ok [INFO] [stdout] test rbac::tests::deny_overrides_allow ... ok [INFO] [stdout] test rbac::tests::deploy_allowed_on_matching_hosts ... ok [INFO] [stdout] test rbac::tests::deploy_denied_on_non_matching_host ... ok [INFO] [stdout] test rbac::tests::deny_path_uses_explicit_identity_not_task_local ... ok [INFO] [stdout] test rbac::tests::disabled_policy_allows_everything ... ok [INFO] [stdout] test rbac::tests::glob_exact_match ... ok [INFO] [stdout] test error::tests::rbac_error_returns_403 ... ok [INFO] [stdout] test rbac::tests::check_operation_deny_overrides ... ok [INFO] [stdout] test error::tests::io_error_returns_500 ... ok [INFO] [stdout] test rbac::tests::glob_star_middle ... ok [INFO] [stdout] test rbac::tests::glob_star_only ... ok [INFO] [stdout] test bounded_limiter::tests::active_over_quota_key_not_evicted ... ok [INFO] [stdout] test rbac::tests::current_identity_returns_none_outside_scope ... ok [INFO] [stdout] test rbac::tests::glob_multiple_stars ... ok [INFO] [stdout] test rbac::tests::host_visible_respects_globs ... ok [INFO] [stdout] test rbac::tests::host_visible_unknown_role ... ok [INFO] [stdout] test rbac::tests::host_patterns_returns_globs ... ok [INFO] [stdout] test rbac::tests::glob_star_prefix ... ok [INFO] [stdout] test rbac::tests::middleware_batch_all_allowed_passes ... ok [INFO] [stdout] test rbac::tests::middleware_allows_permitted_tool ... ok [INFO] [stdout] test rbac::tests::glob_star_suffix ... ok [INFO] [stdout] test rbac::tests::middleware_batch_with_denied_call_rejects_entire_batch ... ok [INFO] [stdout] test rbac::tests::middleware_denies_unpermitted_tool ... ok [INFO] [stdout] test rbac::tests::middleware_enforces_argument_allowlist ... ok [INFO] [stdout] test rbac::tests::middleware_denies_without_identity ... ok [INFO] [stdout] test rbac::tests::middleware_batch_mixed_allowed_and_denied_rejects ... ok [INFO] [stdout] test rbac::tests::middleware_disabled_policy_passes_everything ... ok [INFO] [stdout] test rbac::tests::ops_wildcard_allows_everything ... ok [INFO] [stdout] test rbac::tests::redact_with_salt_differs_across_salts ... ok [INFO] [stdout] test rbac::tests::redact_with_salt_distinguishes_values ... ok [INFO] [stdout] test rbac::tests::middleware_passes_non_tool_call_post ... ok [INFO] [stdout] test rbac::tests::policy_with_configured_salt_redacts_consistently ... ok [INFO] [stdout] test rbac::tests::middleware_passes_non_post ... ok [INFO] [stdout] test rbac::tests::viewer_allowed_read_ops ... ok [INFO] [stdout] test rbac::tests::redact_with_salt_is_deterministic_per_salt ... ok [INFO] [stdout] test rbac::tests::policy_without_configured_salt_uses_process_salt ... ok [INFO] [stdout] test rbac::tests::redact_arg_is_fast_enough ... ok [INFO] [stdout] test rbac::tests::unknown_role_denied ... ok [INFO] [stdout] test rbac::tests::viewer_denied_write_ops ... ok [INFO] [stdout] test ssrf::tests::cgnat_blocked ... ok [INFO] [stdout] test ssrf::tests::documentation_and_benchmarking_blocked ... ok [INFO] [stdout] test ssrf::tests::ipv4_mapped_v6_inherits_block ... ok [INFO] [stdout] test ssrf::tests::link_local_blocked_v4_v6 ... ok [INFO] [stdout] test ssrf::tests::rfc1918_blocked ... ok [INFO] [stdout] test ssrf::tests::http_gated_by_flag ... ok [INFO] [stdout] test ssrf::tests::https_always_allowed ... ok [INFO] [stdout] test ssrf::tests::other_schemes_rejected ... ok [INFO] [stdout] test ssrf::tests::cloud_metadata_blocked ... ok [INFO] [stdout] test ssrf::tests::loopback_blocked ... ok [INFO] [stdout] test ssrf::tests::unique_local_v6_blocked ... ok [INFO] [stdout] test ssrf::tests::public_ips_allowed ... ok [INFO] [stdout] test tool_hooks::tests::before_hook_deny_builds_error ... ok [INFO] [stdout] test tool_hooks::tests::replace_outcome_skips_inner_and_returns_payload ... ok [INFO] [stdout] test tool_hooks::tests::replace_outcome_subject_to_size_cap ... ok [INFO] [stdout] test transport::tests::derive_allowed_hosts_includes_bind_authority ... ok [INFO] [stdout] test transport::tests::derive_allowed_hosts_includes_public_host ... ok [INFO] [stdout] test transport::tests::empty_allowlist_passes_without_origin ... ok [INFO] [stdout] test tool_hooks::tests::size_cap_replaces_oversized_result ... ok [INFO] [stdout] test tool_hooks::tests::too_large_result_mentions_limit_and_actual ... ok [INFO] [stdout] test transport::tests::format_request_headers_redacts_sensitive_values ... ok [INFO] [stdout] test transport::tests::empty_allowlist_rejects_any_origin ... ok [INFO] [stdout] test tool_hooks::tests::after_hook_fires_exactly_once_via_spawn ... ok [INFO] [stdout] test transport::tests::healthz_returns_ok_json ... ok [INFO] [stdout] test transport::tests::no_origin_header_passes ... ok [INFO] [stdout] test transport::tests::readyz_returns_503_when_not_ready ... ok [INFO] [stdout] test transport::tests::readyz_returns_503_when_ready_missing ... ok [INFO] [stdout] test transport::tests::readyz_returns_ok_when_ready ... ok [INFO] [stdout] test transport::tests::origin_rejected_returns_403 ... ok [INFO] [stdout] test transport::tests::server_config_new_defaults ... ok [INFO] [stdout] test transport::tests::security_headers_set_on_response ... ok [INFO] [stdout] test transport::tests::concurrency_limit_layer_composes_and_serves ... ok [INFO] [stdout] test transport::tests::version_payload_contains_expected_fields ... ok [INFO] [stdout] test transport::tests::compression_layer_gzip_encodes_response ... ok [INFO] [stdout] test transport::tests::validate_consumes_and_proves ... ok [INFO] [stdout] test transport::tests::hsts_set_when_tls_enabled ... ok [INFO] [stdout] test transport::tests::origin_allowed_passes ... ok [INFO] [stdout] test bounded_limiter::tests::never_exceeds_max_tracked_keys ... ok [INFO] [stdout] test tool_hooks::tests::after_hook_panic_is_isolated_from_response_path ... ok [INFO] [stdout] test auth::tests::expired_key_rejected ... ok [INFO] [stderr] 2026-04-27T00:32:29.378+00:00  WARN rmcp_server_kit::auth: auth failed failure_class=invalid_credential [INFO] [stdout] test auth::tests::middleware_rejects_wrong_bearer ... ok [INFO] [stdout] test auth::tests::future_expiry_accepted ... ok [INFO] [stdout] test auth::tests::wrong_token_rejected ... ok [INFO] [stderr] 2026-04-27T00:32:29.729+00:00  INFO rmcp_server_kit::auth: bearer token authenticated name=test-key role=ops [INFO] [stdout] test auth::tests::middleware_accepts_valid_bearer ... ok [INFO] [stdout] test auth::tests::generate_and_verify_api_key ... ok [INFO] [stdout] test auth::tests::multiple_keys_first_match_wins ... ok [INFO] [stderr] 2026-04-27T00:32:30.498+00:00  WARN rmcp_server_kit::auth: auth failed failure_class=invalid_credential [INFO] [stderr] 2026-04-27T00:32:30.499+00:00  WARN rmcp_server_kit::auth: auth rate limited by pre-auth gate (request rejected before credential verification) ip=10.0.0.10 [INFO] [stdout] test auth::tests::pre_auth_gate_blocks_before_argon2_verification ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 143 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.85s [INFO] [stdout] [INFO] [stderr] Running tests/crl_discovery_ratelimit.rs (/opt/rustwide/target/debug/deps/crl_discovery_ratelimit-d2abaf248bf8c4a3) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test rate_limited_url_remains_retriable_on_next_handshake ... ok [INFO] [stdout] test discovery_rate_limit_allows_first_burst_within_quota ... ok [INFO] [stdout] test discovery_rate_limit_drops_excess ... ok [INFO] [stdout] test note_discovered_urls_dedup_does_not_consume_limiter_quota ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stderr] Running tests/crl_map_bounds.rs (/opt/rustwide/target/debug/deps/crl_map_bounds-384a2b32355fef6e) [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/crl_ssrf.rs (/opt/rustwide/target/debug/deps/crl_ssrf-8ecce64945e9b420) [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test malformed_cert_der_returns_empty ... ok [INFO] [stdout] test cert_without_cdp_returns_empty ... ok [INFO] [stdout] test extract_cdp_urls_drops_malformed ... ok [INFO] [stdout] test extract_cdp_urls_handles_uppercase_scheme ... ok [INFO] [stdout] test extract_cdp_urls_filters_http_when_disallowed ... ok [INFO] [stdout] test extract_cdp_urls_drops_disallowed_schemes ... ok [INFO] [stdout] test body_cap_rejects_oversized_response ... ok [INFO] [stdout] test hardened_client_refuses_redirect ... ok [INFO] [stdout] test hardened_client_surfaces_5xx_as_error ... ok [INFO] [stdout] test body_cap_allows_undersized_response ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stderr] Running tests/docs_citations.rs (/opt/rustwide/target/debug/deps/docs_citations-4e346577cf34c238) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test architecture_citations_resolve ... 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] [stderr] Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-7ae92eff82cd4d41) [INFO] [stdout] [INFO] [stdout] running 26 tests [INFO] [stdout] test builder_matches_direct_field_assignment ... ok [INFO] [stdout] test hook_outcome_variants_are_constructible ... ok [INFO] [stdout] test auth_rate_limit_triggers ... ok [INFO] [stdout] test origin_allowed_passes ... ok [INFO] [stdout] test healthz_returns_ok ... ok [INFO] [stdout] test no_origin_header_passes ... ok [INFO] [stdout] test crl_tests::crl_allows_unrevoked_client ... ok [INFO] [stdout] test origin_rejected ... ok [INFO] [stdout] test hooked_handler_serves_healthz ... ok [INFO] [stdout] test validate_rejects_other_misconfig ... ok [INFO] [stdout] test validate_rejects_admin_without_auth ... ok [INFO] [stdout] test validate_rejects_partial_tls_pair ... ok [INFO] [stdout] test crl_tests::crl_rejects_revoked_client ... ok [INFO] [stdout] test readyz_returns_503_when_not_ready ... ok [INFO] [stdout] test readyz_mirrors_healthz_when_no_check ... ok [INFO] [stdout] test auth_rejects_unauthenticated_mcp ... ok [INFO] [stdout] test crl_tests::crl_fail_closed_when_cdp_unreachable ... ok [INFO] [stdout] test shutdown_timeout_honored_on_first_signal ... ok [INFO] [stdout] test crl_tests::crl_fail_open_when_cdp_unreachable ... ok [INFO] [stdout] test c1_body_limit_applies_before_rbac ... ok [INFO] [stdout] test c1_origin_rejected_before_auth ... ok [INFO] [stdout] test auth_accepts_valid_bearer ... ok [INFO] [stdout] test rbac_allows_permitted_tool ... ok [INFO] [stdout] test auth_rejects_wrong_bearer ... ok [INFO] [stdout] test rbac_denies_unpermitted_tool ... ok [INFO] [stdout] test rbac_argument_allowlist_enforced ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.59s [INFO] [stdout] [INFO] [stderr] Running tests/jwks_key_cap.rs (/opt/rustwide/target/debug/deps/jwks_key_cap-4aed4e9faea4347a) [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/jwks_redirect_ssrf.rs (/opt/rustwide/target/debug/deps/jwks_redirect_ssrf-5dbd6d3e80761e02) [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] [stderr] Running tests/limiter_memory.rs (/opt/rustwide/target/debug/deps/limiter_memory-74dddc8a6e83b908) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/oauth_http_client.rs (/opt/rustwide/target/debug/deps/oauth_http_client-e96e35b07a3ce6b0) [INFO] [stdout] running 1 test [INFO] [stdout] test one_million_ips_holds_under_50mib ... ignored, memory benchmark; run explicitly via --ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running tests/oauth_url_validation.rs (/opt/rustwide/target/debug/deps/oauth_url_validation-5a9c38d4db4aa8d5) [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/properties.rs (/opt/rustwide/target/debug/deps/properties-67efa27a06da7ff9) [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] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test glob_pattern_never_panics ... ok [INFO] [stdout] test argument_allowed_membership ... ok [INFO] [stdout] test api_key_generate_verify_roundtrip has been running for over 60 seconds [INFO] [stdout] test api_key_generate_verify_roundtrip ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 215.24s [INFO] [stdout] [INFO] [stderr] Doc-tests rmcp_server_kit [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test src/lib.rs - tool_hooks (line 70) - compile ... ok [INFO] [stdout] test src/transport.rs - transport::Validated (line 276) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/transport.rs - transport::Validated (line 298) - compile fail ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] [stdout] all doctests ran in 1.81s; merged doctests compilation took 1.54s [INFO] running `Command { std: "docker" "inspect" "5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd", kill_on_drop: false }` [INFO] [stdout] 5dad9949d0a15d9345b313cf007facd96f409231923e049fc4eb6830c9de5ebd