[INFO] cloning repository https://github.com/ynishi/p2p-mcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ynishi/p2p-mcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fynishi%2Fp2p-mcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fynishi%2Fp2p-mcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c6c732c897eac876fcaa3fc381fd3c0d6b3a3b38
[INFO] testing ynishi/p2p-mcp against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fynishi%2Fp2p-mcp" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ynishi/p2p-mcp
[INFO] finished tweaking git repo https://github.com/ynishi/p2p-mcp
[INFO] tweaked toml for git repo https://github.com/ynishi/p2p-mcp written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ynishi/p2p-mcp on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ynishi/p2p-mcp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.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-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b
[INFO] running `Command { std: "docker" "start" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", 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" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", 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" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling futures-sink v0.3.33
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling futures-io v0.3.33
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-channel v0.3.33
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.10
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling cc v1.4.2
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling rmcp v3.1.2
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling pastey v0.2.3
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling hashlink v0.12.1
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling uuid v1.24.0
[INFO] [stderr]    Compiling fs4 v1.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 toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling darling_core v0.24.0
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling darling_macro v0.24.0
[INFO] [stderr]    Compiling darling v0.24.0
[INFO] [stderr]    Compiling rmcp-macros v3.1.2
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.33
[INFO] [stderr]    Compiling sse-stream v0.2.5
[INFO] [stderr]    Compiling futures v0.3.33
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling rusqlite v0.40.2
[INFO] [stderr]    Compiling p2p-mcp-sdk v0.1.0 (/opt/rustwide/workdir/crates/sdk)
[INFO] [stderr]    Compiling p2p-mcp v0.1.0 (/opt/rustwide/workdir/crates/mcp)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 44s
[INFO] running `Command { std: "docker" "inspect" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", 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" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling p2p-mcp-sdk v0.1.0 (/opt/rustwide/workdir/crates/sdk)
[INFO] [stderr]    Compiling p2p-mcp v0.1.0 (/opt/rustwide/workdir/crates/mcp)
[INFO] [stdout] warning: unused import: `Parser`
[INFO] [stdout]   --> crates/mcp/src/cli.rs:64:37
[INFO] [stdout]    |
[INFO] [stdout] 64 |     use clap::{CommandFactory as _, Parser as _};
[INFO] [stdout]    |                                     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 35.85s
[INFO] running `Command { std: "docker" "inspect" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", 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" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Parser`
[INFO] [stderr]   --> crates/mcp/src/cli.rs:64:37
[INFO] [stderr]    |
[INFO] [stderr] 64 |     use clap::{CommandFactory as _, Parser as _};
[INFO] [stderr]    |                                     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `p2p-mcp` (bin "p2p-mcp" test) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/p2p-mcp/f18fe1f602484cf0/out/p2p_mcp-f18fe1f602484cf0)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test network::tests::rejects_a_bind_port_other_than_the_announced_one ... ok
[INFO] [stdout] test network::tests::rejects_a_bind_address_the_configured_host_does_not_resolve_to ... ok
[INFO] [stdout] test network::tests::without_a_request_every_resolved_address_is_a_candidate ... ok
[INFO] [stdout] test network::tests::rejects_wildcard_binds_including_the_ipv4_mapped_spelling ... ok
[INFO] [stdout] test network::tests::overlay_view_reports_only_declared_addresses ... ok
[INFO] [stdout] test network::tests::accepts_a_resolved_address_in_either_ipv4_mapped_spelling ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/p2p-mcp/f25fb986a50016c8/out/p2p_mcp-f25fb986a50016c8)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test cli::tests::config_only_means_serve ... ok
[INFO] [stdout] test cli::tests::command_definition_is_valid ... ok
[INFO] [stdout] test cli::tests::writer_call_has_explicit_service_and_tool ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/p2p-mcp-sqlite-notes.rs (/opt/rustwide/target/debug/build/p2p-mcp/daaa50c77c040763/out/p2p_mcp_sqlite_notes-daaa50c77c040763)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/build/p2p-mcp/b9fc0ab4d7b7bd70/out/e2e-b9fc0ab4d7b7bd70)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test wildcard_bind_is_refused ... ok
[INFO] [stdout] test bind_address_the_node_does_not_announce_is_refused ... ok
[INFO] [stdout] test offline_peer_is_reported_without_hiding_live_topology ... ok
[INFO] [stdout] test two_nodes_on_one_machine_use_distinct_ports_and_resolve_writer ... ok
[INFO] [stdout] test two_writer_announcements_fail_the_connection_round ... ok
[INFO] [stdout] test generic_call_targets_an_explicit_peer_identity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/sqlite_process.rs (/opt/rustwide/target/debug/build/p2p-mcp/773b34e038607afe/out/sqlite_process-773b34e038607afe)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test reader_started_before_its_writer_serves_and_catches_up_on_writer_arrival ... ok
[INFO] [stdout] test sqlite_writer_reader_survive_offline_restart_and_generation_change ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/p2p-mcp-sdk/902dcdc7b9fca96b/out/p2p_mcp_sdk-902dcdc7b9fca96b)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.56s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 147 tests
[INFO] [stdout] test config::tests::parses_all_network_and_service_roles ... ok
[INFO] [stdout] test config::tests::permits_same_host_on_a_distinct_port ... ok
[INFO] [stdout] test command::tests::command_identity_is_validated_at_construction ... ok
[INFO] [stdout] test config::tests::peers_may_be_empty ... ok
[INFO] [stdout] test config::tests::rejects_blank_local_and_peer_hosts ... ok
[INFO] [stdout] test config::tests::rejects_blank_identity ... ok
[INFO] [stdout] test config::tests::rejects_no_services ... ok
[INFO] [stdout] test config::tests::rejects_peer_endpoints_that_duplicate_across_ipv4_mapped_forms ... ok
[INFO] [stdout] test config::tests::rejects_zero_local_and_peer_ports ... ok
[INFO] [stdout] test config::tests::rejects_blank_service_name ... ok
[INFO] [stdout] test config::tests::rejects_self_as_peer_using_canonical_dns_spelling ... ok
[INFO] [stdout] test directory::tests::keeps_the_configured_endpoint_as_the_only_write_destination ... ok
[INFO] [stdout] test config::tests::rejects_ipv4_and_ipv6_wildcard_hosts ... ok
[INFO] [stdout] test config::tests::rejects_blank_schema_hash_for_every_role ... ok
[INFO] [stdout] test config::tests::rejects_canonically_duplicate_peer_endpoints ... ok
[INFO] [stdout] test config::tests::rejects_unknown_fields_at_each_struct_level ... ok
[INFO] [stdout] test directory::tests::accepts_network_peers_with_no_shared_services ... ok
[INFO] [stdout] test config::tests::round_trips_toml ... ok
[INFO] [stdout] test config::tests::serialization_refuses_invalid_programmatic_config ... ok
[INFO] [stdout] test directory::tests::reader_query_never_includes_clients ... ok
[INFO] [stdout] test directory::tests::rejects_a_configured_port_that_the_announcement_moves ... ok
[INFO] [stdout] test config::tests::treats_ipv4_mapped_ipv6_as_the_same_endpoint_as_its_ipv4_form ... ok
[INFO] [stdout] test directory::tests::rejects_an_announcement_that_differs_from_the_dialed_configured_endpoint ... ok
[INFO] [stdout] test directory::tests::a_refused_writer_claim_leaves_unrelated_services_routable ... ok
[INFO] [stdout] test config::tests::rejects_unknown_service_role ... ok
[INFO] [stdout] test directory::tests::rejected_update_is_atomic_and_preserves_old_announcement ... ok
[INFO] [stdout] test directory::tests::rejects_remote_to_remote_schema_mismatch ... ok
[INFO] [stdout] test directory::tests::same_identity_cannot_move_endpoints_and_old_state_survives ... ok
[INFO] [stdout] test feed::tests::a_commit_that_matches_the_durable_header_is_published_unchanged ... ok
[INFO] [stdout] test feed::tests::a_cursor_another_connection_moved_further_ahead_is_not_a_false_failure ... ok
[INFO] [stdout] test feed::tests::a_mark_that_cannot_be_read_back_does_not_authorize_an_install ... ok
[INFO] [stdout] test directory::tests::rejects_two_remote_writers_when_local_does_not_share_the_service ... ok
[INFO] [stdout] test feed::tests::a_cursor_another_connection_moved_past_the_snapshot_base_is_not_a_false_failure ... ok
[INFO] [stdout] test feed::tests::a_numeric_array_payload_is_refused_rather_than_reinterpreted ... ok
[INFO] [stdout] test feed::tests::a_snapshot_from_a_successor_generation_is_still_admitted ... ok
[INFO] [stdout] test feed::tests::a_store_that_rewrites_its_header_still_cannot_change_history_underneath_readers ... ok
[INFO] [stdout] test directory::tests::reports_writer_missing_without_inferring_from_peer_count ... ok
[INFO] [stdout] test directory::tests::reports_network_and_reader_queries_in_deterministic_identity_order ... ok
[INFO] [stdout] test directory::tests::resolves_an_explicit_local_writer ... ok
[INFO] [stdout] test directory::tests::resolves_an_explicit_remote_writer ... ok
[INFO] [stdout] test feed::tests::a_conforming_host_still_completes_the_two_step_reseed ... ok
[INFO] [stdout] test feed::tests::a_history_that_cannot_be_read_back_is_not_taken_on_the_store_s_word ... ok
[INFO] [stdout] test feed::tests::an_answer_that_cannot_be_checked_is_not_reported_as_success ... ok
[INFO] [stdout] test feed::tests::an_apply_answer_the_durable_cursor_does_not_support_is_refused ... ok
[INFO] [stdout] test feed::tests::a_snapshot_from_another_contract_or_writer_never_reaches_the_host ... ok
[INFO] [stdout] test feed::tests::an_operation_the_store_rewrote_is_not_the_change_the_application_staged ... ok
[INFO] [stdout] test feed::tests::catch_up_starts_at_cursor_plus_one_and_requires_snapshot_after_compaction ... ok
[INFO] [stdout] test directory::tests::same_identity_and_endpoint_can_replace_when_prospective_state_is_valid ... ok
[INFO] [stdout] test feed::tests::a_commit_the_store_never_checked_against_its_header_is_not_published ... ok
[INFO] [stdout] test feed::tests::position_is_nonzero_monotonic_and_never_wraps ... ok
[INFO] [stdout] test feed::tests::an_install_the_reader_s_own_state_does_not_describe_is_refused ... ok
[INFO] [stdout] test feed::tests::an_operation_no_application_callback_produced_is_never_published ... ok
[INFO] [stdout] test feed::tests::duplicate_is_noop_gap_is_explicit_and_failed_apply_does_not_advance_cursor ... ok
[INFO] [stdout] test feed::tests::application_and_feed_append_commit_in_one_host_transaction ... ok
[INFO] [stdout] test feed::tests::a_conforming_host_still_applies_and_still_reports_duplicates ... ok
[INFO] [stdout] test feed::tests::feed_target_planning_is_refused_off_the_writer_node ... ok
[INFO] [stdout] test feed_mcp::tests::a_recoverable_catch_up_error_becomes_a_reseed_instruction_not_a_failure ... ok
[INFO] [stdout] test feed::tests::wire_deserialization_rejects_zero_position_and_blank_metadata ... ok
[INFO] [stdout] test feed::tests::snapshot_marks_incomplete_before_atomic_install_and_cursor_set ... ok
[INFO] [stdout] test feed::tests::a_position_that_does_not_advance_is_refused_before_a_reader_can_drop_it ... ok
[INFO] [stdout] test feed::tests::feed_targets_are_remote_readers_only_never_clients_or_writer ... ok
[INFO] [stdout] test feed::tests::payloads_travel_as_base64_text_and_round_trip_unchanged ... ok
[INFO] [stdout] test feed::tests::a_reader_the_host_never_marked_incomplete_is_not_handed_the_install_proof ... ok
[INFO] [stdout] test feed::tests::generation_change_cursor_ahead_and_missing_tail_are_loud ... ok
[INFO] [stdout] test feed_mcp::tests::a_reseed_instruction_is_refused_when_the_history_cannot_be_named ... ok
[INFO] [stdout] test feed::tests::an_install_that_cannot_be_read_back_is_not_reported_as_success ... ok
[INFO] [stdout] test feed::tests::a_snapshot_for_an_unknown_service_never_reaches_the_host ... ok
[INFO] [stdout] test feed_mcp::tests::a_self_contradicting_feed_stays_a_failure_the_host_hears_in_full ... ok
[INFO] [stdout] test feed::tests::zero_operation_snapshot_preserves_generation_for_future_catch_up ... ok
[INFO] [stdout] test feed_mcp::tests::a_snapshot_of_another_service_is_refused_instead_of_forwarded ... ok
[INFO] [stdout] test feed_mcp::tests::a_snapshot_of_the_requested_service_is_returned_unchanged ... ok
[INFO] [stdout] test feed_mcp::tests::catch_up_response_classifies_exactly_as_the_handler_does ... ok
[INFO] [stdout] test guard::tests::a_single_off_overlay_candidate_rejects_a_loopback_only_empty_view ... ok
[INFO] [stdout] test feed_mcp::tests::feed_tools_are_read_only_and_role_checked ... ok
[INFO] [stdout] test guard::tests::allowed_loopback_needs_no_overlay_evidence_but_denied_loopback_does ... ok
[INFO] [stdout] test guard::tests::folds_ipv4_mapped_ipv6_before_every_bind_decision ... ok
[INFO] [stdout] test guard::tests::peer_addresses_never_widen_local_bind_permission ... ok
[INFO] [stdout] test guard::tests::permits_loopback_only_under_an_explicit_allow_policy ... ok
[INFO] [stdout] test guard::tests::plans_ipv4_and_ipv6_deterministically ... ok
[INFO] [stdout] test guard::tests::rejects_entire_mixed_resolution_instead_of_binding_allowed_subset ... ok
[INFO] [stdout] test guard::tests::rejects_wildcard_even_when_overlay_view_claims_it ... ok
[INFO] [stdout] test guard::tests::uses_the_local_node_port_not_a_peer_port ... ok
[INFO] [stdout] test guard::tests::rejects_empty_resolution_and_empty_overlay_view ... ok
[INFO] [stdout] test hello::tests::allows_different_schemas_for_unshared_services ... ok
[INFO] [stdout] test hello::tests::allows_reader_and_client_multiplicity ... ok
[INFO] [stdout] test hello::tests::builds_from_config_without_announcing_peer_list ... ok
[INFO] [stdout] test hello::tests::hello_builder_revalidates_programmatic_config ... ok
[INFO] [stdout] test hello::tests::rejects_its_own_hello ... ok
[INFO] [stdout] test hello::tests::rejects_blank_service_name_and_schema_from_json_wire ... ok
[INFO] [stdout] test hello::tests::rejects_same_endpoint_under_another_identity_using_canonical_host ... ok
[INFO] [stdout] test hello::tests::rejects_same_identity_under_another_endpoint ... ok
[INFO] [stdout] test hello::tests::rejects_two_writer_claims_for_one_shared_service ... ok
[INFO] [stdout] test hello::tests::rejects_schema_mismatch_only_for_a_shared_service ... ok
[INFO] [stdout] test hello::tests::rejects_unsupported_protocol_version_from_either_side ... ok
[INFO] [stdout] test listener::tests::binds_and_transfers_a_real_listener ... ok
[INFO] [stdout] test listener::tests::partial_bind_failure_rolls_back_earlier_listener ... ok
[INFO] [stdout] test node::tests::hello_tool_is_read_only_and_rejects_arguments_by_schema ... ok
[INFO] [stdout] test node::tests::host_cannot_replace_or_duplicate_tools ... ok
[INFO] [stdout] test hello::tests::rejects_wildcard_and_zero_endpoints_from_json_wire ... ok
[INFO] [stdout] test hello::tests::serde_wire_round_trip_preserves_the_symmetric_shape ... ok
[INFO] [stdout] test hello::tests::version_rejection_precedes_semantic_validation ... ok
[INFO] [stdout] test hello::tests::wire_rejects_unknown_fields_at_every_struct_level ... ok
[INFO] [stdout] test hello::tests::rejects_no_services_from_json_wire ... ok
[INFO] [stdout] test node::tests::node_handle_explicit_shutdown_joins_and_releases_socket ... ok
[INFO] [stdout] test peer_client::tests::invalid_endpoint_is_rejected_before_network_io ... ok
[INFO] [stdout] test peer_client::tests::endpoint_uri_brackets_literal_ipv6_only ... ok
[INFO] [stdout] test hello::tests::rejects_invalid_identity_on_either_side_and_identifies_the_side ... ok
[INFO] [stdout] test peer_client::tests::only_an_address_or_dns_name_is_dialable_not_merely_a_host_without_known_delimiters ... ok
[INFO] [stdout] test peer_sessions::tests::local_writer_is_not_misclassified_as_a_peer_session ... ok
[INFO] [stdout] test outbox::tests::unix_state_lock_and_directory_are_owner_only_regardless_of_umask ... ok
[INFO] [stdout] test outbox::tests::duplicate_is_idempotent_but_key_collision_is_loud ... ok
[INFO] [stdout] test outbox::tests::process_lock_preserves_two_overlapping_enqueues ... ok
[INFO] [stdout] test outbox::tests::later_entry_cannot_be_acknowledged_past_fifo_head ... ok
[INFO] [stdout] test outbox::tests::same_write_offered_for_a_new_writer_is_a_topology_change_not_a_key_collision ... ok
[INFO] [stdout] test sqlite::tests::a_foreign_table_with_a_reserved_name_is_refused_instead_of_adopted ... ok
[INFO] [stdout] test sqlite::tests::a_corrupt_stored_high_water_is_typed_rather_than_a_library_panic ... ok
[INFO] [stdout] test sqlite::tests::a_reader_refuses_a_foreign_table_with_a_reserved_name_too ... ok
[INFO] [stdout] test sqlite::tests::an_unknown_schema_version_is_refused_without_touching_the_tables ... ok
[INFO] [stdout] test sqlite::tests::application_mutation_and_feed_row_commit_or_rollback_together ... ok
[INFO] [stdout] test sqlite::tests::incomplete_reader_bootstrap_needs_no_fake_writer_generation ... ok
[INFO] [stdout] test sqlite::tests::position_allocation_refuses_to_wrap_at_the_sqlite_maximum ... ok
[INFO] [stdout] test outbox::tests::unknown_service_and_empty_queue_are_distinct_acknowledgement_failures ... ok
[INFO] [stdout] test sqlite::tests::reader_apply_and_cursor_are_atomic_and_duplicate_is_noop ... ok
[INFO] [stdout] test sqlite::tests::reopening_with_changed_generation_is_refused ... ok
[INFO] [stdout] test feed_mcp::tests::a_host_error_reaches_the_host_but_never_the_peer ... ok
[INFO] [stdout] test sqlite::tests::snapshot_application_failure_is_typed_and_does_not_poison_store ... ok
[INFO] [stdout] test outbox::tests::an_acknowledged_key_can_be_held_again_because_delivery_is_at_least_once ... ok
[INFO] [stdout] test peer_sessions::tests::rejects_a_reachable_peer_that_announces_an_unconfigured_endpoint ... ok
[INFO] [stdout] test sqlite::tests::snapshot_failure_stays_incomplete_and_reseed_changes_generation_atomically ... ok
[INFO] [stdout] test node::tests::loopback_e2e_accepts_hello_routes_host_tool_and_closes_cleanly ... ok
[INFO] [stdout] test sqlite::tests::snapshot_payload_and_feed_position_are_captured_together ... ok
[INFO] [stdout] test reader_sync::tests::cursor_ahead_is_reported_without_reseeding_the_reader ... ok
[INFO] [stdout] test writer_route::tests::held_write_is_pinned_and_writer_change_is_loud ... ok
[INFO] [stdout] test writer_route::tests::only_explicit_writer_is_a_write_route ... ok
[INFO] [stdout] test writer_route::tests::local_writer_cannot_be_placed_in_network_outbox ... ok
[INFO] [stdout] test writer_route::tests::second_writer_claim_makes_the_route_refuse_rather_than_pin_the_first_claimant ... ok
[INFO] [stdout] test outbox::tests::service_fifo_and_service_independence_survive_reopen ... ok
[INFO] [stdout] test outbox::tests::every_held_write_is_discoverable_without_naming_its_service_first ... ok
[INFO] [stdout] test sqlite::tests::committed_feed_survives_reopen_and_catch_up_is_bounded ... ok
[INFO] [stdout] test node::tests::loopback_e2e_pulls_typed_feed_and_snapshot_from_writer ... ok
[INFO] [stdout] test peer_sessions::tests::two_writer_claims_leave_the_service_unroutable_for_both_claimants ... ok
[INFO] [stdout] test node::tests::loopback_two_nodes_move_writer_sqlite_into_reader_sqlite ... ok
[INFO] [stdout] test sqlite::tests::tables_created_before_the_version_stamp_are_adopted_and_stamped ... ok
[INFO] [stdout] test reader_sync::tests::recoverable_snapshot_reasons_still_reseed_once ... ok
[INFO] [stdout] test sqlite::tests::reader_cursor_and_reseed_generation_survive_reopen ... ok
[INFO] [stdout] test sqlite::tests::catch_up_stays_consistent_while_another_connection_commits ... ok
[INFO] [stdout] test peer_sessions::tests::admits_reachable_writer_and_isolates_offline_peer ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 147 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.60s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests p2p_mcp
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests p2p_mcp_sdk
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test crates/sdk/src/listener.rs - listener (line 14) - compile ... ok
[INFO] [stdout] test crates/sdk/src/directory.rs - directory (line 22) ... ok
[INFO] [stdout] test crates/sdk/src/hello.rs - hello (line 8) ... ok
[INFO] [stdout] test crates/sdk/src/config.rs - config (line 8) ... ok
[INFO] [stdout] test crates/sdk/src/guard.rs - guard (line 20) ... 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] [stdout] all doctests ran in 2.42s; merged doctests compilation took 2.41s
[INFO] running `Command { std: "docker" "inspect" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b", kill_on_drop: false }`
[INFO] [stdout] 5664840ee33d208601179982bbacce099bda6d77aee7b94d4fff9a397de7770b
