nixbot

builds

succeeded python3.14-mcp-2.2.0 checks.x86_64-linux.pkgs-mistral-vibe · build #9327 · raw

1bld1: building 2phhl3lniihmzxqamdrlxg9j56yvlq5l-python3.14-mcp-2.2.0.drv2structuredAttrs is enabled3Sourcing python-remove-tests-dir-hook4Sourcing python-catch-conflicts-hook.sh5Sourcing python-remove-bin-bytecode-hook.sh6Sourcing pypa-build-hook7Using pypaBuildPhase8Sourcing python-runtime-deps-check-hook9Using pythonRuntimeDepsCheckHook10Sourcing pypa-install-hook11Using pypaInstallPhase12Sourcing python-imports-check-hook.sh13Using pythonImportsCheckPhase14Sourcing python-metadata-check-hook.sh15Using pythonMetadataCheckPhase16Sourcing python-namespaces-hook17Sourcing python-catch-conflicts-hook.sh18Sourcing pytest-check-hook19Using pytestCheckPhase
unpackPhase
20unpacking source archive /nix/store/k9f5d59ib383xj5q84zbwi6603q3cdld-source21source root is source22setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
23no configure script, doing nothing
buildPhase
24Executing pypaBuildPhase25Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.2.026Creating a wheel...27pypa build flags: --no-isolation --outdir dist/ --wheel28* Getting build dependencies for wheel...29* Building wheel...30Successfully built mcp-2.2.0-py3-none-any.whl31Finished creating a wheel...32Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.2.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheck
installPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.2.0-py3-none-any.whl38Finished executing pypaInstallPhase
pythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhase
fixupPhase
41shrinking RPATHs of ELF executables and libraries in /nix/store/sg2w7vp1vc21n3bbiv1c1nc7jsm7ln60-python3.14-mcp-2.2.0-dist42checking for references to /build/ in /nix/store/sg2w7vp1vc21n3bbiv1c1nc7jsm7ln60-python3.14-mcp-2.2.0-dist...43patching script interpreter paths in /nix/store/sg2w7vp1vc21n3bbiv1c1nc7jsm7ln60-python3.14-mcp-2.2.0-dist44shrinking RPATHs of ELF executables and libraries in /nix/store/7a68xwj0zfz7dkxjfwaypc8cqvw6v0z7-python3.14-mcp-2.2.045checking for references to /build/ in /nix/store/7a68xwj0zfz7dkxjfwaypc8cqvw6v0z7-python3.14-mcp-2.2.0...46patching script interpreter paths in /nix/store/7a68xwj0zfz7dkxjfwaypc8cqvw6v0z7-python3.14-mcp-2.2.047stripping (with command strip and flags -S -p) in /nix/store/7a68xwj0zfz7dkxjfwaypc8cqvw6v0z7-python3.14-mcp-2.2.0/lib /nix/store/7a68xwj0zfz7dkxjfwaypc8cqvw6v0z7-python3.14-mcp-2.2.0/bin48Rewriting #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.8/bin/python3.14 to #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.849wrapping `/nix/store/7a68xwj0zfz7dkxjfwaypc8cqvw6v0z7-python3.14-mcp-2.2.0/bin/mcp'...50Executing pythonRemoveTestsDir51Finished executing pythonRemoveTestsDir
installCheckPhase
52no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
53Executing pythonImportsCheckPhase54Check whether the following modules can be imported: mcp
pythonMetadataCheckPhase
55Executing pythonMetadataCheckPhase
pytestCheckPhase
56Executing pytestCheckPhase57pytest flags: -m pytest -k not\ \(test_client_with_stdio_parameters_launches_the_server_as_a_subprocess\)\ and\ not\ \(test_tool_call_and_notification_round_trip_over_a_stdio_subprocess\)\ and\ not\ \(test_a_tool_spawned_childs_stdout_writes_never_reach_the_wire\)\ and\ not\ \(test_notification_validation_error\)\ and\ not\ \(test_sse_security_\)\ and\ not\ \(test_streamable_http_\)\ and\ not\ \(test_streamablehttp_\)\ and\ not\ \(test_messages_are_executed_concurrently\) --numprocesses=4858============================= test session starts ==============================59platform linux -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.060rootdir: /build/source61configfile: pyproject.toml62plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.0, xdist-3.8.063asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6448 workers [5792 items] 65scheduling tests via LoadScheduling6667tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 68tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 69tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 70tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned 71tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 72tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 73tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 74tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 75tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 76tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 77tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 78tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] 79tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 80tests/client/test_client.py::test_client_is_initialized 81tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 82tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 83tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 84tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 85tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied 86tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block 87tests/docs_src/test_completions.py::test_completing_without_a_handler_is_method_not_found 88tests/docs/test_build_config.py::test_lang_config_for_a_language_not_in_the_registry_exits_with_a_message 89tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 90tests/client/test_session_promotions.py::test_validate_tool_result_passes_a_conforming_result 91tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 92tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 93tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 94[gw8] [ 0%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 95tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 96tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 97[gw7] [ 0%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 98tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 99[gw16] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 100tests/client/test_extension.py::test_notification_binding_is_frozen 101tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 102tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter 103tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 104[gw19] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 105tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 106tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 107[gw46] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 108tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 109tests/docs_src/test_logging.py::test_an_existing_logging_configuration_wins 110[gw35] [ 0%] PASSED tests/docs_src/test_logging.py::test_an_existing_logging_configuration_wins 111tests/docs_src/test_lowlevel.py::test_the_input_schema_on_the_wire_is_the_dict_you_wrote 112tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped 113[gw39] [ 0%] PASSED tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped 114tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor 115tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 116[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 117tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 118[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 119tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 120[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 121tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 122[gw5] [ 0%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 123tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 124[gw5] [ 0%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 125tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 126[gw5] [ 0%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 127tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 128[gw13] [ 0%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 129tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 130[gw13] [ 0%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 131tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 132[gw13] [ 0%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 133tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 134tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 135[gw24] [ 0%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 136tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 137[gw16] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 138tests/client/test_extension.py::test_extension_defaults_advertise_nothing 139[gw16] [ 0%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 140tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 141[gw16] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 142tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 143[gw16] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 144tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 145[gw16] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 146tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 147tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 148[gw32] [ 0%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 149tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 150[gw32] [ 0%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 151tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 152[gw32] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 153tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 154[gw17] [ 0%] PASSED tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 155tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 156[gw17] [ 0%] PASSED tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 157tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 158[gw12] [ 0%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 159tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 160[gw12] [ 0%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 161tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 162[gw12] [ 0%] PASSED tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 163tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 164[gw12] [ 0%] PASSED tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 165tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 166[gw12] [ 0%] PASSED tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 167tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 168[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 169tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 170[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 171tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 172[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 173tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 174[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 175tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 176[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 177tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 178[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 179tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 180[gw24] [ 0%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 181tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 182tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 183[gw38] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 184tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 185[gw38] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 186tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 187[gw38] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 188tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 189[gw43] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 190tests/docs_src/test_deploy.py::test_the_default_app_rejects_a_real_hostname_before_mcp_runs 191[gw30] [ 0%] PASSED tests/docs_src/test_deploy.py::test_the_default_app_rejects_a_real_hostname_before_mcp_runs 192tests/docs_src/test_deploy.py::test_the_allowlisted_app_serves_its_hostname_and_still_rejects_others 193[gw30] [ 0%] PASSED tests/docs_src/test_deploy.py::test_the_allowlisted_app_serves_its_hostname_and_still_rejects_others 194tests/docs_src/test_deploy.py::test_a_retry_that_reaches_a_different_worker_is_rejected_by_default 195[gw29] [ 0%] PASSED tests/docs/test_build_config.py::test_lang_config_for_a_language_not_in_the_registry_exits_with_a_message 196tests/docs/test_translations.py::test_sections_tile_the_page_and_blank_lines_belong_to_the_heading_after_them 197[gw29] [ 0%] PASSED tests/docs/test_translations.py::test_sections_tile_the_page_and_blank_lines_belong_to_the_heading_after_them 198tests/docs/test_translations.py::test_provenance_front_matter_round_trips_and_keeps_all_digit_hashes_as_strings 199[gw29] [ 0%] PASSED tests/docs/test_translations.py::test_provenance_front_matter_round_trips_and_keeps_all_digit_hashes_as_strings 200tests/docs/test_translations.py::test_heading_ids_are_the_ones_the_site_renderer_produces 201[gw7] [ 0%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 202[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 203tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 204[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 205tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 206tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 207tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 208[gw39] [ 0%] PASSED tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor 209tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order 210[gw39] [ 0%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order 211tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page 212[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 213tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 214[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 215tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 216[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 217tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 218[gw36] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 219tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 220tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 221[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 222tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 223[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 224tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 225[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 226tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 227[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 228tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 229[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 230tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 231[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 232tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 233[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 234tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 235[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 236tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 237[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 238tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 239[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 240tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 241[gw44] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 242tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 243[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 244tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 245[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 246tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 247[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 248tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 249[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 250tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 251[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 252tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 253[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 254tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 255[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 256tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 257[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 258tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 259[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 260tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 261[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 262tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 263[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 264tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 265[gw2] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 266tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 267[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 268tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 269[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 270tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 271[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 272tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 273[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 274tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 275[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 276tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 277[gw38] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 278tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 279[gw20] [ 1%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 280[gw21] [ 1%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 281[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 282[gw42] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 283[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 284tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 285[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 286tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 287[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 288tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 289[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 290tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 291[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 292tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 293[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 294tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 295[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 296tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 297[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 298tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 299[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 300tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 301[gw34] [ 1%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 302tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 303[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 304tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 305[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 306tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 307[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 308tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 309[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 310tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 311[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 312tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 313[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 314tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 315[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 316tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] 317[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] 318tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] 319[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] 320tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 321[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 322tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 323[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 324tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 325[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 326tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] 327[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] 328tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 329[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 330tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 331[gw6] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 332tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 333[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 334tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 335[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 336tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 337[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 338tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 339[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 340tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 341[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 342tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 343[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 344tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 345[gw6] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 346[gw5] [ 2%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 347tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 348[gw5] [ 2%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 349tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 350[gw5] [ 2%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 351tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 352[gw5] [ 2%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 353tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 354[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 355tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 356[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 357tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 358[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 359tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 360[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 361tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 362[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 363tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 364[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 365tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 366[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 367tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 368[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 369tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 370[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 371tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 372[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 373tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 374[gw47] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 375tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 376[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 377tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 378[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 379tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 380[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 381tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 382[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 383tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 384[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 385tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 386[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 387tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 388[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 389tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 390[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 391tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 392[gw19] [ 2%] PASSED tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 393tests/client/test_session.py::test_client_session_initialize 394[gw19] [ 2%] PASSED tests/client/test_session.py::test_client_session_initialize 395tests/client/test_session.py::test_client_session_custom_client_info 396tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 397[gw20] [ 2%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 398tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 399[gw20] [ 2%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 400tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 401[gw20] [ 2%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 402tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 403[gw20] [ 2%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 404tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 405[gw20] [ 2%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 406tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 407[gw20] [ 2%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 408tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 409[gw20] [ 2%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 410tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 411[gw20] [ 2%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 412tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 413[gw20] [ 2%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 414tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 415[gw20] [ 2%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 416tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 417[gw20] [ 2%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 418tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 419[gw15] [ 2%] PASSED tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 420tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 421[gw15] [ 2%] PASSED tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 422tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 423[gw15] [ 2%] PASSED tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 424tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 425[gw15] [ 2%] PASSED tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 426tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 427tests/docs/test_translations.py::test_jobs_keeps_that_many_pages_in_flight_and_publishes_each_before_starting_another 428[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 429tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 430[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 431tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 432[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 433tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 434[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 435tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 436[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 437tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 438[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 439tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 440[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 441tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 442[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 443tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 444[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 445tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 446[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 447tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 448[gw45] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 449tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 450[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 451tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 452[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 453tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 454[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 455tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 456[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 457tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 458[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 459tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 460[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 461tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 462[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 463tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 464[gw13] [ 3%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 465tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 466[gw13] [ 3%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 467tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 468[gw32] [ 3%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 469tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 470[gw32] [ 3%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 471tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 472[gw32] [ 3%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 473tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 474[gw32] [ 3%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 475tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 476tests/client/test_auth.py::test_union_scopes[no-new] 477[gw16] [ 3%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 478tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 479[gw16] [ 3%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 480tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 481[gw16] [ 3%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 482tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 483[gw16] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 484[gw33] [ 3%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] 485[gw10] [ 3%] PASSED tests/client/test_client.py::test_client_is_initialized 486tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 487[gw10] [ 3%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 488tests/client/test_client.py::test_client_with_simple_server 489[gw10] [ 3%] PASSED tests/client/test_client.py::test_client_with_simple_server 490tests/client/test_client.py::test_client_send_ping 491[gw10] [ 3%] PASSED tests/client/test_client.py::test_client_send_ping 492tests/client/test_client.py::test_client_list_tools 493[gw10] [ 3%] PASSED tests/client/test_client.py::test_client_list_tools 494tests/client/test_client.py::test_client_call_tool 495tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 496[gw21] [ 3%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 497tests/client/test_session.py::test_era_neutral_properties_after_discover 498[gw21] [ 3%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 499tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 500[gw21] [ 3%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 501tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 502[gw21] [ 3%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 503tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 504[gw21] [ 3%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 505tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 506[gw21] [ 3%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 507tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 508[gw21] [ 3%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 509tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 510[gw21] [ 3%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 511tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 512[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 513tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 514[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 515tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 516[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 517tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 518[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 519tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 520[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 521tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 522[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 523tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 524[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 525tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 526[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 527tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 528[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 529tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 530[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 531tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 532[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 533tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 534[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 535tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 536[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 537tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 538[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 539tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 540[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 541tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 542[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 543tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 544[gw43] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 545tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 546[gw12] [ 3%] PASSED tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 547[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 548tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 549[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 550tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 551[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 552tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 553[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 554tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 555[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 556tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 557[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 558tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 559[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 560tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 561[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 562tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 563[gw45] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 564tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 565[gw45] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 566tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 567[gw45] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 568[gw4] [ 4%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 569tests/client/test_auth.py::test_union_scopes[both-empty] 570[gw4] [ 4%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 571tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 572[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 573tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 574[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 575tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 576[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 577tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 578[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 579tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 580[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 581tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 582[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 583tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 584[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 585tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 586[gw4] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 587tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 588[gw4] [ 4%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 589tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 590[gw4] [ 4%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 591tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 592[gw4] [ 4%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 593tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 594[gw4] [ 4%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 595tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 596[gw4] [ 4%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 597tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 598[gw3] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 599[gw34] [ 4%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 600tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 601[gw29] [ 4%] PASSED tests/docs/test_translations.py::test_heading_ids_are_the_ones_the_site_renderer_produces 602[gw39] [ 4%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page 603[gw40] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 604[gw26] [ 4%] PASSED tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter 605[gw1] [ 4%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 606tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 607[gw25] [ 4%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_passes_a_conforming_result 608[gw37] [ 4%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 609[gw35] [ 4%] PASSED tests/docs_src/test_lowlevel.py::test_the_input_schema_on_the_wire_is_the_dict_you_wrote 610[gw9] [ 4%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 611[gw13] [ 4%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 612[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 613[gw17] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 614tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 615[gw28] [ 4%] PASSED tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block 616[gw44] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 617[gw36] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 618[gw30] [ 4%] PASSED tests/docs_src/test_deploy.py::test_a_retry_that_reaches_a_different_worker_is_rejected_by_default 619[gw32] [ 4%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 620tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 621[gw18] [ 4%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 622[gw5] [ 4%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 623tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 624[gw19] [ 4%] PASSED tests/client/test_session.py::test_client_session_custom_client_info 625[gw38] [ 4%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 626[gw43] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 627[gw31] [ 4%] PASSED tests/docs_src/test_completions.py::test_completing_without_a_handler_is_method_not_found 628[gw10] [ 4%] PASSED tests/client/test_client.py::test_client_call_tool 629[gw14] [ 4%] PASSED tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied 630[gw11] [ 4%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 631[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 632[gw4] [ 4%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 633[gw47] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 634[gw22] [ 4%] PASSED tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned 635[gw16] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 636[gw41] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 637[gw8] [ 4%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 638[gw21] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 639tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability 640[gw20] [ 4%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 641tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 642tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 643tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 644tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 645tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 646tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 647tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 648tests/docs_src/test_index.py::test_add_tool 649tests/docs/test_translations.py::test_heading_the_source_scan_cannot_pin_makes_the_page_an_error 650tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error 651tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 652tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 653tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered 654tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_schema_mismatch 655tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 656tests/docs_src/test_lowlevel.py::test_the_client_does_not_care_which_server_class_it_connects_to 657tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 658tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 659tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 660tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 661tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends 662tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 663tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 664tests/docs_src/test_deploy.py::test_a_refund_the_human_declined_is_not_issued 665tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 666tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 667[gw33] [ 4%] PASSED tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability 668tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 669tests/client/test_session.py::test_client_session_default_client_info 670tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 671[gw46] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 672tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 673tests/docs_src/test_completions.py::test_registering_the_handler_advertises_the_capability 674[gw42] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 675[gw12] [ 4%] PASSED tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 676tests/client/test_client.py::test_read_resource 677tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] 678tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 679[gw7] [ 5%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 680[gw24] [ 5%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 681[gw2] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 682tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 683[gw6] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 684tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 685tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 686[gw3] [ 5%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 687tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled 688tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 689[gw34] [ 5%] PASSED tests/docs_src/test_index.py::test_add_tool 690[gw29] [ 5%] PASSED tests/docs/test_translations.py::test_heading_the_source_scan_cannot_pin_makes_the_page_an_error 691[gw40] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 692[gw39] [ 5%] PASSED tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error 693[gw1] [ 5%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 694[gw26] [ 5%] PASSED tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered 695tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 696[gw25] [ 5%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_schema_mismatch 697[gw37] [ 5%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 698[gw9] [ 5%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 699[gw35] [ 5%] PASSED tests/docs_src/test_lowlevel.py::test_the_client_does_not_care_which_server_class_it_connects_to 700[gw13] [ 5%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 701[gw23] [ 5%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 702[gw17] [ 5%] PASSED tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 703tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 704[gw28] [ 5%] PASSED tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends 705[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 706[gw36] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 707[gw30] [ 5%] PASSED tests/docs_src/test_deploy.py::test_a_refund_the_human_declined_is_not_issued 708tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 709[gw32] [ 5%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 710[gw18] [ 5%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 711[gw5] [ 5%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 712tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 713[gw19] [ 5%] PASSED tests/client/test_session.py::test_client_session_default_client_info 714[gw38] [ 5%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 715[gw43] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 716[gw31] [ 5%] PASSED tests/docs_src/test_completions.py::test_registering_the_handler_advertises_the_capability 717[gw10] [ 5%] PASSED tests/client/test_client.py::test_read_resource 718[gw14] [ 5%] PASSED tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] 719[gw11] [ 5%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 720[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 721[gw4] [ 5%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 722[gw47] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 723[gw27] [ 5%] PASSED tests/docs/test_translations.py::test_jobs_keeps_that_many_pages_in_flight_and_publishes_each_before_starting_another 724[gw16] [ 5%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 725[gw22] [ 5%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled 726[gw41] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 727[gw8] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 728[gw21] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 729tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition 730[gw20] [ 5%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 731tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 732tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 733tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched 734tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 735tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 736tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 737tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 738tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 739tests/docs_src/test_index.py::test_greeting_resource_template 740tests/docs/test_translations.py::test_many_attribute_blocks_pin_the_last_id_only_when_they_end_the_heading 741tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 742tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model 743tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 744tests/client/test_subscriptions.py::test_session_teardown_unblocks_a_sibling_consumer_with_subscription_lost 745tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_an_unusable_output_schema 746tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 747tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 748tests/docs_src/test_lowlevel.py::test_the_last_line_is_an_asgi_app_uvicorn_can_serve 749tests/client/test_input_required.py::test_default_max_rounds_constant 750tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 751tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 752tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition 753tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 754tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 755tests/docs_src/test_deploy.py::test_a_shared_key_and_name_let_any_worker_finish_a_round_trip 756tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 757tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 758[gw33] [ 5%] PASSED tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition 759tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 760tests/client/test_session.py::test_client_session_version_negotiation_success 761tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 762[gw46] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 763tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 764tests/docs_src/test_completions.py::test_prompt_argument_completion_filters_on_the_typed_prefix 765[gw42] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 766[gw12] [ 5%] PASSED tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched 767tests/client/test_client.py::test_read_resource_error_propagates 768tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[empty] 769tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 770[gw7] [ 5%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 771[gw2] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 772[gw24] [ 5%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 773tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 774[gw6] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 775tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 776tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 777[gw3] [ 5%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 778tests/docs/test_translations.py::test_rejected_credentials_keep_a_page_that_lands_from_the_same_flight 779tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 780tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled 781[gw34] [ 5%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template 782[gw29] [ 5%] PASSED tests/docs/test_translations.py::test_many_attribute_blocks_pin_the_last_id_only_when_they_end_the_heading 783[gw40] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 784[gw39] [ 5%] PASSED tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model 785[gw1] [ 5%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 786[gw26] [ 5%] PASSED tests/client/test_subscriptions.py::test_session_teardown_unblocks_a_sibling_consumer_with_subscription_lost 787tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 788[gw25] [ 5%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_an_unusable_output_schema 789[gw37] [ 6%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 790[gw9] [ 6%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 791[gw35] [ 6%] PASSED tests/docs_src/test_lowlevel.py::test_the_last_line_is_an_asgi_app_uvicorn_can_serve 792[gw13] [ 6%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 793[gw23] [ 6%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 794[gw17] [ 6%] PASSED tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 795tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 796[gw28] [ 6%] PASSED tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition 797[gw44] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 798[gw36] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 799[gw30] [ 6%] PASSED tests/docs_src/test_deploy.py::test_a_shared_key_and_name_let_any_worker_finish_a_round_trip 800tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 801[gw32] [ 6%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 802[gw18] [ 6%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 803[gw5] [ 6%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 804tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 805[gw19] [ 6%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_success 806[gw38] [ 6%] PASSED tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 807[gw43] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 808[gw31] [ 6%] PASSED tests/docs_src/test_completions.py::test_prompt_argument_completion_filters_on_the_typed_prefix 809[gw10] [ 6%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 810[gw14] [ 6%] PASSED tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[empty] 811[gw11] [ 6%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 812[gw0] [ 6%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 813[gw4] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 814[gw47] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 815[gw16] [ 6%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 816[gw41] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 817[gw8] [ 6%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 818[gw21] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 819tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities 820[gw20] [ 6%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 821tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 822tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 823tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 824tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 825tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 826tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 827tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 828tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 829tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 830tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them 831tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 832tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order 833tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 834tests/client/test_subscriptions.py::test_server_cancel_before_the_ack_raises_subscription_lost_from_enter 835[gw27] [ 6%] PASSED tests/docs/test_translations.py::test_rejected_credentials_keep_a_page_that_lands_from_the_same_flight 836tests/client/test_session_promotions.py::test_validate_tool_result_compiles_the_output_schema_once_per_tool 837tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 838tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 839tests/docs_src/test_lowlevel.py::test_only_the_handlers_you_passed_become_capabilities 840tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 841tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 842tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 843tests/docs_src/test_client.py::test_get_display_name_prefers_the_title 844tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 845tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 846tests/docs_src/test_deploy.py::test_a_shared_key_is_not_enough_without_a_shared_name 847tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 848tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 849[gw33] [ 6%] PASSED tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities 850tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 851tests/client/test_session.py::test_client_session_version_negotiation_failure 852tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 853[gw46] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 854tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 855tests/docs_src/test_completions.py::test_empty_value_returns_every_suggestion 856[gw42] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 857[gw12] [ 6%] PASSED tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 858tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 859tests/client/test_client_extensions.py::test_claimed_result_resolves_transparently_to_the_resolvers_result 860tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 861[gw7] [ 6%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 862[gw2] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 863tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 864[gw6] [ 6%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 865tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 866tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 867[gw3] [ 6%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 868tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 869[gw34] [ 6%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 870[gw29] [ 6%] PASSED tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them 871[gw40] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 872[gw39] [ 6%] PASSED tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order 873[gw1] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 874[gw26] [ 6%] PASSED tests/client/test_subscriptions.py::test_server_cancel_before_the_ack_raises_subscription_lost_from_enter 875tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 876[gw25] [ 6%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_compiles_the_output_schema_once_per_tool 877[gw37] [ 6%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 878[gw9] [ 6%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 879[gw35] [ 6%] PASSED tests/docs_src/test_lowlevel.py::test_only_the_handlers_you_passed_become_capabilities 880[gw13] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 881[gw23] [ 6%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 882[gw17] [ 6%] PASSED tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 883tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 884[gw28] [ 6%] PASSED tests/docs_src/test_client.py::test_get_display_name_prefers_the_title 885[gw44] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 886[gw36] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 887tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 888[gw30] [ 6%] PASSED tests/docs_src/test_deploy.py::test_a_shared_key_is_not_enough_without_a_shared_name 889[gw32] [ 6%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 890[gw18] [ 6%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 891[gw5] [ 6%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 892tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 893[gw19] [ 6%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_failure 894[gw38] [ 7%] PASSED tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 895[gw43] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 896[gw31] [ 7%] PASSED tests/docs_src/test_completions.py::test_empty_value_returns_every_suggestion 897[gw10] [ 7%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 898[gw14] [ 7%] PASSED tests/client/test_client_extensions.py::test_claimed_result_resolves_transparently_to_the_resolvers_result 899[gw11] [ 7%] PASSED tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 900[gw0] [ 7%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 901[gw4] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 902[gw22] [ 7%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled 903[gw47] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 904[gw16] [ 7%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 905tests/docs/test_translations.py::test_rejected_credentials_with_pages_in_flight_start_no_further_page 906[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 907[gw8] [ 7%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 908[gw21] [ 7%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 909tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable 910[gw20] [ 7%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 911tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 912tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 913tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 914tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 915tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 916tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 917tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 918tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 919tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english 920tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 921tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result 922tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 923tests/client/test_subscriptions.py::test_listen_on_an_exited_session_raises_and_leaks_no_route 924tests/client/test_session_promotions.py::test_validate_tool_result_keeps_the_validator_across_a_relisting_of_the_same_schema 925tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 926tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 927tests/docs_src/test_lowlevel.py::test_arguments_are_not_validated_against_your_schema 928tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 929tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 930tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 931tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read 932tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 933tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 934tests/docs_src/test_deploy.py::test_one_bus_carries_a_publish_on_one_replica_to_a_stream_on_another 935tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 936tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 937[gw27] [ 7%] PASSED tests/docs/test_translations.py::test_rejected_credentials_with_pages_in_flight_start_no_further_page 938[gw33] [ 7%] PASSED tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable 939tests/client/test_auth.py::test_registration_request_sends_application_type 940tests/client/test_session.py::test_client_capabilities_default 941tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 942[gw46] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 943tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 944tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error 945[gw42] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 946[gw12] [ 7%] PASSED tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 947tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 948tests/client/test_client_extensions.py::test_claimed_shape_routes_to_its_owning_extensions_resolver 949tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 950[gw7] [ 7%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 951[gw2] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 952tests/cli/test_claude.py::test_generates_uv_run_command 953[gw15] [ 7%] PASSED tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 954[gw6] [ 7%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 955tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 956tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] 957tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 958[gw3] [ 7%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 959tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 960[gw34] [ 7%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 961[gw29] [ 7%] PASSED tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english 962[gw40] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 963[gw39] [ 7%] PASSED tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result 964[gw1] [ 7%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 965[gw26] [ 7%] PASSED tests/client/test_subscriptions.py::test_listen_on_an_exited_session_raises_and_leaks_no_route 966tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 967[gw25] [ 7%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_keeps_the_validator_across_a_relisting_of_the_same_schema 968[gw37] [ 7%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 969[gw9] [ 7%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 970[gw35] [ 7%] PASSED tests/docs_src/test_lowlevel.py::test_arguments_are_not_validated_against_your_schema 971[gw13] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 972[gw23] [ 7%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 973[gw17] [ 7%] PASSED tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 974tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 975[gw44] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 976[gw28] [ 7%] PASSED tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read 977[gw36] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 978tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 979[gw30] [ 7%] PASSED tests/docs_src/test_deploy.py::test_one_bus_carries_a_publish_on_one_replica_to_a_stream_on_another 980[gw32] [ 7%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 981[gw18] [ 7%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 982[gw5] [ 7%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 983tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 984[gw19] [ 7%] PASSED tests/client/test_session.py::test_client_capabilities_default 985[gw38] [ 7%] PASSED tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 986[gw43] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 987[gw31] [ 7%] PASSED tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error 988[gw10] [ 7%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 989[gw14] [ 7%] PASSED tests/client/test_client_extensions.py::test_claimed_shape_routes_to_its_owning_extensions_resolver 990[gw11] [ 7%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 991[gw0] [ 7%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 992[gw4] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 993[gw47] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 994[gw16] [ 7%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 995[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 996[gw8] [ 7%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 997[gw21] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 998tests/docs/test_translations.py::test_translate_without_lang_works_through_every_language_with_that_languages_own_prompt 999tests/docs_src/test_extensions.py::test_declaring_client_gets_the_vendor_method_result 1000[gw20] [ 8%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1001tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1002tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1003tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 1004tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1005tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 1006tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1007tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 1008tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1009tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1010tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] 1011tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1012tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op 1013tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1014tests/client/test_subscriptions.py::test_listen_on_a_never_entered_session_raises_runtime_error 1015tests/client/test_session_promotions.py::test_validate_tool_result_recompiles_when_the_server_changes_the_schema 1016tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 1017tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1018tests/docs_src/test_lowlevel.py::test_one_handler_routes_every_tool 1019tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 1020tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1021tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 1022tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 1023tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 1024tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1025tests/docs_src/test_deprecated.py::test_create_message_warns_and_then_raises_on_a_modern_connection 1026tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1027tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1028[gw33] [ 8%] PASSED tests/docs_src/test_extensions.py::test_declaring_client_gets_the_vendor_method_result 1029tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1030tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 1031tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 1032[gw46] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1033tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1034tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter 1035[gw42] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1036[gw12] [ 8%] PASSED tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 1037tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1038tests/client/test_client_extensions.py::test_resolver_product_gets_the_direct_paths_output_schema_revalidation 1039tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too 1040[gw7] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1041[gw2] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 1042tests/cli/test_claude.py::test_file_spec_without_object_suffix 1043[gw15] [ 8%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1044[gw6] [ 8%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 1045tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1046tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 1047[gw3] [ 8%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1048tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 1049[gw34] [ 8%] PASSED tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1050[gw29] [ 8%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] 1051[gw40] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1052[gw39] [ 8%] PASSED tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op 1053[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1054[gw26] [ 8%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_never_entered_session_raises_runtime_error 1055tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 1056[gw25] [ 8%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_recompiles_when_the_server_changes_the_schema 1057[gw37] [ 8%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 1058[gw9] [ 8%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1059[gw35] [ 8%] PASSED tests/docs_src/test_lowlevel.py::test_one_handler_routes_every_tool 1060[gw13] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 1061[gw23] [ 8%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1062[gw17] [ 8%] PASSED tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 1063tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 1064[gw44] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 1065[gw28] [ 8%] PASSED tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 1066[gw36] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1067tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 1068[gw30] [ 8%] PASSED tests/docs_src/test_deprecated.py::test_create_message_warns_and_then_raises_on_a_modern_connection 1069[gw18] [ 8%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1070[gw32] [ 8%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1071[gw5] [ 8%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1072tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1073[gw19] [ 8%] PASSED tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 1074[gw38] [ 8%] PASSED tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 1075[gw43] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1076[gw31] [ 8%] PASSED tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter 1077[gw10] [ 8%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1078[gw14] [ 8%] PASSED tests/client/test_client_extensions.py::test_resolver_product_gets_the_direct_paths_output_schema_revalidation 1079[gw11] [ 8%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too 1080[gw24] [ 8%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1081[gw0] [ 8%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 1082[gw4] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1083[gw47] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 1084[gw16] [ 8%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 1085[gw41] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 1086[gw8] [ 8%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 1087[gw22] [ 8%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] 1088[gw21] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 1089tests/docs_src/test_extensions.py::test_vendor_method_rejects_a_non_declaring_client_with_32021 1090[gw20] [ 8%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1091tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1092tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1093tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 1094tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1095tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 1096tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 1097tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1098tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1099tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1100tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] 1101tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 1102tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client 1103tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1104tests/client/test_subscriptions.py::test_a_retained_handle_after_exit_does_not_serve_stale_events 1105tests/client/test_stdio.py::test_messages_split_and_packed_across_chunks_are_reframed 1106tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 1107tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1108tests/docs_src/test_lowlevel.py::test_an_unknown_tool_name_becomes_a_protocol_error_not_a_tool_error 1109tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1110tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1111tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 1112tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 1113tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 1114tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1115tests/docs_src/test_deprecated.py::test_a_deprecated_feature_still_works_on_a_legacy_session 1116tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1117tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1118[gw33] [ 8%] PASSED tests/docs_src/test_extensions.py::test_vendor_method_rejects_a_non_declaring_client_with_32021 1119tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1120tests/client/test_session.py::test_client_capabilities_with_sampling_tools 1121tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 1122[gw46] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1123tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1124tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter 1125[gw42] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1126[gw12] [ 8%] PASSED tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 1127tests/client/test_client.py::test_get_prompt 1128tests/client/test_client_extensions.py::test_resolver_error_result_is_returned_not_raised 1129tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state 1130[gw7] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1131tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1132[gw2] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 1133tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 1134[gw6] [ 8%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 1135[gw15] [ 8%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1136tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1137tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 1138[gw3] [ 8%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1139tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 1140[gw34] [ 8%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1141[gw29] [ 9%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] 1142[gw40] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 1143[gw39] [ 9%] PASSED tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client 1144[gw1] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1145[gw26] [ 9%] PASSED tests/client/test_subscriptions.py::test_a_retained_handle_after_exit_does_not_serve_stale_events 1146tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] 1147[gw25] [ 9%] PASSED tests/client/test_stdio.py::test_messages_split_and_packed_across_chunks_are_reframed 1148[gw9] [ 9%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1149[gw37] [ 9%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 1150[gw35] [ 9%] PASSED tests/docs_src/test_lowlevel.py::test_an_unknown_tool_name_becomes_a_protocol_error_not_a_tool_error 1151[gw13] [ 9%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1152[gw23] [ 9%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1153[gw17] [ 9%] PASSED tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 1154tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 1155[gw44] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 1156[gw28] [ 9%] PASSED tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 1157[gw36] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1158tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] 1159tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 1160[gw30] [ 9%] PASSED tests/docs_src/test_deprecated.py::test_a_deprecated_feature_still_works_on_a_legacy_session 1161[gw18] [ 9%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1162[gw32] [ 9%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1163[gw5] [ 9%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1164tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1165[gw19] [ 9%] PASSED tests/client/test_session.py::test_client_capabilities_with_sampling_tools 1166[gw38] [ 9%] PASSED tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 1167[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1168[gw31] [ 9%] PASSED tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter 1169[gw27] [ 9%] PASSED tests/docs/test_translations.py::test_translate_without_lang_works_through_every_language_with_that_languages_own_prompt 1170[gw10] [ 9%] PASSED tests/client/test_client.py::test_get_prompt 1171[gw11] [ 9%] PASSED tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state 1172[gw14] [ 9%] PASSED tests/client/test_client_extensions.py::test_resolver_error_result_is_returned_not_raised 1173[gw24] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1174[gw0] [ 9%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 1175[gw4] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1176[gw47] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 1177[gw16] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 1178[gw41] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] 1179[gw8] [ 9%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 1180[gw21] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 1181tests/docs_src/test_extensions.py::test_version_pinned_method_is_not_found_on_a_legacy_connection 1182[gw20] [ 9%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1183tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1184tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1185tests/client/test_client_caching.py::test_read_resource_caches_per_uri 1186tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1187tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 1188tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 1189tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1190tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1191tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1192tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] 1193tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 1194tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none 1195tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1196tests/client/test_subscriptions.py::test_a_stray_ack_outside_the_driver_namespace_still_reaches_message_handler 1197tests/client/test_stdio.py::test_each_outgoing_message_is_written_as_exactly_one_line 1198tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1199tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 1200tests/docs_src/test_lowlevel.py::test_output_schema_and_structured_content_are_both_yours_to_build 1201tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1202tests/client/test_session_group.py::test_client_session_group_init 1203tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 1204tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 1205tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 1206tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1207tests/docs_src/test_deprecated.py::test_send_ping_still_carries_the_deprecation_warning 1208tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1209tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1210[gw33] [ 9%] PASSED tests/docs_src/test_extensions.py::test_version_pinned_method_is_not_found_on_a_legacy_connection 1211tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1212tests/client/test_session.py::test_initialize_result 1213tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 1214[gw46] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1215tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1216tests/docs_src/test_completions.py::test_context_arguments_is_optional 1217[gw42] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1218[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_read_resource_caches_per_uri 1219tests/docs/test_translations.py::test_repair_turn_feeds_the_findings_back_and_accepts_the_fixed_reply 1220tests/client/test_client.py::test_client_session_property_before_enter 1221tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state 1222[gw7] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1223tests/client/test_client_extensions.py::test_resolver_receives_the_calls_claim_context 1224tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1225[gw2] [ 9%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 1226tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 1227[gw6] [ 9%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 1228[gw15] [ 9%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1229tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1230tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1231[gw3] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1232tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 1233[gw34] [ 9%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1234[gw29] [ 9%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] 1235[gw40] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 1236[gw39] [ 9%] PASSED tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none 1237[gw1] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1238[gw26] [ 9%] PASSED tests/client/test_subscriptions.py::test_a_stray_ack_outside_the_driver_namespace_still_reaches_message_handler 1239tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] 1240[gw9] [ 9%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1241[gw25] [ 9%] PASSED tests/client/test_stdio.py::test_each_outgoing_message_is_written_as_exactly_one_line 1242[gw37] [ 9%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 1243[gw35] [ 9%] PASSED tests/docs_src/test_lowlevel.py::test_output_schema_and_structured_content_are_both_yours_to_build 1244[gw23] [ 9%] PASSED tests/client/test_session_group.py::test_client_session_group_init 1245[gw13] [ 9%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1246[gw17] [ 9%] PASSED tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 1247tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 1248[gw44] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 1249[gw28] [ 10%] PASSED tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 1250[gw36] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1251tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 1252[gw30] [ 10%] PASSED tests/docs_src/test_deprecated.py::test_send_ping_still_carries_the_deprecation_warning 1253[gw18] [ 10%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1254[gw32] [ 10%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1255[gw5] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1256tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1257[gw19] [ 10%] PASSED tests/client/test_session.py::test_initialize_result 1258[gw38] [ 10%] PASSED tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 1259[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1260[gw31] [ 10%] PASSED tests/docs_src/test_completions.py::test_context_arguments_is_optional 1261[gw10] [ 10%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 1262[gw11] [ 10%] PASSED tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state 1263[gw14] [ 10%] PASSED tests/client/test_client_extensions.py::test_resolver_receives_the_calls_claim_context 1264[gw24] [ 10%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1265[gw0] [ 10%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 1266[gw4] [ 10%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1267[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1268[gw16] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 1269[gw41] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] 1270[gw8] [ 10%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 1271[gw21] [ 10%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 1272tests/docs_src/test_extensions.py::test_interceptor_observes_the_call_and_passes_the_result_through 1273[gw20] [ 10%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1274tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1275tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1276tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 1277tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1278tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 1279tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1280tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1281tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1282tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] 1283tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 1284tests/docs_src/test_prompts.py::test_function_becomes_the_prompt 1285tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1286tests/client/test_subscriptions.py::test_a_bare_string_for_resource_subscriptions_is_rejected 1287tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1288tests/client/test_stdio.py::test_invalid_json_from_the_server_surfaces_as_an_in_stream_exception 1289tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1290tests/docs_src/test_lowlevel.py::test_the_client_checks_the_schema_you_promised 1291tests/client/test_session_group.py::test_client_session_group_component_properties 1292tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1293[gw22] [ 10%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] 1294tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 1295tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 1296tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 1297tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1298tests/docs_src/test_deprecated.py::test_mcp_deprecation_warning_is_a_user_warning 1299tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1300tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1301[gw27] [ 10%] PASSED tests/docs/test_translations.py::test_repair_turn_feeds_the_findings_back_and_accepts_the_fixed_reply 1302[gw33] [ 10%] PASSED tests/docs_src/test_extensions.py::test_interceptor_observes_the_call_and_passes_the_result_through 1303tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1304tests/client/test_session.py::test_client_tool_call_with_meta[None] 1305tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 1306[gw46] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1307tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1308tests/docs_src/test_completions.py::test_no_context_means_no_suggestions 1309[gw42] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1310[gw12] [ 10%] PASSED tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 1311tests/client/test_client.py::test_client_reentry_raises_runtime_error 1312tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction 1313[gw7] [ 10%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1314tests/client/test_client_extensions.py::test_resolver_exception_propagates_untouched 1315[gw2] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 1316tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1317tests/cli/test_claude.py::test_with_editable_adds_flag 1318[gw15] [ 10%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1319tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1320tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1321[gw3] [ 10%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1322tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 1323[gw29] [ 10%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] 1324[gw34] [ 10%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1325[gw40] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 1326[gw39] [ 10%] PASSED tests/docs_src/test_prompts.py::test_function_becomes_the_prompt 1327[gw1] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1328[gw26] [ 10%] PASSED tests/client/test_subscriptions.py::test_a_bare_string_for_resource_subscriptions_is_rejected 1329tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] 1330[gw25] [ 10%] PASSED tests/client/test_stdio.py::test_invalid_json_from_the_server_surfaces_as_an_in_stream_exception 1331[gw37] [ 10%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1332[gw9] [ 10%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1333[gw35] [ 10%] PASSED tests/docs_src/test_lowlevel.py::test_the_client_checks_the_schema_you_promised 1334[gw23] [ 10%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties 1335[gw13] [ 10%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1336[gw17] [ 10%] PASSED tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 1337tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 1338[gw44] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 1339[gw28] [ 10%] PASSED tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 1340[gw36] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1341tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 1342[gw30] [ 10%] PASSED tests/docs_src/test_deprecated.py::test_mcp_deprecation_warning_is_a_user_warning 1343[gw18] [ 10%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1344[gw32] [ 10%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1345[gw5] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1346tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1347[gw19] [ 10%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[None] 1348[gw38] [ 10%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 1349[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1350[gw31] [ 10%] PASSED tests/docs_src/test_completions.py::test_no_context_means_no_suggestions 1351[gw10] [ 10%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 1352[gw11] [ 11%] PASSED tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction 1353[gw14] [ 11%] PASSED tests/client/test_client_extensions.py::test_resolver_exception_propagates_untouched 1354[gw24] [ 11%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1355[gw0] [ 11%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 1356[gw4] [ 11%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1357[gw47] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1358[gw16] [ 11%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 1359[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] 1360tests/client/test_stdio.py::test_exiting_the_context_terminates_the_entire_process_tree 1361[gw8] [ 11%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 1362[gw21] [ 11%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 1363tests/docs/test_translations.py::test_code_block_moved_into_another_section_is_repaired_not_published 1364tests/docs_src/test_extensions.py::test_declaring_client_receives_the_redeemed_result_not_the_claimed_shape 1365[gw20] [ 11%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1366tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1367tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1368tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 1369tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1370tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 1371tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1372tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1373tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] 1374tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client 1375tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 1376tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message 1377tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1378tests/client/test_subscriptions.py::test_the_route_admits_only_honored_events_and_only_while_live 1379tests/client/test_stdio.py::test_a_server_that_dies_before_responding_fails_initialize_with_connection_closed 1380tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1381tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1382tests/docs_src/test_lowlevel.py::test_meta_reaches_the_client_application 1383tests/client/test_session_group.py::test_client_session_group_call_tool 1384tests/client/test_list_roots_callback.py::test_list_roots_callback 1385tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 1386tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 1387tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 1388tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1389tests/docs_src/test_deprecated.py::test_error_filter_turns_the_deprecated_call_into_the_documented_tool_error 1390tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1391tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1392[gw33] [ 11%] PASSED tests/docs_src/test_extensions.py::test_declaring_client_receives_the_redeemed_result_not_the_claimed_shape 1393tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1394tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 1395tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 1396[gw46] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1397tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1398tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one 1399[gw42] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1400[gw12] [ 11%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 1401tests/client/test_client.py::test_client_send_progress_notification 1402tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result 1403[gw7] [ 11%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1404tests/client/test_client_extensions.py::test_unclaimed_result_flows_through_unchanged_with_extensions_present 1405[gw2] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 1406tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1407tests/cli/test_claude.py::test_env_vars_written 1408[gw15] [ 11%] PASSED tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1409tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1410tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1411[gw3] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1412tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 1413[gw29] [ 11%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] 1414[gw34] [ 11%] PASSED tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client 1415[gw40] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 1416[gw1] [ 11%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1417[gw39] [ 11%] PASSED tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message 1418[gw26] [ 11%] PASSED tests/client/test_subscriptions.py::test_the_route_admits_only_honored_events_and_only_while_live 1419tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] 1420[gw27] [ 11%] PASSED tests/docs/test_translations.py::test_code_block_moved_into_another_section_is_repaired_not_published 1421[gw25] [ 11%] PASSED tests/client/test_stdio.py::test_a_server_that_dies_before_responding_fails_initialize_with_connection_closed 1422[gw37] [ 11%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1423[gw9] [ 11%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1424[gw35] [ 11%] PASSED tests/docs_src/test_lowlevel.py::test_meta_reaches_the_client_application 1425[gw13] [ 11%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1426[gw23] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool 1427[gw17] [ 11%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 1428tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 1429[gw44] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 1430[gw28] [ 11%] PASSED tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 1431[gw36] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1432tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 1433[gw30] [ 11%] PASSED tests/docs_src/test_deprecated.py::test_error_filter_turns_the_deprecated_call_into_the_documented_tool_error 1434[gw18] [ 11%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1435[gw32] [ 11%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1436[gw5] [ 11%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1437tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1438[gw19] [ 11%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 1439[gw38] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 1440[gw43] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1441[gw31] [ 11%] PASSED tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one 1442[gw10] [ 11%] PASSED tests/client/test_client.py::test_client_send_progress_notification 1443[gw11] [ 11%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result 1444[gw14] [ 11%] PASSED tests/client/test_client_extensions.py::test_unclaimed_result_flows_through_unchanged_with_extensions_present 1445[gw24] [ 11%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1446[gw0] [ 11%] PASSED tests/cli/test_claude.py::test_env_vars_written 1447[gw4] [ 11%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1448[gw47] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1449[gw16] [ 11%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 1450[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] 1451[gw8] [ 11%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 1452[gw21] [ 11%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 1453tests/docs_src/test_extensions.py::test_a_client_without_the_extension_is_refused_by_the_gate 1454[gw20] [ 11%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1455tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1456tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1457tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 1458tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1459tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 1460tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 1461tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1462tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] 1463tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras 1464tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 1465tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1466tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error 1467tests/client/test_subscriptions.py::test_a_peer_flooding_distinct_uris_costs_the_subscription_not_client_memory 1468tests/docs/test_translations.py::test_code_block_moved_out_of_a_retranslated_section_gets_repair_turns_like_any_other_finding 1469tests/client/test_stdio.py::test_a_server_that_exits_on_stdin_close_is_never_terminated 1470tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1471tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1472tests/docs_src/test_lowlevel.py::test_the_lifespan_object_reaches_every_handler_with_its_type 1473tests/client/test_logging_callback.py::test_logging_callback 1474tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1475tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 1476tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 1477tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 1478tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1479tests/docs_src/test_deprecated.py::test_filterwarnings_ignore_silences_the_whole_category 1480tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1481tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1482[gw33] [ 11%] PASSED tests/docs_src/test_extensions.py::test_a_client_without_the_extension_is_refused_by_the_gate 1483tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1484tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 1485tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 1486[gw46] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1487tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1488tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema 1489[gw42] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1490[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 1491tests/client/test_client.py::test_client_subscribe_resource 1492tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result 1493[gw7] [ 12%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1494tests/client/test_client_extensions.py::test_input_required_then_plain_result_keeps_the_auto_loop_working 1495[gw2] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 1496tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1497tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 1498[gw15] [ 12%] PASSED tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 1499tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1500tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1501[gw3] [ 12%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1502tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 1503[gw29] [ 12%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] 1504[gw34] [ 12%] PASSED tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras 1505[gw1] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1506[gw40] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 1507[gw39] [ 12%] PASSED tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error 1508[gw26] [ 12%] PASSED tests/client/test_subscriptions.py::test_a_peer_flooding_distinct_uris_costs_the_subscription_not_client_memory 1509tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] 1510[gw25] [ 12%] PASSED tests/client/test_stdio.py::test_a_server_that_exits_on_stdin_close_is_never_terminated 1511[gw37] [ 12%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1512[gw9] [ 12%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1513[gw35] [ 12%] PASSED tests/docs_src/test_lowlevel.py::test_the_lifespan_object_reaches_every_handler_with_its_type 1514[gw23] [ 12%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1515[gw13] [ 12%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1516[gw17] [ 12%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 1517tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 1518[gw44] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 1519[gw28] [ 12%] PASSED tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 1520[gw36] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1521tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 1522[gw30] [ 12%] PASSED tests/docs_src/test_deprecated.py::test_filterwarnings_ignore_silences_the_whole_category 1523[gw18] [ 12%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1524[gw32] [ 12%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1525[gw5] [ 12%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1526tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1527[gw19] [ 12%] PASSED tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 1528[gw38] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 1529[gw43] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1530[gw31] [ 12%] PASSED tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema 1531[gw10] [ 12%] PASSED tests/client/test_client.py::test_client_subscribe_resource 1532[gw14] [ 12%] PASSED tests/client/test_client_extensions.py::test_input_required_then_plain_result_keeps_the_auto_loop_working 1533[gw11] [ 12%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result 1534[gw24] [ 12%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1535[gw0] [ 12%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 1536[gw4] [ 12%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1537[gw47] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1538[gw16] [ 12%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 1539[gw41] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] 1540[gw8] [ 12%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 1541[gw21] [ 12%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 1542tests/docs_src/test_extensions.py::test_session_tier_allow_claimed_returns_the_raw_shape 1543[gw20] [ 12%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1544tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1545tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1546tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 1547tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1548tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 1549tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 1550tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1551tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] 1552tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool 1553tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1554tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 1555tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 1556tests/client/test_subscriptions.py::test_a_cancelled_on_event_barrier_does_not_lose_the_event 1557tests/client/test_stdio.py::test_escalation_fires_once_and_only_after_the_grace_period 1558tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1559tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1560tests/docs_src/test_lowlevel.py::test_add_request_handler_registers_a_method_the_constructor_does_not_know 1561tests/client/test_session_group.py::test_client_session_group_connect_to_server 1562tests/client/test_notification_response.py::test_non_compliant_notification_response 1563tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 1564tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 1565tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 1566tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1567tests/docs_src/test_elicitation.py::test_an_accepted_answer_resumes_the_tool 1568tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1569tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1570[gw33] [ 12%] PASSED tests/docs_src/test_extensions.py::test_session_tier_allow_claimed_returns_the_raw_shape 1571tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1572tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 1573tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 1574[gw46] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1575tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1576tests/docs_src/test_context.py::test_every_request_gets_its_own_context 1577[gw42] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1578[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 1579tests/client/test_client.py::test_client_unsubscribe_resource 1580tests/client/test_client_extensions.py::test_input_required_then_claimed_result_on_retry_resolves_transparently 1581tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result 1582[gw7] [ 12%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1583[gw2] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 1584tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1585tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 1586[gw15] [ 12%] PASSED tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 1587tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1588tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1589[gw3] [ 12%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1590tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 1591[gw29] [ 12%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] 1592[gw34] [ 12%] PASSED tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool 1593[gw1] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1594[gw40] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 1595[gw39] [ 12%] PASSED tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 1596[gw26] [ 12%] PASSED tests/client/test_subscriptions.py::test_a_cancelled_on_event_barrier_does_not_lose_the_event 1597tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] 1598[gw25] [ 12%] PASSED tests/client/test_stdio.py::test_escalation_fires_once_and_only_after_the_grace_period 1599[gw37] [ 13%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1600[gw9] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1601[gw35] [ 13%] PASSED tests/docs_src/test_lowlevel.py::test_add_request_handler_registers_a_method_the_constructor_does_not_know 1602[gw23] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server 1603[gw13] [ 13%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1604[gw17] [ 13%] PASSED tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 1605tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 1606[gw44] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 1607[gw28] [ 13%] PASSED tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 1608[gw36] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1609tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 1610[gw30] [ 13%] PASSED tests/docs_src/test_elicitation.py::test_an_accepted_answer_resumes_the_tool 1611[gw18] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1612[gw32] [ 13%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1613[gw5] [ 13%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1614tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1615[gw19] [ 13%] PASSED tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 1616[gw38] [ 13%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 1617[gw43] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1618[gw31] [ 13%] PASSED tests/docs_src/test_context.py::test_every_request_gets_its_own_context 1619[gw10] [ 13%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1620[gw14] [ 13%] PASSED tests/client/test_client_extensions.py::test_input_required_then_claimed_result_on_retry_resolves_transparently 1621[gw11] [ 13%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result 1622[gw24] [ 13%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1623[gw0] [ 13%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 1624[gw4] [ 13%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1625[gw47] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1626[gw16] [ 13%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 1627[gw41] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] 1628[gw8] [ 13%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 1629[gw21] [ 13%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 1630tests/docs_src/test_extensions.py::test_name_param_request_round_trips_with_no_client_registration 1631[gw20] [ 13%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1632tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1633tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1634tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 1635tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1636tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1637tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 1638tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1639tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement 1640[gw27] [ 13%] PASSED tests/docs/test_translations.py::test_code_block_moved_out_of_a_retranslated_section_gets_repair_turns_like_any_other_finding 1641tests/docs_src/test_lifespan.py::test_context_parameter_never_reaches_the_input_schema 1642tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1643tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 1644tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 1645tests/client/test_subscriptions.py::test_events_outside_the_honored_filter_are_never_delivered 1646tests/client/test_stdio.py::test_a_server_dying_in_the_final_poll_interval_is_not_escalated 1647tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1648tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1649tests/docs_src/test_lowlevel.py::test_a_custom_method_never_changes_the_advertised_capabilities 1650tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1651tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1652tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 1653tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 1654tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 1655tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1656tests/docs_src/test_elicitation.py::test_an_alternative_that_is_also_full_is_asked_about_again 1657tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1658tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1659[gw33] [ 13%] PASSED tests/docs_src/test_extensions.py::test_name_param_request_round_trips_with_no_client_registration 1660tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1661tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 1662tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 1663[gw46] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1664tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1665[gw42] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1666[gw12] [ 13%] PASSED tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 1667tests/docs_src/test_context.py::test_a_tool_reads_the_servers_own_resource 1668tests/client/test_client.py::test_client_set_logging_level 1669tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session 1670tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds 1671[gw7] [ 13%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1672[gw2] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1673tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1674tests/cli/test_claude.py::test_other_servers_preserved 1675[gw15] [ 13%] PASSED tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 1676tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1677tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1678[gw3] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1679tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 1680[gw29] [ 13%] PASSED tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement 1681[gw34] [ 13%] PASSED tests/docs_src/test_lifespan.py::test_context_parameter_never_reaches_the_input_schema 1682[gw1] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1683[gw40] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 1684[gw39] [ 13%] PASSED tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 1685[gw26] [ 13%] PASSED tests/client/test_subscriptions.py::test_events_outside_the_honored_filter_are_never_delivered 1686tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] 1687[gw25] [ 13%] PASSED tests/client/test_stdio.py::test_a_server_dying_in_the_final_poll_interval_is_not_escalated 1688[gw37] [ 13%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1689[gw9] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1690[gw35] [ 13%] PASSED tests/docs_src/test_lowlevel.py::test_a_custom_method_never_changes_the_advertised_capabilities 1691[gw23] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1692[gw13] [ 13%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1693[gw17] [ 13%] PASSED tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 1694tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 1695[gw44] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 1696[gw28] [ 13%] PASSED tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 1697[gw36] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1698[gw30] [ 13%] PASSED tests/docs_src/test_elicitation.py::test_an_alternative_that_is_also_full_is_asked_about_again 1699[gw18] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1700[gw32] [ 13%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1701[gw5] [ 13%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1702tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1703[gw19] [ 14%] PASSED tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 1704[gw38] [ 14%] PASSED tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 1705[gw43] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1706[gw31] [ 14%] PASSED tests/docs_src/test_context.py::test_a_tool_reads_the_servers_own_resource 1707[gw10] [ 14%] PASSED tests/client/test_client.py::test_client_set_logging_level 1708[gw14] [ 14%] PASSED tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session 1709[gw11] [ 14%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds 1710[gw24] [ 14%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1711[gw0] [ 14%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 1712[gw4] [ 14%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1713[gw47] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1714[gw16] [ 14%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 1715tests/docs/test_translations.py::test_shortened_list_and_table_are_fed_back_for_repair_before_the_page_is_published 1716[gw41] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] 1717[gw8] [ 14%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 1718tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 1719[gw20] [ 14%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1720tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1721tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1722tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 1723tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1724tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1725tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 1726tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1727tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder 1728tests/docs_src/test_lifespan.py::test_startup_runs_before_the_first_request_and_shutdown_after_the_last 1729tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1730tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 1731tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 1732tests/client/test_subscriptions.py::test_the_on_event_barrier_completes_before_each_event_is_returned 1733tests/client/test_stdio.py::test_cancelling_the_client_still_runs_the_full_shutdown 1734tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1735tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1736tests/docs_src/test_lowlevel.py::test_initialize_is_reserved 1737tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1738tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1739tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 1740tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 1741tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 1742tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1743tests/docs_src/test_elicitation.py::test_the_client_receives_the_message_and_the_generated_schema 1744tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1745tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1746[gw27] [ 14%] PASSED tests/docs/test_translations.py::test_shortened_list_and_table_are_fed_back_for_repair_before_the_page_is_published 1747[gw33] [ 14%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 1748tests/client/test_auth.py::test_build_metadata[simple-url] 1749tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 1750tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 1751[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1752tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1753[gw42] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1754tests/docs_src/test_context.py::test_a_context_only_tool_takes_no_arguments 1755[gw12] [ 14%] PASSED tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 1756tests/client/test_client.py::test_client_list_resources_with_params 1757tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs 1758tests/client/test_client.py::test_call_tool_auto_loop_raises_mcp_error_when_no_callback_registered 1759[gw7] [ 14%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1760[gw2] [ 14%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1761tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1762tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 1763[gw15] [ 14%] PASSED tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 1764tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1765tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1766[gw3] [ 14%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1767tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 1768[gw29] [ 14%] PASSED tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder 1769[gw34] [ 14%] PASSED tests/docs_src/test_lifespan.py::test_startup_runs_before_the_first_request_and_shutdown_after_the_last 1770[gw1] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1771[gw40] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 1772[gw39] [ 14%] PASSED tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 1773[gw26] [ 14%] PASSED tests/client/test_subscriptions.py::test_the_on_event_barrier_completes_before_each_event_is_returned 1774tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] 1775[gw37] [ 14%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1776[gw25] [ 14%] PASSED tests/client/test_stdio.py::test_cancelling_the_client_still_runs_the_full_shutdown 1777[gw9] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1778[gw35] [ 14%] PASSED tests/docs_src/test_lowlevel.py::test_initialize_is_reserved 1779[gw23] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1780[gw13] [ 14%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1781[gw17] [ 14%] PASSED tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 1782tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 1783[gw28] [ 14%] PASSED tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 1784[gw44] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 1785[gw36] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1786[gw30] [ 14%] PASSED tests/docs_src/test_elicitation.py::test_the_client_receives_the_message_and_the_generated_schema 1787[gw18] [ 14%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1788[gw32] [ 14%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1789[gw5] [ 14%] XFAIL tests/client/test_auth.py::test_build_metadata[simple-url] 1790tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1791[gw19] [ 14%] PASSED tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 1792[gw38] [ 14%] PASSED tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 1793[gw43] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1794[gw31] [ 14%] PASSED tests/docs_src/test_context.py::test_a_context_only_tool_takes_no_arguments 1795[gw10] [ 14%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1796[gw14] [ 14%] PASSED tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs 1797[gw11] [ 14%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_raises_mcp_error_when_no_callback_registered 1798[gw24] [ 14%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1799[gw0] [ 14%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 1800[gw4] [ 14%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1801[gw47] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1802[gw16] [ 14%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 1803[gw41] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] 1804[gw8] [ 14%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 1805tests/docs/test_translations.py::test_page_still_broken_after_two_repair_turns_fails_and_keeps_the_previous_translation 1806tests/docs_src/test_first_steps.py::test_call_the_tool 1807[gw20] [ 15%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1808tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1809tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1810tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 1811tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1812tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1813tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 1814tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1815tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] 1816tests/docs_src/test_lifespan.py::test_bare_context_reaches_the_lifespan_object_in_resources_and_prompts 1817tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1818tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 1819tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 1820tests/client/test_subscriptions.py::test_client_listen_installs_the_cache_eviction_barrier_exactly_when_a_cache_exists 1821tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1822tests/client/test_stdio.py::test_writing_after_the_server_dies_reports_clean_closure 1823tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1824tests/docs_src/test_media.py::test_image_return_becomes_an_image_content_block 1825tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1826tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1827tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 1828tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 1829tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 1830tests/docs_src/test_elicitation.py::test_decline_and_cancel_are_ordinary_return_values 1831tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1832tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1833[gw33] [ 15%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 1834tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1835tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 1836tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 1837[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1838tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1839[gw42] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1840tests/docs_src/test_context.py::test_register_a_tool_at_runtime_and_notify_the_client 1841[gw12] [ 15%] PASSED tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 1842tests/client/test_client.py::test_client_list_resource_templates 1843tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions 1844tests/client/test_client.py::test_get_prompt_auto_loop_resolves_input_required_via_callbacks 1845[gw7] [ 15%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1846[gw2] [ 15%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1847tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1848tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 1849[gw15] [ 15%] PASSED tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 1850tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1851[gw3] [ 15%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1852tests/client/test_extension.py::test_advertise_serves_captured_settings 1853[gw29] [ 15%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] 1854[gw34] [ 15%] PASSED tests/docs_src/test_lifespan.py::test_bare_context_reaches_the_lifespan_object_in_resources_and_prompts 1855[gw1] [ 15%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1856[gw40] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 1857[gw39] [ 15%] PASSED tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 1858[gw26] [ 15%] PASSED tests/client/test_subscriptions.py::test_client_listen_installs_the_cache_eviction_barrier_exactly_when_a_cache_exists 1859tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] 1860[gw37] [ 15%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1861[gw25] [ 15%] PASSED tests/client/test_stdio.py::test_writing_after_the_server_dies_reports_clean_closure 1862[gw9] [ 15%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1863[gw35] [ 15%] PASSED tests/docs_src/test_media.py::test_image_return_becomes_an_image_content_block 1864[gw23] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1865[gw13] [ 15%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1866[gw17] [ 15%] PASSED tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 1867tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 1868[gw28] [ 15%] PASSED tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 1869[gw44] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 1870[gw30] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_decline_and_cancel_are_ordinary_return_values 1871[gw18] [ 15%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1872[gw32] [ 15%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1873[gw5] [ 15%] PASSED tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1874tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1875[gw19] [ 15%] PASSED tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 1876[gw38] [ 15%] PASSED tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 1877[gw43] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1878[gw31] [ 15%] PASSED tests/docs_src/test_context.py::test_register_a_tool_at_runtime_and_notify_the_client 1879[gw10] [ 15%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1880[gw14] [ 15%] PASSED tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions 1881[gw11] [ 15%] PASSED tests/client/test_client.py::test_get_prompt_auto_loop_resolves_input_required_via_callbacks 1882[gw24] [ 15%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1883[gw0] [ 15%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 1884[gw47] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1885[gw16] [ 15%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 1886[gw41] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] 1887[gw8] [ 15%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 1888tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1889[gw20] [ 15%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1890tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1891tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1892tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 1893tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1894tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1895tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 1896tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1897tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 1898tests/docs_src/test_lifespan.py::test_parameterized_context_is_tool_only 1899tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1900tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 1901tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 1902tests/client/test_subscriptions.py::test_the_cache_eviction_barrier_maps_events_and_contains_store_faults 1903tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1904tests/client/test_stdio.py::test_exiting_with_an_unconsumed_server_message_does_not_raise 1905tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1906tests/docs_src/test_media.py::test_image_result_has_no_structured_content_and_no_output_schema 1907tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1908tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1909tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 1910tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question 1911tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 1912tests/docs_src/test_elicitation.py::test_a_tool_that_does_not_ask_needs_nothing_from_the_client 1913tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1914tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1915[gw33] [ 15%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1916tests/client/test_auth.py::test_build_metadata[with-path-param] 1917tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 1918tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 1919[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1920tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1921[gw42] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1922tests/docs_src/test_dependencies.py::test_the_resolver_fills_the_parameter_from_the_tools_own_argument 1923[gw12] [ 15%] PASSED tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 1924tests/client/test_client.py::test_list_prompts 1925tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary 1926tests/client/test_client.py::test_read_resource_auto_loop_resolves_input_required_via_callbacks 1927[gw7] [ 15%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1928[gw2] [ 15%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1929tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1930tests/cli/test_claude.py::test_raises_when_config_dir_missing 1931[gw15] [ 15%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 1932tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1933[gw3] [ 15%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1934tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 1935[gw29] [ 15%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 1936[gw34] [ 15%] PASSED tests/docs_src/test_lifespan.py::test_parameterized_context_is_tool_only 1937[gw1] [ 15%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1938[gw40] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 1939[gw39] [ 15%] PASSED tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 1940[gw26] [ 15%] PASSED tests/client/test_subscriptions.py::test_the_cache_eviction_barrier_maps_events_and_contains_store_faults 1941tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] 1942[gw37] [ 15%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1943[gw25] [ 15%] PASSED tests/client/test_stdio.py::test_exiting_with_an_unconsumed_server_message_does_not_raise 1944[gw9] [ 16%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1945[gw35] [ 16%] PASSED tests/docs_src/test_media.py::test_image_result_has_no_structured_content_and_no_output_schema 1946[gw23] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1947[gw17] [ 16%] PASSED tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 1948[gw13] [ 16%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1949tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 1950[gw28] [ 16%] PASSED tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question 1951[gw44] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 1952[gw30] [ 16%] PASSED tests/docs_src/test_elicitation.py::test_a_tool_that_does_not_ask_needs_nothing_from_the_client 1953[gw18] [ 16%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1954[gw32] [ 16%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1955[gw5] [ 16%] PASSED tests/client/test_auth.py::test_build_metadata[with-path-param] 1956tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1957[gw27] [ 16%] PASSED tests/docs/test_translations.py::test_page_still_broken_after_two_repair_turns_fails_and_keeps_the_previous_translation 1958[gw19] [ 16%] PASSED tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 1959[gw38] [ 16%] PASSED tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 1960[gw43] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1961[gw31] [ 16%] PASSED tests/docs_src/test_dependencies.py::test_the_resolver_fills_the_parameter_from_the_tools_own_argument 1962[gw10] [ 16%] PASSED tests/client/test_client.py::test_list_prompts 1963[gw14] [ 16%] PASSED tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary 1964[gw11] [ 16%] PASSED tests/client/test_client.py::test_read_resource_auto_loop_resolves_input_required_via_callbacks 1965[gw24] [ 16%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1966[gw0] [ 16%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 1967[gw47] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1968[gw16] [ 16%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 1969[gw41] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] 1970[gw8] [ 16%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 1971tests/docs_src/test_first_steps.py::test_read_the_resource_template 1972[gw20] [ 16%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1973tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1974tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1975tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 1976tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1977tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1978tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 1979tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1980tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] 1981tests/docs_src/test_lifespan.py::test_default_lifespan_yields_an_empty_dict 1982tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1983tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 1984tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing 1985tests/client/test_subscriptions.py::test_a_raw_request_id_collision_fails_the_subscription_not_the_session 1986tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1987tests/client/test_stdio.py::test_spawn_failure_propagates_the_error_and_leaks_no_streams 1988tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1989tests/docs_src/test_media.py::test_audio_return_becomes_an_audio_content_block 1990tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] 1991tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 1992tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1993tests/docs_src/test_client_callbacks.py::test_the_callback_receives_the_servers_question_as_form_params 1994tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 1995tests/docs_src/test_elicitation.py::test_an_answer_that_does_not_match_the_schema_never_reaches_the_tool_code 1996tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1997tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1998[gw33] [ 16%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 1999tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 2000tests/docs/test_translations.py::test_status_classifies_each_page_against_the_current_english_and_lists_removable_files 8661tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 8662[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 8663[gw45] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 8664tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] 8665[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 8666tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 8667[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 8668tests/server/test_runner.py::test_runner_on_notify_drops_malformed_params 8669[gw45] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] 8670tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_sealing 8671tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 8672tests/server/test_request_state_boundary.py::test_an_explicit_null_request_state_is_treated_as_absent[boundary-installed] 8673[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 8674tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 8675[gw27] [ 74%] PASSED tests/server/test_request_state_boundary.py::test_an_explicit_null_request_state_is_treated_as_absent[boundary-installed] 8676[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 8677tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 8678tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 8679[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 8680tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 8681[gw27] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 8682[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 8683tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 8684[gw25] [ 74%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_malformed_params 8685tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 8686[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 8687tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 8688[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 8689tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 8690tests/server/test_runner.py::test_runner_initialize_opens_gate_but_event_fires_only_after_initialized_notification 8691[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 8692tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 8693[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 8694tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 8695[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 8696tests/server/test_runner.py::test_dual_era_loop_malformed_envelope_content_is_a_modern_era_error 8697[gw17] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_malformed_envelope_content_is_a_modern_era_error 8698tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8699tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused 8700tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/prompts/list_changed] 8701[gw7] [ 74%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/prompts/list_changed] 8702tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8703[gw38] [ 74%] PASSED tests/server/test_runner.py::test_runner_initialize_opens_gate_but_event_fires_only_after_initialized_notification 8704tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8705[gw38] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8706[gw17] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8707tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8708[gw40] [ 74%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_sealing 8709[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8710tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8711[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8712tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 8713[gw34] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 8714[gw17] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8715tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8716tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 8717[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 8718tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8719[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8720tests/shared/test_inbound.py::test_ladder_first_failure_wins 8721[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_ladder_first_failure_wins 8722tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 8723[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 8724tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 8725[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 8726tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8727[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8728tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8729tests/server/test_runner.py::test_runner_initialize_echoes_supported_version_and_falls_back_to_latest 8730[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 8731tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8732[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8733[gw8] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused 8734tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8735[gw8] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8736tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8737[gw8] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8738[gw40] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8739tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 8740[gw12] [ 74%] PASSED tests/server/test_runner.py::test_runner_initialize_echoes_supported_version_and_falls_back_to_latest 8741tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 8742tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8743tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8744[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8745tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 8746[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 8747tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 8748[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 8749tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 8750[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 8751tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 8752[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 8753tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8754tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8755[gw25] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8756[gw17] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8757tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8758[gw17] [ 74%] PASSED tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8759tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 8760[gw17] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 8761tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8762[gw17] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8763tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8764[gw17] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8765[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 8766tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 8767[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 8768tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 8769[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 8770tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 8771tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8772[gw8] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8773tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 8774[gw8] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 8775tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 8776[gw8] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 8777[gw27] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 8778tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 8779[gw27] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 8780tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 8781[gw27] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 8782tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 8783[gw27] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 8784tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param 8785[gw27] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param 8786tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 8787[gw27] [ 75%] PASSED tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 8788[gw38] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8789tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8790[gw38] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8791tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8792[gw38] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8793tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 8794[gw38] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 8795tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8796[gw38] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8797tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8798[gw38] [ 75%] PASSED tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8799tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 8800[gw8] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 8801tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 8802[gw8] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 8803[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8804[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 8805tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 8806[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 8807tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 8808[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 8809tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 8810[gw12] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 8811tests/server/test_runner.py::test_dual_era_loop_discover_locks_modern_and_serves_envelope_requests 8812[gw21] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_default_client_uses_mcp_timeouts_and_httpx_redirect_default 8813[gw19] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_discover_locks_modern_and_serves_envelope_requests 8814tests/server/test_server_context.py::test_context_log_is_gated_by_the_request_log_level_at_2026 8815tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 8816[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 8817tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 8818tests/server/test_apps.py::test_apps_tool_stamps_ui_resource_uri_on_tool_meta 8819[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 8820tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 8821[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 8822tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 8823[gw42] [ 75%] PASSED tests/server/test_server_context.py::test_context_log_is_gated_by_the_request_log_level_at_2026 8824tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 8825[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 8826tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 8827tests/server/test_session.py::test_send_log_message_is_request_scoped_at_2026_even_without_related_request_id 8828[gw32] [ 75%] PASSED tests/server/test_session.py::test_send_log_message_is_request_scoped_at_2026_even_without_related_request_id 8829[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 8830tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 8831[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 8832tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] 8833[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 8834tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 8835tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 8836[gw1] [ 75%] PASSED tests/server/test_apps.py::test_apps_tool_stamps_ui_resource_uri_on_tool_meta 8837[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 8838[gw32] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] 8839tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] 8840tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] 8841[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 8842tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 8843tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 8844[gw32] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] 8845[gw19] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 8846[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] 8847tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] 8848tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 8849[gw32] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 8850[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 8851tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 8852[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 8853tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 8854[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] 8855tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] 8856tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 8857[gw32] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 8858tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 8859tests/server/test_session.py::test_protocol_version_proxies_connection 8860[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] 8861tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] 8862tests/server/test_stateless_mode.py::test_send_request_raises_no_back_channel_without_related_id 8863tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[PUT] 8864[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 8865tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] 8866[gw42] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] 8867[gw32] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 8868tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 8869[gw32] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 8870tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 8871[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] 8872tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] 8873[gw14] [ 75%] PASSED tests/server/test_session.py::test_protocol_version_proxies_connection 8874tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8875[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8876tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8877tests/server/test_read_resource.py::test_read_resource_binary 8878[gw32] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 8879[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] 8880tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] 8881[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] 8882[gw15] [ 76%] PASSED tests/server/test_stateless_mode.py::test_send_request_raises_no_back_channel_without_related_id 8883[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8884tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8885tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] 8886[gw20] [ 76%] PASSED tests/server/test_read_resource.py::test_read_resource_binary 8887[gw35] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[PUT] 8888tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8889[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8890tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8891[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8892tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8893[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8894tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 8895tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 8896[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 8897tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 8898[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 8899tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 8900[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8901tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8902[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8903tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8904[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8905tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8906[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8907[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 8908tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 8909[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 8910[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 8911tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 8912[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 8913tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 8914tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8915[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8916[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] 8917tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 8918[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 8919tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 8920[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 8921[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 8922tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 8923[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 8924tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 8925[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 8926tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 8927[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 8928tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 8929[gw20] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 8930tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 8931[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 8932tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 8933[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 8934tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 8935[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 8936tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 8937[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 8938tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 8939[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 8940tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope 8941tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] 8942[gw31] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope 8943tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 8944tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 8945[gw31] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 8946tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] 8947tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 8948[gw11] [ 76%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 8949[gw22] [ 76%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] 8950tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 8951tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 8952[gw23] [ 76%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] 8953[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 8954tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 8955[gw31] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 8956tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 8957[gw31] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 8958tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 8959[gw18] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 8960[gw31] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 8961[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 8962tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 8963[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 8964tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 8965[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 8966tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 8967[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 8968tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 8969tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 8970[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 8971tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 8972tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 8973[gw18] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 8974tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 8975tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 8976[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 8977tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 8978tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 8979[gw31] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 8980tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 8981[gw31] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 8982tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 8983[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 8984tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 8985[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 8986[gw18] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 8987tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 8988[gw10] [ 76%] PASSED tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_message_router_async_for 8989tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 8990[gw23] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 8991tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 8992[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 8993tests/issues/test_141_resource_templates.py::test_resource_template_edge_cases 8994[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 8995[gw22] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 8996tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 8997tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 8998[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 8999tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9000[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9001[gw18] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 9002tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 9003[gw18] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 9004tests/shared/test_auth.py::test_oauth 9005[gw22] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9006tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 9007[gw10] [ 77%] PASSED tests/issues/test_141_resource_templates.py::test_resource_template_edge_cases 9008[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_oauth 9009tests/issues/test_141_resource_templates.py::test_resource_template_client_interaction 9010tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first 9011tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9012[gw18] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 9013tests/shared/test_auth.py::test_valid_url_passes_through_unchanged 9014[gw0] [ 77%] PASSED tests/shared/test_auth.py::test_valid_url_passes_through_unchanged 9015tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9016tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9017tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9018tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9019[gw18] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9020tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9021[gw39] [ 77%] PASSED tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first 9022tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9023tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] 9024tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 9025[gw26] [ 77%] PASSED tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 9026[gw46] [ 77%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9027tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9028[gw46] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9029tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9030[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9031tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9032[gw18] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9033[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9034[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9035tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9036[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9037tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9038[gw28] [ 77%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9039tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9040tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9041[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9042tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9043[gw10] [ 77%] PASSED tests/issues/test_141_resource_templates.py::test_resource_template_client_interaction 9044tests/issues/test_152_resource_mime_type.py::test_mcpserver_resource_mime_type 9045[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9046tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9047[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9048tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9049tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9050[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9051tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9052[gw46] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9053tests/shared/test_jsonrpc_dispatcher.py::test_progress_callback_exception_is_swallowed_and_logged 9054[gw46] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_callback_exception_is_swallowed_and_logged 9055tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9056[gw28] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9057tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9058[gw28] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9059tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9060[gw28] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9061tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9062[gw46] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9063tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_always_carries_meta_on_the_wire 9064[gw46] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_always_carries_meta_on_the_wire 9065[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9066tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9067[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9068tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9069[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9070tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9071[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9072tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9073[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9074tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9075[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9076tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9077[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9078tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 9079[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 9080[gw10] [ 77%] PASSED tests/issues/test_152_resource_mime_type.py::test_mcpserver_resource_mime_type 9081tests/issues/test_152_resource_mime_type.py::test_lowlevel_resource_mime_type 9082[gw10] [ 77%] PASSED tests/issues/test_152_resource_mime_type.py::test_lowlevel_resource_mime_type 9083tests/issues/test_1574_resource_uri_validation.py::test_relative_uri_roundtrip 9084[gw10] [ 77%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_relative_uri_roundtrip 9085tests/issues/test_1574_resource_uri_validation.py::test_custom_scheme_uri_roundtrip 9086[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9087tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9088[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9089[gw37] [ 77%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] 9090[gw28] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9091tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9092[gw46] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9093[gw10] [ 77%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_custom_scheme_uri_roundtrip 9094tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9095[gw28] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9096tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9097[gw28] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9098tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9099[gw37] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9100tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9101[gw37] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9102tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9103[gw37] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9104tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9105[gw37] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9106tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9107[gw37] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9108tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9109[gw37] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9110tests/issues/test_1574_resource_uri_validation.py::test_uri_json_roundtrip_preserves_value 9111[gw10] [ 78%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_uri_json_roundtrip_preserves_value 9112tests/issues/test_1574_resource_uri_validation.py::test_resource_contents_uri_json_roundtrip 9113[gw10] [ 78%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_resource_contents_uri_json_roundtrip 9114tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters 9115[gw10] [ 78%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters 9116tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters_and_space 9117[gw10] [ 78%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters_and_space 9118tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_multiple_parameters 9119tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 9120tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host 9121[gw9] [ 78%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 9122[gw10] [ 78%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_multiple_parameters 9123tests/issues/test_1754_mime_type_parameters.py::test_mime_type_preserved_in_read_resource 9124[gw5] [ 78%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host 9125tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9126tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9127[gw10] [ 78%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_preserved_in_read_resource 9128[gw9] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9129tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9130tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] 9131tests/shared/test_auth_utils.py::test_check_resource_allowed_case_insensitive_origin 9132[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9133[gw2] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_case_insensitive_origin 9134tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9135[gw9] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9136tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9137tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9138[gw29] [ 78%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] 9139[gw9] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9140tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9141tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9142[gw2] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9143[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9144tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9145tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9146[gw29] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9147[gw2] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9148tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[direct] 9149tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9150[gw29] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9151tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9152tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9153[gw2] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9154tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9155[gw9] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9156tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9157[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9158tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9159[gw36] [ 78%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[direct] 9160[gw2] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9161tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9162[gw9] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9163[gw29] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9164tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9165[gw29] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9166tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9167[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9168tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9169tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9170[gw36] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9171tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9172[gw29] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9173tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9174tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9175[gw9] [ 78%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9176[gw2] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9177tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9178[gw2] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9179[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9180tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9181tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[jsonrpc] 9182[gw29] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9183[gw36] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9184tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9185[gw36] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9186tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9187[gw44] [ 78%] PASSED tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[jsonrpc] 9188tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9189[gw44] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9190tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9191[gw44] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9192tests/shared/test_path_security.py::test_is_absolute_path[-False] 9193[gw44] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 9194tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9195[gw44] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9196tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9197[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9198[gw36] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9199tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9200[gw36] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9201tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9202[gw36] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9203[gw44] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9204tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9205[gw44] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9206tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout 9207tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[direct] 9208tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 9209tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9210tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[a/b] 9211[gw41] [ 78%] PASSED tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[direct] 9212[gw43] [ 78%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9213tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9214[gw6] [ 78%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout 9215tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9216tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9217[gw41] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9218tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9219[gw47] [ 78%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 9220tests/shared/test_path_security.py::test_safe_join_simple 9221[gw43] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9222tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9223[gw43] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9224[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9225tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9226[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9227tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9228tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9229[gw43] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9230tests/shared/test_httpx_utils.py::test_custom_parameters 9231tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9232[gw47] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9233tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9234[gw47] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9235tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9236[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9237tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9238[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9239[gw43] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9240tests/shared/test_path_security.py::test_safe_join_base_equals_target 9241[gw47] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9242tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9243tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9244[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9245[gw16] [ 79%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[a/b] 9246tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9247[gw16] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9248tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9249[gw16] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9250tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9251[gw16] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9252tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9253[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9254tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9255[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9256tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9257[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9258tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9259[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9260tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9261[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9262tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9263[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9264[gw43] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9265tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9266[gw43] [ 79%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9267[gw47] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9268tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9269[gw47] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9270tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9271[gw47] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9272[gw16] [ 79%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9273tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9274[gw16] [ 79%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9275tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9276[gw16] [ 79%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9277tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/bar-] 9278[gw24] [ 79%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/bar-] 9279tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 9280tests/shared/test_sse.py::test_sse_client_on_session_created 9281tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 9282tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 9283[gw30] [ 79%] PASSED tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 9284[gw21] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_custom_parameters 9285tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9286[gw21] [ 79%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9287tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9288[gw21] [ 79%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9289tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9290[gw33] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 9291tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9292[gw33] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9293tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9294[gw33] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9295tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9296tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9297tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] 9298[gw45] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] 9299[gw21] [ 79%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9300tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9301[gw21] [ 79%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9302tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9303[gw24] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9304tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9305[gw24] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9306tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9307[gw24] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9308tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9309tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] 9310[gw4] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] 9311tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9312[gw33] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9313tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9314[gw33] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9315tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9316[gw33] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9317tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9318[gw13] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 9319tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9320[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9321tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9322[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9323tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9324[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9325tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9326[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9327tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9328[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9329tests/shared/test_streamable_http.py::test_content_type_validation 9330[gw30] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9331tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9332[gw21] [ 79%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9333tests/shared/test_sse.py::test_raw_sse_connection 9334[gw21] [ 79%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9335[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9336tests/shared/test_streamable_http.py::test_json_validation 9337[gw24] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9338tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9339[gw24] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9340tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9341[gw24] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9342[gw33] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9343tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9344[gw45] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9345tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9346tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 9347[gw4] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9348tests/shared/test_streamable_http.py::test_json_parsing 9349[gw30] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9350[gw45] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9351tests/shared/test_sse.py::test_sse_client_exception_handling 9352[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9353[gw34] [ 80%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 9354tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9355tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9356tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 9357[gw25] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 9358[gw4] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9359tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9360[gw23] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9361tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9362tests/shared/test_streamable_http.py::test_method_not_allowed 9363[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9364tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9365tests/shared/test_streamable_http.py::test_accept_header_validation 9366[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9367[gw45] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9368tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9369tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 9370[gw40] [ 80%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 9371tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9372[gw25] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9373tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9374tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 9375[gw4] [ 80%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9376tests/shared/test_streamable_http.py::test_session_validation 9377[gw4] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9378[gw30] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9379tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9380[gw7] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 9381tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9382[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9383tests/shared/test_streamable_http.py::test_session_termination 9384[gw45] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9385tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9386[gw45] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9387[gw25] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9388tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9389tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 9390[gw17] [ 80%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 9391tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 9392[gw17] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 9393tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9394[gw40] [ 80%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9395tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9396[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9397tests/shared/test_streamable_http.py::test_response 9398tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9399[gw45] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9400[gw25] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9401tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9402tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 9403[gw27] [ 80%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 9404[gw8] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9405tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9406[gw8] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9407tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9408tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 9409[gw17] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 9410tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9411[gw17] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9412tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9413[gw8] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9414tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9415tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9416[gw27] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9417[gw30] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9418tests/shared/test_sse.py::test_request_context_propagation 9419[gw17] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9420tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9421[gw3] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9422tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9423[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_response 9424tests/shared/test_streamable_http.py::test_json_response 9425tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9426[gw27] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9427tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9428[gw40] [ 80%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9429tests/shared/test_streamable_http.py::test_client_crash_handled 9430[gw17] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9431tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 9432[gw38] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 9433tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9434[gw27] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9435tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9436[gw27] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9437tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9438[gw25] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9439tests/shared/test_streamable_http.py::test_get_sse_stream 9440tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 9441[gw12] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 9442[gw27] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9443[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response 9444tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9445[gw3] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9446tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9447[gw3] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9448tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9449[gw3] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9450[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9451tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9452[gw12] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9453tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9454[gw8] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9455tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9456[gw8] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9457tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9458[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9459[gw30] [ 81%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9460tests/shared/test_sse.py::test_request_context_isolation 9461[gw25] [ 81%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9462tests/shared/test_streamable_http.py::test_get_validation 9463tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9464[gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9465[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9466tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9467[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9468tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9469[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9470[gw38] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9471tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9472[gw38] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9473tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9474[gw38] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9475tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9476[gw38] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9477tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9478[gw38] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9479tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9480[gw3] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9481[gw34] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9482[gw25] [ 81%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9483tests/shared/test_uri_template.py::test_parse_literal_only 9484[gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9485tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 9486[gw19] [ 81%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 9487tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] 9488tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 9489tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9490[gw19] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9491tests/shared/test_uri_template.py::test_is_template[-False] 9492[gw32] [ 81%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 9493tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9494[gw42] [ 81%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] 9495tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9496[gw19] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9497tests/shared/test_uri_template.py::test_is_template[{a}-True] 9498[gw32] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9499tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9500[gw32] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9501tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9502[gw19] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9503tests/shared/test_uri_template.py::test_is_template[{-False] 9504[gw19] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9505tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] 9506[gw1] [ 81%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] 9507[gw32] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9508[gw42] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9509tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9510[gw42] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9511tests/shared/test_uri_template.py::test_parse_simple_variable 9512[gw42] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9513tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9514[gw42] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9515tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9516tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 9517tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9518tests/shared/test_uri_template.py::test_is_template[}-False] 9519[gw19] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9520tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9521tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9522[gw32] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9523tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9524[gw32] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9525[gw14] [ 81%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 9526[gw42] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9527[gw35] [ 81%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9528tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9529tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9530[gw40] [ 81%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9531tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9532[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9533tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9534[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9535tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9536[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9537tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9538[gw14] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9539tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9540tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9541[gw20] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9542[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9543tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9544[gw30] [ 81%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9545[gw40] [ 81%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9546tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9547[gw40] [ 81%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9548tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9549[gw40] [ 81%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9550tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9551[gw20] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9552tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9553[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9554tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9555[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9556tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9557[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9558tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9559[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9560[gw20] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9561tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9562[gw20] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9563tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9564[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9565tests/shared/test_uri_template.py::test_parse_explode_modifier 9566[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9567[gw20] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9568tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9569[gw20] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9570[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9571tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9572[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9573tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9574[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9575tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9576[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9577tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9578[gw15] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9579tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9580tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9581[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9582tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9583tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9584tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9585[gw31] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9586[gw22] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9587[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9588tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9589tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9590[gw11] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9591[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9592tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9593tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9594[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9595tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9596[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9597[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9598tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9599tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9600[gw22] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9601tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9602tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9603[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9604[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9605[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9606tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9607tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9608[gw22] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9609tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9610[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9611tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9612[gw22] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9613tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9614[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9615tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9616[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9617tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9618tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9619[gw22] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9620tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9621[gw22] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9622[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9623[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9624tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9625[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9626[gw18] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9627tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9628[gw18] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9629tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9630[gw18] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9631tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9632tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9633tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9634tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9635[gw18] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9636tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9637tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9638[gw26] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9639[gw46] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9640tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9641[gw39] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9642tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9643tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9644tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9645tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9646[gw0] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9647[gw37] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9648[gw26] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9649tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9650[gw26] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9651tests/issues/test_176_progress_token.py::test_progress_token_zero_first_call 9652tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9653tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9654tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9655[gw28] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9656tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9657[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9658tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9659[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9660[gw46] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9661tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9662[gw46] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9663tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9664[gw46] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9665tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9666[gw46] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9667tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9668[gw46] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9669[gw37] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9670tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9671[gw37] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9672tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9673[gw37] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9674tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9675[gw26] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9676tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9677[gw26] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9678tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9679[gw26] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9680[gw28] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9681tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9682[gw28] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9683tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9684[gw28] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9685tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9686[gw28] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9687tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9688[gw39] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9689tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9690[gw39] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9691tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9692[gw39] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9693tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9694[gw39] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9695tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9696[gw39] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9697[gw37] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9698tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9699[gw37] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9700[gw28] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9701[gw18] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9702tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9703[gw18] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9704[gw10] [ 83%] PASSED tests/issues/test_176_progress_token.py::test_progress_token_zero_first_call 9705tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9706[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9707tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9708[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9709tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9710[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9711tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9712[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9713tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9714[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9715tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9716[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9717tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9718[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9719tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9720[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9721tests/shared/test_otel.py::test_client_and_server_spans 9722tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9723[gw29] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9724tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9725[gw2] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9726tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9727tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9728tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9729tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9730tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9731[gw44] [ 83%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9732[gw29] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9733tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9734tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9735[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9736[gw36] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9737tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9738[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9739tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9740[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9741tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9742[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9743tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9744[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9745tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9746tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9747[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9748tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9749tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9750[gw36] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9751[gw29] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9752tests/shared/test_uri_template.py::test_equality_based_on_template_string 9753[gw29] [ 83%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9754tests/shared/test_uri_template.py::test_frozen 9755[gw29] [ 83%] PASSED tests/shared/test_uri_template.py::test_frozen 9756tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9757[gw29] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9758[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9759tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9760[gw41] [ 83%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9761tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9762[gw23] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9763tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9764tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9765[gw36] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9766tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9767[gw5] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9768[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9769tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9770[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9771tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9772[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9773[gw36] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9774tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9775[gw36] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9776tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9777[gw43] [ 83%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9778tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9779tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9780[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9781tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9782[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9783tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9784[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9785tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9786[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9787tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9788[gw36] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9789[gw6] [ 83%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9790tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9791[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9792tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9793[gw43] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9794tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9795[gw43] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9796tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9797[gw43] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9798tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9799[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9800tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9801tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9802[gw5] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9803tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9804[gw5] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9805tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9806[gw5] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9807tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9808[gw5] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9809tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9810[gw5] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9811tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9812[gw43] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9813tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9814[gw43] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9815[gw16] [ 84%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9816tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9817[gw47] [ 84%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9818tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9819[gw47] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9820tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9821[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9822tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9823[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9824tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9825[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9826[gw16] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9827tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9828[gw16] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9829tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9830[gw16] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9831[gw47] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9832tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9833[gw47] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9834tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9835[gw47] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9836tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9837[gw16] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9838tests/shared/test_sse.py::test_sse_client_basic_connection 9839tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9840tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9841tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9842[gw24] [ 84%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9843[gw33] [ 84%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9844tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9845tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9846tests/shared/test_streamable_http.py::test_session_id_pattern 9847[gw24] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9848tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9849[gw13] [ 84%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9850[gw24] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9851tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9852[gw33] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9853tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9854tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9855[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9856[gw4] [ 84%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9857tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9858[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9859tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9860[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9861[gw33] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9862tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9863[gw33] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9864tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9865tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9866[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9867tests/shared/test_sse.py::test_sse_message_id_coercion 9868[gw30] [ 84%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9869tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9870[gw21] [ 84%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9871tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9872[gw21] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9873tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9874[gw9] [ 84%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9875tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9876[gw33] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9877tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9878[gw17] [ 84%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9879tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9880[gw17] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9881tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9882[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9883tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9884tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9885[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9886tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9887[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9888tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9889tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9890[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9891tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9892[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9893[gw17] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9894tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9895[gw17] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9896tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9897[gw24] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9898tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9899[gw24] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9900[gw21] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9901tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9902[gw21] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9903tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9904[gw21] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9905tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9906[gw30] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9907tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9908[gw30] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9909tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9910[gw30] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9911tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9912[gw30] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9913[gw45] [ 84%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9914[gw17] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9915tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9916[gw45] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9917tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9918[gw45] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9919tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9920[gw45] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9921tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9922[gw45] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9923tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9924[gw34] [ 85%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9925tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9926[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9927tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9928[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9929tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9930[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9931tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9932[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9933tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9934[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9935tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9936[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9937tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9938tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9939[gw3] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9940tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9941[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9942[gw27] [ 85%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9943tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9944[gw27] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9945tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9946[gw27] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9947tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9948[gw27] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9949tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9950[gw27] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9951[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9952tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9953[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9954tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9955[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9956tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9957[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9958[gw25] [ 85%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9959tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9960tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9961tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 9962[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9963tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9964[gw8] [ 85%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9965[gw25] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 9966tests/shared/test_uri_template.py::test_match_no_match[static-different] 9967tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9968tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9969[gw25] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 9970[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9971tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9972[gw25] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9973tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9974[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9975[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9976tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9977[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9978tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9979tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9980tests/shared/test_uri_template.py::test_is_template[}{-False] 9981[gw38] [ 85%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9982tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9983[gw38] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9984[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9985tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9986[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9987tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9988[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9989tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9990tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9991[gw25] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9992[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9993[gw19] [ 85%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9994tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9995[gw19] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9996tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9997tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9998[gw38] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9999tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10000[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10001[gw38] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10002tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10003[gw38] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10004tests/shared/test_uri_template.py::test_parse_multiple_expressions 10005[gw19] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10006tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 10007tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10008[gw32] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 10009[gw19] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10010tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10011tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10012[gw19] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10013tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 10014[gw42] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 10015tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10016[gw42] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10017tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10018[gw42] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10019tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 10020[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 10021tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10022tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 10023[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 10024tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10025[gw32] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10026tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10027[gw32] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10028tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10029tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 10030[gw20] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 10031tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10032tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 10033[gw35] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 10034tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10035[gw35] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10036tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10037[gw35] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10038[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10039tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10040[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10041tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10042[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10043tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10044[gw32] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10045tests/shared/test_uri_template.py::test_match_escapes_template_literals 10046[gw32] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10047[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10048tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10049[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10050[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10051tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10052tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10053[gw35] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10054tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10055[gw35] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10056tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10057[gw40] [ 86%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 10058tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10059[gw40] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10060tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10061tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10062[gw42] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10063tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10064[gw42] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10065[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10066tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10067[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10068tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10069[gw40] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10070tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10071[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10072[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10073tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10074[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10075[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10076[gw40] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10077tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10078[gw40] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10079tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 10080[gw15] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 10081tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 10082tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 10083tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10084[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 10085tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 10086[gw22] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 10087tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10088[gw15] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10089tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10090[gw15] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10091tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10092tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10093[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10094tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10095[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10096tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10097[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10098tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10099[gw15] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10100tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10101[gw15] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10102[gw31] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 10103tests/test_examples.py::test_direct_call_tool_result_return 10104[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10105[gw22] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10106tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10107tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 10108tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 10109tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 10110tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 10111tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 10112[gw37] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 10113tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 10114tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 10115[gw26] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 10116[gw46] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 10117[gw28] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 10118[gw31] [ 86%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10119tests/test_examples.py::test_desktop 10120[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 10121tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10122tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10123tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10124tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10125tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:326-328] 10126[gw18] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 10127tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 10128[gw39] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 10129tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10130tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:181-183] 10131[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 10132tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:397-399] 10133tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 10134tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 10135tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 10136tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10137tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 10138[gw29] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 10139[gw44] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 10140[gw2] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 10141tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10142[gw26] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10143tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10144[gw41] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 10145[gw37] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10146tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10147[gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:326-328] 10148tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:330-334] 10149[gw28] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10150tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10151tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10152tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10153[gw18] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:181-183] 10154tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:223-225] 10155[gw39] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10156tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10157[gw22] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10158tests/shared/test_uri_template.py::test_match_never_raises 10159[gw31] [ 86%] PASSED tests/test_examples.py::test_desktop 10160[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10161tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10162[gw36] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10163tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10164tests/test_examples.py::test_docs_examples[README.md:54-70] 10165[gw23] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10166tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10167tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10168[gw31] [ 87%] PASSED tests/test_examples.py::test_docs_examples[README.md:54-70] 10169[gw29] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10170tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10171[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:397-399] 10172[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10173tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10174[gw26] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10175[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10176tests/test_examples.py::test_docs_examples[README.md:97-110] 10177tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10178[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:330-334] 10179tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:342-344] 10180tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10181tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10182tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10183[gw28] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10184tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10185[gw44] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10186tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10187[gw18] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:223-225] 10188tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:238-246] 10189[gw37] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10190tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:130-132] 10191[gw39] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10192tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10193tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10194[gw43] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10195tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10196[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10197tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10198[gw36] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10199tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10200[gw29] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10201tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10202[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10203tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10204tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10205[gw6] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10206tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10207[gw26] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10208[gw41] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10209tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10210[gw41] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10211tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10212[gw44] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10213tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10214[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10215tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10216[gw31] [ 87%] PASSED tests/test_examples.py::test_docs_examples[README.md:97-110] 10217[gw36] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10218tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10219tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10220[gw37] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:130-132] 10221tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:158-160] 10222[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10223tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10224[gw28] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10225tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10226[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10227tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10228tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10229[gw47] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10230tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10231tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10232[gw16] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10233tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10234[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:342-344] 10235tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:352-354] 10236[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:352-354] 10237[gw29] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10238[gw39] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10239tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10240[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10241[gw18] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:238-246] 10242tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:281-283] 10243[gw18] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:281-283] 10244[gw43] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10245tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10246[gw26] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10247[gw37] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:158-160] 10248[gw47] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10249tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10250[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10251[gw44] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10252[gw16] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10253tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10254[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10255tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10256[gw28] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10257[gw39] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10258[gw36] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10259[gw41] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10260tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10261[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10262tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10263[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10264[gw43] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10265tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10266tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10267tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10268[gw4] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10269tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10270tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10271[gw13] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10272tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10273[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10274tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10275[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10276tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10277[gw17] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10278tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10279tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10280[gw45] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10281tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10282[gw21] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10283tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10284tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10285[gw24] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10286tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10287tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10288[gw30] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10289tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10290[gw43] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10291[gw22] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10292tests/test_examples.py::test_simple_echo 10293[gw33] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10294tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10295[gw16] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10296tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10297[gw16] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10298[gw47] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10299tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10300[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10301tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10302[gw33] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10303tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10304[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10305tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10306[gw47] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10307[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10308[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10309[gw17] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10310tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10311[gw45] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10312tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:78-80] 10313[gw24] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10314tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10315[gw30] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10316tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10317tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 10318[gw9] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 10319tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10320tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10321[gw21] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10322tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10323[gw34] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10324tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10325tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10326[gw27] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10327tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10328tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10329tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10330[gw33] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10331tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10332[gw22] [ 88%] PASSED tests/test_examples.py::test_simple_echo 10333[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10334tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10335[gw25] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10336tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10337tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10338[gw3] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10339tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10340[gw24] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10341[gw30] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10342tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10343[gw17] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10344tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10345[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10346tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10347tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10348[gw21] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10349tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10350tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10351[gw8] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10352tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10353[gw27] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10354[gw45] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:78-80] 10355tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10356tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:79-107] 10357[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10358tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10359tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10360[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10361tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10362[gw12] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10363tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10364[gw38] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10365[gw33] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10366tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10367[gw34] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10368tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10369tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10370[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10371tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10372[gw24] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10373[gw17] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10374[gw25] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10375tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10376[gw30] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10377[gw19] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10378tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10379[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10380tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10381[gw21] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10382[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10383[gw45] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10384[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10385[gw27] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:79-107] 10386tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10387tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:115-124] 10388tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10389[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10390tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10391[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10392tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10393tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10394tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10395[gw32] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10396[gw38] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10397tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10398tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10399[gw42] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10400tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10401tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10402[gw19] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10403tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10404[gw34] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10405tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10406[gw25] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10407tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10408tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10409[gw1] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10410tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10411[gw35] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10412tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10413[gw27] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:115-124] 10414[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10415tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10416[gw40] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10417tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10418[gw20] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10419tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10420tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10421[gw14] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10422tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10423[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10424[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10425tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10426[gw19] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10427tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10428[gw38] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10429tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10430[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10431tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10432[gw25] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10433[gw32] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10434tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10435[gw34] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10436[gw42] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10437tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10438[gw35] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10439tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10440[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10441[gw40] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10442tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10443tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10444[gw15] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10445tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10446[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10447tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10448[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10449tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10450[gw11] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10451tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10452[gw38] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10453[gw20] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10454tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10455tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10456[gw19] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10457[gw32] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10458tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10459[gw42] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10460tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10461[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10462[gw35] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10463tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10464[gw40] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10465tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10466[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10467tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10468[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10469tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10470[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10471tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10472[gw20] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10473tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10474[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10475tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10476[gw42] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10477[gw35] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10478[gw32] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10479[gw40] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10480[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10481[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10482[gw20] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10483tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10484tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10485tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:371-375] 10486tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10487tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10488[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10489[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10490tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:297-301] 10491tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10492tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10493tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:164-167] 10494tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10495tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10496tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10497tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10498tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10499tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10500tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10501tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10502[gw31] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10503tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10504tests/test_examples.py::test_docs_examples[docs/client/transports.md:113-115] 10505[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:371-375] 10506tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10507[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10508[gw37] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:164-167] 10509tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10510[gw26] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10511tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10512[gw46] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10513tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10514[gw23] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10515tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10516[gw29] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10517tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10518[gw18] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:297-301] 10519tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10520[gw28] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10521tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10522[gw44] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10523tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10524tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10525[gw36] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10526[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10527tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10528[gw39] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10529tests/test_types.py::test_tool_use_content 10530tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10531[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10532[gw31] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:113-115] 10533tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10534tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10535[gw39] [ 90%] PASSED tests/test_types.py::test_tool_use_content 10536tests/test_types.py::test_tool_result_content 10537tests/test_types.py::test_create_message_result_with_tool_use 10538[gw36] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10539tests/test_types.py::test_create_message_result_basic 10540[gw41] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10541tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10542[gw43] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10543tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10544tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10545[gw0] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10546tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10547[gw29] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10548tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10549[gw11] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10550[gw16] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10551tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10552[gw37] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10553tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10554[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10555tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10556[gw46] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10557tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10558[gw18] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10559tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10560[gw0] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10561[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10562tests/test_types.py::test_sampling_message_with_assistant_role 10563[gw5] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10564tests/test_types.py::test_sampling_message_backward_compatibility 10565[gw5] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10566[gw26] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10567tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10568[gw36] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10569[gw47] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10570tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10571[gw47] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10572tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10573[gw44] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10574tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10575[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10576tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10577[gw16] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10578tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10579[gw16] [ 90%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10580[gw41] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10581tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10582[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10583tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10584[gw43] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10585tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10586[gw43] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10587[gw39] [ 90%] PASSED tests/test_types.py::test_tool_result_content 10588tests/test_types.py::test_tool_choice 10589[gw39] [ 90%] PASSED tests/test_types.py::test_tool_choice 10590[gw29] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10591tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10592[gw18] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10593tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10594[gw37] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10595tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10596[gw26] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10597tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10598[gw46] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10599tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10600[gw47] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10601[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10602tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10603[gw31] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10604tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10605[gw44] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10606tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10607[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10608tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10609[gw28] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10610tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10611[gw28] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10612tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10613[gw41] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10614tests/test_types.py::test_jsonrpc_request 10615[gw31] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10616[gw41] [ 90%] PASSED tests/test_types.py::test_jsonrpc_request 10617tests/test_examples.py::test_complex_inputs 10618[gw46] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10619[gw29] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10620[gw18] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10621[gw26] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10622[gw37] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10623[gw10] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10624tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10625[gw44] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10626[gw28] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10627tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10628tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10629[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10630tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10631tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10632tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10633tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10634tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10635tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:130-132] 10636tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10637tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10638tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10639[gw33] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10640[gw22] [ 91%] PASSED tests/test_examples.py::test_complex_inputs 10641tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 10642tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10643tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10644tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10645[gw13] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10646[gw17] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10647tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 10648[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10649[gw21] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10650tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10651[gw24] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10652[gw13] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 10653tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 10654tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10655tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10656[gw17] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10657tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10658[gw13] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 10659[gw45] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10660tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10661[gw30] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10662tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10663[gw30] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10664tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10665[gw45] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10666tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10667[gw30] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10668tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10669[gw4] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10670tests/types/test_methods.py::test_built_in_maps_are_immutable 10671[gw4] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10672[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10673tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10674[gw27] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:130-132] 10675tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10676tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10677[gw45] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10678[gw25] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10679tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10680[gw34] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10681tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10682[gw34] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10683[gw24] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10684tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10685[gw27] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10686tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10687[gw27] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10688[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10689tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10690[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10691tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10692[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10693tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10694[gw25] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10695tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10696tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10697[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10698tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10699[gw24] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10700[gw9] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10701tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10702[gw9] [ 91%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10703[gw17] [ 91%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10704tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10705tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10706tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10707[gw8] [ 91%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10708tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10709[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10710[gw25] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10711tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10712[gw38] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10713tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10714[gw38] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10715tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10716tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10717[gw21] [ 91%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10718tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10719[gw21] [ 91%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10720[gw12] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10721tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10722[gw12] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10723tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10724[gw12] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10725tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10726tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10727[gw32] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10728tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10729[gw14] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10730[gw19] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10731tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10732[gw19] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10733tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10734[gw19] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10735[gw40] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10736[gw38] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10737tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10738[gw42] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10739tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10740tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10741[gw1] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10742tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10743[gw35] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10744tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10745[gw32] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10746tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10747[gw40] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10748tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10749tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10750[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10751tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10752[gw42] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10753tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10754[gw32] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10755[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10756[gw20] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10757tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10758[gw20] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10759tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10760[gw35] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10761tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10762[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10763tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10764[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10765[gw42] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10766[gw20] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10767[gw35] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10768[gw40] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10769tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10770tests/test_examples.py::test_docs_examples[docs/client/transports.md:93-95] 10771tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10772tests/test_types.py::test_client_capabilities_with_sampling_tools 10773tests/test_types.py::test_create_message_request_params_with_tools 10774[gw0] [ 92%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10775tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10776tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10777[gw36] [ 92%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10778tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10779[gw5] [ 92%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10780tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10781tests/test_types.py::test_sampling_message_with_user_role 10782[gw16] [ 92%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10783[gw36] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10784tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10785tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10786[gw43] [ 92%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10787tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10788[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10789[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10790[gw15] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10791tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10792[gw22] [ 92%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 10793tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 10794[gw47] [ 92%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10795[gw39] [ 92%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10796tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10797tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10798[gw16] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10799[gw43] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10800[gw11] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:93-95] 10801tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10802[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10803tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10804tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10805[gw47] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10806tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10807tests/test_types.py::test_method_initialization 10808[gw41] [ 92%] PASSED tests/test_types.py::test_method_initialization 10809[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10810tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10811tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10812[gw39] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10813tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10814tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10815tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10816tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10817[gw31] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10818tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10819tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10820tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10821[gw41] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10822tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10823[gw34] [ 92%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10824[gw31] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10825[gw46] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10826tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10827tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 10828[gw13] [ 92%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 10829[gw26] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10830[gw18] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10831[gw10] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10832tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10833tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10834[gw37] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10835[gw46] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10836[gw18] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10837tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10838[gw30] [ 92%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10839tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10840[gw10] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10841[gw44] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10842tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10843tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10844[gw37] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10845[gw29] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10846tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10847[gw29] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10848tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10849[gw30] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10850tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10851[gw26] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10852tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10853[gw4] [ 93%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10854tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10855[gw4] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10856[gw28] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10857tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10858[gw2] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10859tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10860[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10861[gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10862[gw44] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10863tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10864[gw45] [ 93%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10865tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10866[gw45] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10867[gw28] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10868tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10869tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10870tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10871tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10872tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10873[gw17] [ 93%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10874tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 10875tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10876[gw24] [ 93%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10877tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 10878tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10879[gw25] [ 93%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10880tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 10881[gw27] [ 93%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10882tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10883[gw27] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10884tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10885[gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10886tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 10887tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10888[gw12] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10889tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 10890[gw21] [ 93%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10891tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10892[gw21] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10893[gw17] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 10894[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 10895[gw24] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 10896[gw25] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 10897[gw9] [ 93%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10898tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 10899[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 10900[gw3] [ 93%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10901tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10902[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10903[gw12] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 10904tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10905tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10906tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10907[gw38] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10908tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10909[gw14] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10910tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10911[gw19] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10912tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10913tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10914[gw42] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10915[gw38] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10916tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 10917tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10918tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10919[gw1] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10920tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 10921[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 10922[gw23] [ 93%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10923tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10924[gw35] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10925tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 10926[gw19] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10927[gw14] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 10928tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10929tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10930tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10931[gw42] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10932[gw35] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 10933[gw40] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10934tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10935[gw40] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10936[gw20] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10937tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10938[gw20] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10939[gw22] [ 93%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 10940tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10941tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10942[gw32] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10943tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10944[gw32] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10945tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10946tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10947[gw16] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10948tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 10949tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10950[gw47] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10951[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10952tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 10953[gw36] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10954tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 10955[gw36] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 10956tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10957[gw43] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10958tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 10959[gw43] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 10960[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 10961tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10962[gw15] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10963[gw16] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 10964[gw11] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10965tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10966[gw5] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10967tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 10968[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 10969tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10970[gw39] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10971tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10972tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10973tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10974tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10975tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10976tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10977[gw31] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10978tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10979[gw46] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10980[gw41] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10981[gw37] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10982[gw18] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10983tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10984[gw29] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10985[gw34] [ 94%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10986[gw10] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10987tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10988tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 10989tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10990[gw30] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10991[gw4] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 10992tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10993[gw26] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10994tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10995tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10996[gw13] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10997[gw44] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10998tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10999[gw45] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11000tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11001[gw28] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11002[gw2] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11003tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11004[gw27] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11005tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11006tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11007tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11008tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11009[gw24] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11010[gw25] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11011tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11012[gw21] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11013tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11014[gw3] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11015[gw8] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11016tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11017[gw9] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11018[gw38] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11019tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11020[gw12] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11021tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11022[gw17] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11023tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11024tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11025tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11026tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11027tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11028tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11029[gw14] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11030tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11031tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11032[gw35] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11033[gw20] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11034[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11035tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11036[gw32] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11037[gw42] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11038[gw40] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11039tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11040[gw16] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11041tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11042tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11043[gw36] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11044[gw33] [ 94%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11045tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11046tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11047[gw43] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11048tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11049[gw47] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11050tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11051[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11052[gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11053tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11054tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11055[gw11] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11056[gw19] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11057[gw0] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11058tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11059[gw39] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11060tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11061tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11062tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11063tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11064tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11065tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11066tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11067tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11068tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11069tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11070[gw37] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11071[gw29] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11072[gw41] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11073[gw18] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11074tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11075[gw28] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11076[gw30] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11077tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11078[gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11079tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11080[gw45] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11081[gw31] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11082tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11083[gw26] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11084[gw34] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11085tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11086[gw27] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11087tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11088[gw44] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11089[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11090tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11091[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11092[gw46] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11093tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11094tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11095tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11096[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11097tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11098tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11099tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11100[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11101[gw21] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11102tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11103[gw25] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11104[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11105tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11106[gw17] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11107tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11108[gw35] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11109tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11110[gw42] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11111[gw24] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11112[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11113tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11114[gw40] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11115tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11116[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11117[gw38] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11118tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11119tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11120tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11121tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11122tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11123tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11124tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11125tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11126tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11127[gw47] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11128[gw36] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11129tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11130[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11131tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11132tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11133[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11134tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11135[gw32] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11136[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11137[gw16] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11138[gw11] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11139[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11140[gw43] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11141tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11142[gw29] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11143tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11144[gw41] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11145[gw22] [ 95%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11146[gw19] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11147tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11148[gw37] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11149[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11150tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11151[gw20] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11152tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11153tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11154[gw39] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11155tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11156[gw28] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11157tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11158[gw31] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11159tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11160[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11161[gw30] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11162[gw18] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11163tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11164[gw45] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11165tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11166tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11167[gw26] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11168tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11169[gw34] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11170tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11171[gw27] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11172[gw44] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11173tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11174tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11175tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11176tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11178[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11179tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11180[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11181tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11182tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11183[gw17] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11184tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11185[gw21] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11186tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11187[gw35] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11188tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11189[gw42] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11190[gw24] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11191[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11192[gw46] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11193tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11194[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11195[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11196[gw25] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11197tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11198tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11199tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11200tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11201[gw38] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11202[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11203tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11204[gw40] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11205[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11206tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11207tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11208tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11209[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11210[gw36] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11211tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11212[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11213[gw16] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11214[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11215tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11216tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11217tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11219tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11220tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11221tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11222tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11223[gw47] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11224tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11225tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11226[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11227[gw41] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11228[gw32] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11229tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11230tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11231[gw19] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11232[gw43] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11233[gw29] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11234tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11235[gw20] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11236[gw37] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11237[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11238[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11239[gw39] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11240tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11241[gw22] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11242[gw28] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11243tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11244[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11245tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11246tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11247[gw18] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11248tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11249tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11250[gw31] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11251tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11252tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11253[gw45] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11254tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11255[gw30] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11256tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11257[gw44] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11258[gw34] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11259[gw27] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11260tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11261tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11262tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11263tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11264[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11265tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11266[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11267tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11268[gw17] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11269tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11270[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11271tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11272[gw42] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11273tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11274[gw16] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11275[gw38] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11276tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11277[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11278tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11279[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11280tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11281[gw21] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11282tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11283[gw35] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11284tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11285[gw24] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11286tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11287[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11288tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11289[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11291[gw36] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11292tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11293[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11294[gw25] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11295tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11296[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11297tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11298[gw41] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11299[gw33] [ 96%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11300tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11301[gw46] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11302tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11303[gw40] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11304tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11305[gw19] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11306tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11307[gw43] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11309[gw32] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11310tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11311[gw20] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11312[gw26] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11313tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11314[gw47] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11315tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11316[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11318[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11319tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11320[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11321tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11322[gw28] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11323tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11324[gw37] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11326[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11328[gw39] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11329tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11330[gw22] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11331[gw23] [ 97%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11333[gw30] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11334[gw29] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11335tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11336[gw18] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11338tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11339tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11340[gw45] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11341tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11342[gw44] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11343tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11344tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11345[gw31] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11346tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11347[gw17] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11348[gw7] [ 97%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 11349tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11351[gw42] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11353tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11354[gw16] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11355[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11356tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11357[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11358tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11359[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11360tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11361[gw38] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11362[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11363tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11364[gw35] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11366[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11367[gw21] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11368tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11369tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11370tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11371[gw36] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11372[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11373tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11374[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11376tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11377[gw34] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11378tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11379[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11380[gw25] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11381tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11382[gw24] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11383[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11384[gw41] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11385tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11386tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11387tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11388tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11389tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11390tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11391tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11392tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11393tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11394tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11395[gw40] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11396[gw46] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11398[gw20] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11399tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11400[gw32] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11401tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11402[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11403[gw19] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11404[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11405[gw43] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11406tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11407[gw28] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11408[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11409[gw27] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11410tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11411[gw47] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11412[gw26] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11413tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11414tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11415[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11416tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11417[gw37] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11418tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11419tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 11420tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11421[gw22] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11422[gw39] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11423[gw30] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11424tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11425[gw18] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11426tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11427[gw29] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11428[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11429[gw23] [ 98%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 11430tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11432tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11434tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11435tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11436tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11437[gw31] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11439[gw45] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11441[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11442[gw44] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11443[gw16] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11444tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11445[gw38] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11446[gw10] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11447[gw17] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11448[gw42] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11449[gw13] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11450tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11451tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11452tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11453tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11454tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11455[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11456tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11457[gw12] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11459[gw41] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11460tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11461[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11462tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11463[gw34] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11464tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11465[gw24] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11466tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11467[gw20] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11468[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11469tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11470[gw25] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11471tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11472[gw43] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11473tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11474[gw21] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11476[gw19] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11477tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11478[gw40] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11480[gw28] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11481tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11482[gw11] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11483tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11484[gw47] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11485tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11486[gw26] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11487tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11488[gw36] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11489tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11490[gw4] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11491tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11492[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11493tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11494[gw14] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11495[gw8] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11496tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11497[gw32] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11498tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11499[gw35] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11500tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11501[gw27] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11502tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11503tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11504[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11505tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11506[gw37] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11507[gw30] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11508tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11509[gw29] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11510tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11511tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11512[gw15] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11513[gw39] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11514tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11515[gw22] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11516tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11517[gw18] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11518[gw46] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11519[gw23] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11520tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11521tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11522tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11523tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11524[gw44] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11525tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11526[gw38] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11527tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11528tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11529tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11530[gw24] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11531tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11532[gw9] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11533tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11534[gw31] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11535tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11536[gw13] [ 98%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11537tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11538[gw42] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11539[gw16] [ 98%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11540tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11541[gw43] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11542tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11543tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11544[gw41] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11545[gw34] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11546tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11547[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11548[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11549tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11550[gw25] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11551tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11552[gw17] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11553tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11554[gw10] [ 99%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11555tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11556[gw5] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11557[gw21] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11558[gw45] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11559tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11560[gw40] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11561tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11562[gw20] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11563[gw12] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11564tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11565tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11566[gw19] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11567tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11568tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11569tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11570[gw28] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11571tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11572tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11573tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11574tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11575tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11576[gw26] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11577tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11578tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11579[gw11] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11580tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11581[gw14] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11582[gw32] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11583[gw8] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11584[gw47] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11585[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11586[gw35] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11587[gw27] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11588[gw4] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11589[gw36] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11590tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11591tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11592tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11593tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11594tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11595tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11596tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11597tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11598tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11599[gw15] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11600[gw22] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11601tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11602tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11603[gw30] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11604[gw39] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11605[gw18] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11606tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11607[gw44] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11608[gw37] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11609[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11610tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11611[gw31] [ 99%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11612tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11613[gw13] [ 99%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11614tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11615[gw42] [ 99%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11616[gw9] [ 99%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11617[gw23] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11618[gw29] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11619[gw46] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11620[gw33] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11621tests/types/test_version.py::test_supported_versions_are_known 11622[gw16] [ 99%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11623tests/types/test_version.py::test_known_versions_are_strictly_ordered 11624tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11625tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11626tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11627[gw17] [ 99%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11628[gw10] [ 99%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11629[gw45] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11630tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11631[gw12] [ 99%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11632[gw38] [ 99%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11633tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11634[gw33] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11635[gw6] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11636tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11637[gw6] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11638tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11639[gw6] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11640[gw7] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11641tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11642[gw7] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11643tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11644[gw7] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11645tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11646[gw7] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11647tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11648[gw7] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11649tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11650[gw7] [100%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 1165111652═══════════════════════════════ inline-snapshot ════════════════════════════════11653INFO: inline-snapshot was disabled because you used xdist. This means that tests11654with snapshots will continue to run, but snapshot(x) will only return x and 11655inline-snapshot will not be able to fix snapshots or generate reports.11656116571165811659================= 5783 passed, 8 skipped, 1 xfailed in 22.95s ==================11660Finished executing pytestCheckPhase