nixbot

builds

succeeded python3.14-mcp-2.3.0 checks.aarch64-darwin.pkgs-mistral-vibe · build #10818 · raw

1mac02: building xb212j6fgd0qk5h04jqh6l0h4kp21rxn-python3.14-mcp-2.3.0.drv2Sourcing python-remove-tests-dir-hook3Sourcing python-catch-conflicts-hook.sh4Sourcing python-remove-bin-bytecode-hook.sh5Sourcing pypa-build-hook6Using pypaBuildPhase7Sourcing python-runtime-deps-check-hook8Using pythonRuntimeDepsCheckHook9Sourcing pypa-install-hook10Using pypaInstallPhase11Sourcing python-imports-check-hook.sh12Using pythonImportsCheckPhase13Sourcing python-metadata-check-hook.sh14Using pythonMetadataCheckPhase15Sourcing python-namespaces-hook16Sourcing python-catch-conflicts-hook.sh17Sourcing pytest-check-hook18Using pytestCheckPhase
unpackPhase
19unpacking source archive /nix/store/prbkdf4kv543ij4r95gk96pykmcqy7xp-source20source root is source21setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
22no configure script, doing nothing
buildPhase
23Executing pypaBuildPhase24Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.3.025Creating a wheel...26pypa build flags: --no-isolation --outdir dist/ --wheel27* Getting build dependencies for wheel...28* Building wheel...29Successfully built mcp-2.3.0-py3-none-any.whl30Finished creating a wheel...31Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
32Executing pythonRuntimeDepsCheck33Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl34Finished executing pythonRuntimeDepsCheck
installPhase
35Executing pypaInstallPhase36Successfully installed mcp-2.3.0-py3-none-any.whl37Finished executing pypaInstallPhase
pythonOutputDistPhase
38Executing pythonOutputDistPhase39Finished executing pythonOutputDistPhase
fixupPhase
40checking for references to /nix/var/nix/builds/nix-71045-196558070/ in /nix/store/l46711q0nj5jfdaj7cp0xj4d94plxsmi-python3.14-mcp-2.3.0-dist...41patching script interpreter paths in /nix/store/l46711q0nj5jfdaj7cp0xj4d94plxsmi-python3.14-mcp-2.3.0-dist42checking for references to /nix/var/nix/builds/nix-71045-196558070/ in /nix/store/49yq4kb7wlk74zb09895zb9nkpixarhn-python3.14-mcp-2.3.0...43patching script interpreter paths in /nix/store/49yq4kb7wlk74zb09895zb9nkpixarhn-python3.14-mcp-2.3.044stripping (with command strip and flags -S) in /nix/store/49yq4kb7wlk74zb09895zb9nkpixarhn-python3.14-mcp-2.3.0/lib /nix/store/49yq4kb7wlk74zb09895zb9nkpixarhn-python3.14-mcp-2.3.0/bin45Rewriting #!/nix/store/3j0hvszcqcb2vwm5dz0xxfb06cx49k86-python3-3.14.10/bin/python3.14 to #!/nix/store/3j0hvszcqcb2vwm5dz0xxfb06cx49k86-python3-3.14.1046wrapping `/nix/store/49yq4kb7wlk74zb09895zb9nkpixarhn-python3.14-mcp-2.3.0/bin/mcp'...47Executing pythonRemoveTestsDir48Finished executing pythonRemoveTestsDir
installCheckPhase
49no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
50Executing pythonImportsCheckPhase51Check whether the following modules can be imported: mcp
pythonMetadataCheckPhase
52Executing pythonMetadataCheckPhase
pytestCheckPhase
53Executing pytestCheckPhase54pytest 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=1055============================= test session starts ==============================56platform darwin -- Python 3.14.10, pytest-9.1.1, pluggy-1.7.057rootdir: /nix/var/nix/builds/nix-71045-196558070/source58configfile: pyproject.toml59plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.1, xdist-3.8.060asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6110 workers [5913 items] 62scheduling tests via LoadScheduling6364tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 65tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 66tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 67tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 68tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 69tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 70tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 71tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 72tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 73[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 74tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 75[gw1] [ 0%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 76[gw4] [ 0%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 77[gw8] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 78tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 79tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 80tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 81[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 82[gw3] [ 0%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 83tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 84tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 85[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 86[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 87tests/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] 88tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 89[gw2] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 90[gw3] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 91[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 92tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 93[gw1] [ 0%] 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] 94[gw7] [ 0%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 95[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 96tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 97tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 98tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 99tests/docs_src/test_first_steps.py::test_call_the_tool 100tests/cli/test_claude.py::test_generates_uv_run_command 101[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 102tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 103[gw3] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 104[gw8] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 105[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 106tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 107tests/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] 108[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 109tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 110tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 111[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 112[gw1] [ 0%] 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] 113tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 114tests/cli/test_claude.py::test_file_spec_without_object_suffix 115[gw3] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 116[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 117tests/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] 118[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 119tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 120[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 121tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 122tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 123[gw1] [ 0%] 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] 124tests/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] 125[gw8] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 126[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 127tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 128[gw1] [ 0%] 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] 129[gw3] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 130tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 131[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 132tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 133tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 134[gw4] [ 0%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 135[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 136tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 137[gw2] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 138tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 139[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 140tests/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] 141[gw3] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 142tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 143[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 144tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 145[gw1] [ 0%] 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] 146[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 147tests/client/test_client.py::test_client_is_initialized 148tests/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] 149[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 150tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 151tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 152tests/cli/test_claude.py::test_with_editable_adds_flag 153[gw8] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 154[gw1] [ 0%] 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] 155[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 156tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 157tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 158[gw4] [ 0%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 159tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 160[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 161tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 162[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 163tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 164[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 165tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 166[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 167tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 168[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 169tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 170[gw1] [ 0%] 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] 171tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 172[gw4] [ 0%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 173tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 174[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 175tests/cli/test_claude.py::test_env_vars_written 176[gw2] [ 0%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 177tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 178[gw2] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 179tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 180[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 181tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 182[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 183tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 184[gw8] [ 0%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 185tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 186[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 187tests/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] 188[gw1] [ 0%] 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] 189tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 190[gw2] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 191tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 192tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 193[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 194tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 195[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 196[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 197tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 198[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_env_vars_written 199[gw2] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 200tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 201tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 202[gw4] [ 1%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 203[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 204[gw1] [ 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] 205tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 206tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 207tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 208tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 209[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 210[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 211[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 212tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 213tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 214tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 215[gw3] [ 1%] PASSED tests/client/test_client.py::test_client_is_initialized 216[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 217[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 218tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 219tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 220[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 221tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 222tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 223[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 224tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 225[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 226[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 227[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 228tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 229tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 230tests/cli/test_claude.py::test_other_servers_preserved 231[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 232tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 233[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 234tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 235[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 236[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 237tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 238tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 239[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 240tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 241[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 242[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 243tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 244[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 245tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 246[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 247tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 248[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 249tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 250[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 251tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 252tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 253[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 254[gw7] [ 1%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 255tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 256[gw2] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 257[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 258tests/client/test_extension.py::test_result_claim_is_frozen 259tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 260tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 261[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 262[gw2] [ 1%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 263tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 264[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 265tests/client/test_extension.py::test_notification_binding_constructs 266tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 267[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 268[gw2] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 269tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 270tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 271[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 272tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 273[gw2] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 274tests/client/test_extension.py::test_notification_binding_is_frozen 275[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 276[gw7] [ 1%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 277[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 278tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 279tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 280[gw2] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 281[gw3] [ 1%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 282tests/docs_src/test_first_steps.py::test_read_the_resource_template 283tests/client/test_extension.py::test_extension_defaults_advertise_nothing 284[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 285[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 286tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 287tests/client/test_session.py::test_era_neutral_properties_after_discover 288[gw2] [ 1%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 289tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 290tests/client/test_client.py::test_client_with_simple_server 291[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 292[gw6] [ 1%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 293tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 294[gw2] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 295tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 296tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 297[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 298[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 299tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 300[gw2] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 301tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 302tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 303[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 304[gw6] [ 1%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 305tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 306[gw2] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 307tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 308[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 309tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 310tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 311[gw2] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 312[gw4] [ 2%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 313tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 314[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 315tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 316[gw2] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 317tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 318[gw7] [ 2%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 319[gw6] [ 2%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 320tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 321tests/docs_src/test_first_steps.py::test_get_the_prompt 322tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 323[gw2] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 324tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 325[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 326tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 327[gw3] [ 2%] PASSED tests/client/test_client.py::test_client_with_simple_server 328tests/client/test_client.py::test_client_send_ping 329[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 330[gw6] [ 2%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 331tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 332tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 333[gw7] [ 2%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt 334tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 335[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 336tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 337[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 338[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 339[gw6] [ 2%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 340tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 341tests/cli/test_claude.py::test_raises_when_config_dir_missing 342[gw7] [ 2%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 343tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 344[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 345tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 346tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 347[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 348[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 349tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 350tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 351[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 352tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 353[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 354[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 355tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 356[gw7] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 357tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 358tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 359[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 360[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 361tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 362tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 363[gw7] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 364[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 365tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 366tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 367[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 368[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 369tests/cli/test_claude.py::test_get_uv_path[None-uv] 370tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 371[gw7] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 372[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 373[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 374tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 375tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 376[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 377tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 378tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 379[gw3] [ 2%] PASSED tests/client/test_client.py::test_client_send_ping 380[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 381[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 382tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 383tests/client/test_client.py::test_client_list_tools 384tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 385[gw7] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 386[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 387[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 388tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 389tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 390tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 391[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 392tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 393tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 394[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 395[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 396tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 397[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 398tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 399tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 400[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 401tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 402[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 403tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 404[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 405[gw7] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 406tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 407[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 408tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 409[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 410tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 411[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 412tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 413[gw5] [ 2%] PASSED tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 414tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 415[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 416tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 417[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 418tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 419[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 420tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 421tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 422[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 423[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 424tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 425tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 426[gw2] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 427[gw3] [ 3%] PASSED tests/client/test_client.py::test_client_list_tools 428[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 429tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 430tests/client/test_client.py::test_client_call_tool 431[gw2] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 432[gw7] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 433tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 434tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 435tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 436[gw2] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 437tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 438[gw2] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 439[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 440[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 441tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 442tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 443[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 444tests/cli/test_utils.py::test_parse_file_path_missing 445[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 446[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 447tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 448tests/cli/test_utils.py::test_parse_file_exit_on_dir 449[gw7] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 450[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 451tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 452tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 453[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 454[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 455tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 456tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 457[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 458[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 459tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 460[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 461tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 462tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 463[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 464tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 465[gw7] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 466[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 467[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 468tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 469tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 470[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 471tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 472[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 473tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 474tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 475[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 476tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 477[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 478tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 479[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 480[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 481tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 482[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 483tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 484tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 485[gw7] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 486tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 487[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 488tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 489[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 490tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 491tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 492[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 493tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 494[gw7] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 495[gw2] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 496[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 497tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 498tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 499tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 500[gw3] [ 3%] PASSED tests/client/test_client.py::test_client_call_tool 501[gw2] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 502tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 503tests/client/test_client.py::test_read_resource 504[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 505[gw2] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 506tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 507tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 508[gw2] [ 3%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 509tests/client/test_extension.py::test_advertise_serves_captured_settings 510[gw7] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 511[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 512[gw2] [ 3%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 513tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 514tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 515[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 516tests/cli/test_utils.py::test_get_npx_unix_like 517[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 518[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 519tests/cli/test_utils.py::test_get_npx_windows 520tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 521[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_get_npx_windows 522[gw5] [ 3%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 523tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 524[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 525tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 526[gw3] [ 3%] PASSED tests/client/test_client.py::test_read_resource 527tests/client/test_client.py::test_read_resource_error_propagates 528[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 529tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 530tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 531[gw1] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 532[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 533[gw3] [ 3%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 534tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 535tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 536[gw5] [ 3%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 537tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 538tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 539[gw1] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 540tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 541[gw7] [ 3%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 542[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 543tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 544tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 545[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 546[gw3] [ 4%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 547tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 548tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 549[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 550tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 551[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 552[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 553tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 554tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 555[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 556tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 557[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 558tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 559[gw2] [ 4%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 560[gw3] [ 4%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 561tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 562tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 563[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 564tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 565[gw3] [ 4%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 566[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 567[gw7] [ 4%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 568tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 569tests/client/test_client.py::test_get_prompt 570tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 571[gw2] [ 4%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 572[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 573tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 574tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 575[gw2] [ 4%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 576[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 577tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 578tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 579[gw2] [ 4%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 580[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 581tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 582tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 583[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 584tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 585[gw3] [ 4%] PASSED tests/client/test_client.py::test_get_prompt 586[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 587tests/client/test_client.py::test_client_session_property_before_enter 588[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 589[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 590tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 591tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 592[gw7] [ 4%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 593[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 594tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 595tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 596tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 597[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 598tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 599[gw2] [ 4%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 600tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 601[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 602[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 603tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 604tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 605[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 606tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 607tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 608[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 609[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 610tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 611tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 612[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 613tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 614[gw2] [ 4%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 615[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 616tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 617[gw3] [ 4%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 618tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 619tests/client/test_client.py::test_client_reentry_raises_runtime_error 620[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 621tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 622[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 623tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 624[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 625[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 626[gw2] [ 4%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 627tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 628tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 629[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 630tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 631tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 632[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 633tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 634[gw2] [ 4%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 635[gw7] [ 4%] PASSED tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 636[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 637[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 638[gw8] [ 4%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 639tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 640[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 641tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 642tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 643tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 644[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 645tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 646tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 647tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 648[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 649tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 650[gw2] [ 4%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 651[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 652[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 653tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 654tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 655[gw3] [ 4%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 656tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 657[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 658tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 659tests/client/test_client.py::test_client_send_progress_notification 660[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 661tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 662[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 663[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 664tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 665[gw2] [ 5%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 666tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 667[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 668tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 669tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 670[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 671tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 672[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 673[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 674tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 675tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 676[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 677tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 678[gw2] [ 5%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 679[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 680[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 681tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 682tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 683[gw3] [ 5%] PASSED tests/client/test_client.py::test_client_send_progress_notification 684[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 685tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 686[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 687tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 688tests/client/test_client.py::test_client_subscribe_resource 689[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 690tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 691[gw2] [ 5%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 692tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 693tests/client/test_input_required.py::test_default_max_rounds_constant 694[gw7] [ 5%] PASSED tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 695[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 696[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 697tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 698[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 699tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 700tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 701[gw2] [ 5%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 702[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 703tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 704[gw8] [ 5%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 705tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 706tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 707[gw3] [ 5%] PASSED tests/client/test_client.py::test_client_subscribe_resource 708[gw7] [ 5%] PASSED tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 709tests/client/test_client.py::test_client_unsubscribe_resource 710tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 711[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 712[gw8] [ 5%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 713tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 714tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 715[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 716[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 717tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 718tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 719[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 720tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 721[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 722tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 723[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 724[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 725tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 726tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 727[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 728[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 729tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 730tests/client/test_auth.py::test_union_scopes[dedup] 731[gw6] [ 5%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 732[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 733tests/client/test_auth.py::test_union_scopes[no-previous] 734[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 735[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 736[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 737tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 738tests/client/test_auth.py::test_union_scopes[no-new] 739tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 740tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 741[gw6] [ 5%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 742tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 743[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 744[gw6] [ 5%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 745tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 746tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 747[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 748tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 749tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 750[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 751[gw6] [ 5%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 752[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 753tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 754tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 755tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 756[gw6] [ 5%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 757[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 758[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 759[gw8] [ 5%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 760tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 761tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 762tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] 763tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 764[gw6] [ 5%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 765[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 766tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 767tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 768[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] 769tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 770[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 771[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 772tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 773[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 774[gw8] [ 5%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 775tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 776[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 777tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] 778[gw4] [ 5%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 779tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 780[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 781tests/client/test_auth.py::test_union_scopes[both-empty] 782tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 783[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] 784tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 785[gw6] [ 6%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 786tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 787[gw1] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 788[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 789tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 790tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 791[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 792tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 793[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 794[gw4] [ 6%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 795tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 796[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 797tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 798tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 799[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 800tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 801[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 802tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 803[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 804[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 805tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 806tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 807[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 808[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 809tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 810[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 811tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 812tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 813[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 814tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 815[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 816tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 817[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 818[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 820tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 821[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 822tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 823[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 824[gw6] [ 6%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 825tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 826[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 827tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 828tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 829[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 830tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 831[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 832tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 833[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 834[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 835tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 836[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 837tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 838[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 839tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 840[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 841tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 842tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 843[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 844tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] 845tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 846[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] 847tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] 848[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 849[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] 850tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 851tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 852[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 853tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 854[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 855tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 856[gw2] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 857[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 858tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 859[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 860[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 861tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 862tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 863tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 864[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 865[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 866tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 867tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 868[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 869[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 870[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 871tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 872tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 873tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 874[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 875[gw8] [ 6%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 876[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 877tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 878[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 879tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 880tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 881tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 882[gw1] [ 6%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 883tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 884[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 885tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 886[gw2] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 887[gw1] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 888[gw8] [ 6%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 889tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 890tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 891[gw6] [ 6%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 892tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 893tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 894[gw8] [ 6%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 895tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 896[gw1] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 897tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 898[gw8] [ 6%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 899[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 900tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 901[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 902tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 903tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 904[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 905tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 906[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 907tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 908[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 909[gw1] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 910tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 911[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 912tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 913[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 914tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 915tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 916[gw1] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 917tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 918[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 919tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 920[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 921[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 922[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 923tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 924tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 925tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 926[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 927[gw1] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 928[gw8] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 929tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 930tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 931tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 932[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 933tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 934[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 935[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 936tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 937tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 938[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 939[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 940[gw1] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 941tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 942tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 943tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 944[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 945tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 946[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 947tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 948[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 949[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 950[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 951tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 952tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 953tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 954[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 955[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 956tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 957tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 958[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 959tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 960[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 961tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 962[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 963[gw1] [ 7%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 964tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 965[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 966tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 967tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 968[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 969[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 970[gw8] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 971tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 972tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 973tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 974[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 975tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 976[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 977[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 978tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 979[gw1] [ 7%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 980tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 981[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 982tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 983[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 984tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 985tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 986[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 987tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 988[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 989[gw6] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 990tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 991[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 992tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 993tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 994[gw1] [ 7%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 995[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 996tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 997[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 998[gw8] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 999tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1000[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1001tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1002tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 1003[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1004tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1005[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1006tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1007[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1008[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1009tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1010tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1011[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1012tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1013[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1014tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1015[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1016tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1017[gw3] [ 7%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1018[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1019tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1020tests/client/test_client.py::test_client_set_logging_level 1021[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1022tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1023[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1024[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1025tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1026tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1027[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1028tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1029[gw2] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 1030[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1031tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1032tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1033[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1034tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1035[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1036[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1037tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1038[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_set_logging_level 1039tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1040tests/client/test_client.py::test_client_list_resources_with_params 1041[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1042tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1043[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1044tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1045[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1046[gw4] [ 8%] PASSED tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 1047[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1048tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1049tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1050[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1051tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1052tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 1053[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1054tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1055[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1056tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1057[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1058tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1059[gw7] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1060[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1061[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1062tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1063tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1064tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1065[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1066tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1067[gw4] [ 8%] PASSED tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 1068[gw2] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1069[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1070tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1071tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1072[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1073tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 1074tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1075[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1076tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1077[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1078[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1079tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1080[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1081[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1082tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1083tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1084[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1085tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1086tests/client/test_client.py::test_client_list_resource_templates 1087[gw7] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1088[gw4] [ 8%] PASSED tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 1089tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1090[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1091tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1092tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1093[gw4] [ 8%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1094[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1095tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1096tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1097[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1098tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1099[gw4] [ 8%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1100[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 1101tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1102[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1103tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 1104tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1105tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1106[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1107tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1108[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1109[gw4] [ 8%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1110tests/client/test_client.py::test_list_prompts 1111[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 1112tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1113[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1114tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 1115tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1116[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1117tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1118[gw4] [ 8%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1119tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1120[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 1121[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1122tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 1123tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1124[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1125tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1126[gw4] [ 8%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1127[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 1128tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1129[gw3] [ 8%] PASSED tests/client/test_client.py::test_list_prompts 1130tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 1131tests/client/test_client.py::test_complete_with_prompt_reference 1132[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1133[gw2] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1134tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1135[gw7] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1136tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1137tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out 1138[gw4] [ 9%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1139[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1140tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1141tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1142[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 1143tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 1144[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1145[gw2] [ 9%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1146[gw3] [ 9%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference 1147tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1148[gw4] [ 9%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1149tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1150tests/client/test_list_roots_callback.py::test_list_roots_callback 1151tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1152[gw3] [ 9%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1153[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1154tests/client/test_client.py::test_client_uses_transport_directly 1155tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1156[gw4] [ 9%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1157[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 1158[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1159tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1160tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1161tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1162[gw4] [ 9%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1163tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1164[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1165tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1166[gw4] [ 9%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1167[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1168[gw7] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out 1169[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1170tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1171tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1172[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1173tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1174[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1175[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1176[gw8] [ 9%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1177tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1178tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1179[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1180tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1181tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1182[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1183tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1184[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1185[gw1] [ 9%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1186tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1187tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1188[gw2] [ 9%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1189[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1190tests/client/test_logging_callback.py::test_logging_callback 1191[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1192tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1193tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1194[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1195[gw8] [ 9%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1196tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 1197[gw1] [ 9%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1198tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1199[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 1200tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1201[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1202tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1203[gw7] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1204tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1205tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1206[gw1] [ 9%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1207tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1208[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1209tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1210[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1211tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1212[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1213[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1214tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1215tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1216[gw1] [ 9%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1217tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1218[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1219[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1220[gw1] [ 9%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1221tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1222tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1223tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1224[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1225tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1226[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1227[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1228tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1229tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1230[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1231[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1232[gw7] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1233tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1234tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1235[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1236tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1237tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1238[gw1] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1239tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1240[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1241tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1242[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1243[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1244tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1245[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1246tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1247[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1248tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1249tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1250[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1251tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1252[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1253[gw6] [ 10%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1254tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1255[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1256tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1257[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1258tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1259tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1260[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1261tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 1262[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1263tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1264[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1265tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1266tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1267[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1268tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1269[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1270tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1271[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1272[gw3] [ 10%] PASSED tests/client/test_client.py::test_client_uses_transport_directly 1273tests/client/test_client.py::test_context_propagation 1274[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 1275tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 1276[gw1] [ 10%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1277tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1278[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1279tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1280tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1281[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1282tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1283[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1284tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1285[gw1] [ 10%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1286tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1287[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1288tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1289[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 1290tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 1291[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1292tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1293[gw3] [ 10%] PASSED tests/client/test_client.py::test_context_propagation 1294tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1295tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1296[gw7] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1297[gw8] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1298tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1299tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1300[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 1301[gw0] [ 10%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1302tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1303tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 1304[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1305[gw0] [ 10%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1306tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1307[gw3] [ 10%] PASSED tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1308tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1309tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1310[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1311tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1312[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1313tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1314[gw8] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1315tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1316[gw3] [ 10%] PASSED tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1317[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1318[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 1319tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1320tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1321tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 1322[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1323[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 1324tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 1325tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1326[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 1327tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 1328[gw3] [ 10%] PASSED tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1329[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1330[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 1331tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 1332[gw8] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1333tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1334tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1335[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 1336tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 1337[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 1338tests/docs_src/test_shape.py::test_private_mcp_import_detector 1339tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 1340[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1341[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 1342tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 1343tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1344[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 1345tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 1346[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 1347[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 1348tests/docs_src/test_shape.py::test_retired_name_detector 1349[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1350tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 1351[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1352[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 1353[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 1354tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1355tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1356tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1357[gw3] [ 10%] PASSED tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1358[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1359tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1360[gw1] [ 10%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1361tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop 1362tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1363[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1364tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1365[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1366[gw7] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1367[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1368tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1369[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1370tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1371tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1372[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1373tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1374[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1375tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1376tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1377tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1378[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1379tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1380[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1381tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1382[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1383[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1384tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1385[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1386[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1387[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1388[gw7] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1389tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1390tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1391tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1392tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1393tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1394[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1395[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1396tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1397[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1398tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1399tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1400[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1401tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 1402[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 1403tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 1404[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1405[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 1406tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1407tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] 1408[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] 1409[gw1] [ 11%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1410tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] 1411[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] 1412tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] 1413tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1414[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] 1415tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] 1416[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1417[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] 1418tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] 1419[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1420tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1421tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1422[gw2] [ 11%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1423[gw1] [ 11%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1424tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1425[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1426tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1427[gw1] [ 11%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1428tests/client/test_notification_response.py::test_non_compliant_notification_response 1429tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1430[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1431[gw7] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1432tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1433[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1434[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1435tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1436tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1437[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1438tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1439[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1440[gw2] [ 11%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1441tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1442tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1443[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1444tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1445[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1446tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1447[gw1] [ 11%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1448tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1449[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1450[gw1] [ 11%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1451tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1452[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1453[gw2] [ 11%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1454tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1455tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1456[gw1] [ 11%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1457tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1458tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1459[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1460[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1461[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1462tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1463tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1464tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1465tests/docs_src/test_index.py::test_add_tool 1466[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1467[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1468[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1469tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1470tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1471[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1472tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1473[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1474[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] 1475tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1476[gw2] [ 11%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1477tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] 1478tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1479[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] 1480[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1481tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] 1482[gw1] [ 11%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1483tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1484[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] 1485tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1486tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] 1487[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1488tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1489[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] 1490tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] 1491[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1492tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1493[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] 1494tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] 1495[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1496[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] 1497tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] 1498[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1499[gw2] [ 12%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1500tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1501tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1502[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1503[gw7] [ 12%] PASSED tests/docs_src/test_index.py::test_add_tool 1504tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1505[gw6] [ 12%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1506tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1507[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1508tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1509tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1510[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1511tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1512[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1513tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1514[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1515tests/docs_src/test_index.py::test_greeting_resource_template 1516[gw3] [ 12%] PASSED tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop 1517[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1518tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 1519tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1520tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1521tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1522[gw2] [ 12%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1523[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1524[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1525tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1526[gw3] [ 12%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 1527tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1528[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1529tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1530tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 1531[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1532tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1533tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1534[gw7] [ 12%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template 1535[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1536tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1537[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1538tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1539tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1540[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1541[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1542tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1543[gw3] [ 12%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 1544tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1545tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 1546[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1547tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1548[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1549tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1550[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1551tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1552[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1553[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1554tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1555tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1556[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1557tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1558[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1559[gw3] [ 12%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 1560tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1561tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 1562[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1563tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1564[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1565[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] 1566tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1567tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] 1568[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1569[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1570tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1571tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1572[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] 1573tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] 1574[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] 1575tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] 1576[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1577[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1578tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1579[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] 1580tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1581tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1582[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1583tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1584[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1585tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1586[gw3] [ 12%] PASSED tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 1587[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1588tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1589tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 1590[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1591tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1592[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1593tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1594[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1595tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1596[gw1] [ 12%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1597[gw3] [ 12%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 1598[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1599tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too 1600[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1601tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1602tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1603tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1604[gw0] [ 12%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1605[gw7] [ 12%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1606tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1607[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1608tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1609tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1610[gw3] [ 13%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too 1611[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1612tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1613[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1614tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state 1615[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1616tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1617tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1618[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1619tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] 1620[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] 1621[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1622tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] 1623[gw3] [ 13%] PASSED tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state 1624[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] 1625tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1626tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] 1627tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state 1628[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] 1629[gw7] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1630tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] 1631tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1632[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] 1633tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] 1634[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1635[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] 1636tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1637tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] 1638[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] 1639[gw3] [ 13%] PASSED tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state 1640tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction 1641[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1642[gw2] [ 13%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1643tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1644[gw3] [ 13%] PASSED tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction 1645[gw7] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1646tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result 1647tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1648tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1649[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1650[gw7] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1651tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1652tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1653[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1654tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1655[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1656[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1657tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1658tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1659[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1660tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1661[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1662[gw2] [ 13%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1663tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1664[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1665tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1666tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1667[gw0] [ 13%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1668tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1669tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] 1670[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1671[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1672[gw0] [ 13%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1673tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1674[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] 1675tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1676tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] 1677tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1678[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1679[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] 1680tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] 1681[gw2] [ 13%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1682tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1683[gw0] [ 13%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1684[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] 1685tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1686tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] 1687[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] 1688tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1689[gw0] [ 13%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1690tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] 1691[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1692tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1693[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1694[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] 1695[gw0] [ 13%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1696tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1697tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] 1698tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1699[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] 1700tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] 1701[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1702[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] 1703tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1704tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] 1705[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1706[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1707[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] 1708tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] 1709tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1710tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1711[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] 1712[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1713tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] 1714tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1715[gw2] [ 13%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1716[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] 1717tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] 1718[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1719[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] 1720tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1721tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1722tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] 1723[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1724[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1725[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1726[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] 1727tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1728[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1729tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1730tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1731tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1732tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] 1733[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] 1734tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] 1735[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1736[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1737tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1738[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] 1739tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] 1740tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1741[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] 1742tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] 1743[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1744tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1745[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1746[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] 1747tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] 1748[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1749[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1750tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1751[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] 1752[gw2] [ 14%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1753tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] 1754[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1755tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1756tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1757tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1758tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1759[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] 1760[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1761tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] 1762tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1763[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1764[gw1] [ 14%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1765tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1766[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] 1767tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] 1768tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1769[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1770tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1771[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] 1772tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] 1773tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1774[gw2] [ 14%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1775[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1776tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1777tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1778[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] 1779tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] 1780[gw1] [ 14%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1781[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1782tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1783[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] 1784tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] 1785tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1786[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] 1787[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1788tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1789tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] 1790[gw4] [ 14%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1791[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1792[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] 1793tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1794tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] 1795tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1796[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1797[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1798tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1799tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1800[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] 1801tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] 1802[gw2] [ 14%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1803[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1804tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1805[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] 1806tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] 1807[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1808tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1809[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1810[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] 1811tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1812[gw6] [ 14%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1813tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] 1814tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1815[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1816[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1817tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1818tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1819tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] 1820[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] 1821tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] 1822[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1823tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1824[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] 1825tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] 1826[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1827[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] 1828tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] 1829tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1830[gw2] [ 14%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1831[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] 1832tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] 1833tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1834[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] 1835tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] 1836[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1837[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] 1838tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] 1839tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1840[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] 1841tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] 1842[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] 1843[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1844tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] 1845[gw4] [ 15%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1846tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1847[gw1] [ 15%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1848[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] 1849tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] 1850tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1851[gw2] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1852[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] 1853tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] 1854tests/client/test_session_group.py::test_client_session_group_init 1855[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] 1856tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] 1857tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1858[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] 1859[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_init 1860tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] 1861[gw1] [ 15%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1862tests/client/test_session_group.py::test_client_session_group_component_properties 1863[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] 1864tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] 1865tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1866[gw2] [ 15%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1867[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties 1868[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] 1869tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] 1870tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1871tests/client/test_session_group.py::test_client_session_group_call_tool 1872[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] 1873tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] 1874[gw2] [ 15%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1875[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] 1876tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] 1877[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1878tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1879[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1880[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] 1881tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1882tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] 1883tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1884[gw2] [ 15%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1885tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1886[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] 1887tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] 1888[gw1] [ 15%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1889tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1890[gw2] [ 15%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1891[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] 1892tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] 1893tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1894[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] 1895[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1896tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] 1897[gw1] [ 15%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1898tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1899tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1900[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] 1901tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] 1902[gw2] [ 15%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1903tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1904[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] 1905[gw1] [ 15%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1906tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1907tests/examples/test_story_shape.py::test_main_constructs_client_inline[pagination] 1908[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1909[gw2] [ 15%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1910tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1911tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1912[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1913[gw2] [ 15%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1914[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[pagination] 1915tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1916tests/examples/test_story_shape.py::test_main_constructs_client_inline[parallel_calls] 1917tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1918[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1919tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1920[gw2] [ 15%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1921[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[parallel_calls] 1922tests/examples/test_story_shape.py::test_main_constructs_client_inline[prompts] 1923tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1924[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1925tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1926[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[prompts] 1927tests/examples/test_story_shape.py::test_main_constructs_client_inline[reconnect] 1928[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1929tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 1930[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[reconnect] 1931tests/examples/test_story_shape.py::test_main_constructs_client_inline[refund_desk] 1932[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 1933tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 1934[gw3] [ 15%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result 1935[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[refund_desk] 1936tests/examples/test_story_shape.py::test_main_constructs_client_inline[resources] 1937tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result 1938[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[resources] 1939tests/examples/test_story_shape.py::test_main_constructs_client_inline[roots] 1940[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1941[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[roots] 1942tests/examples/test_story_shape.py::test_main_constructs_client_inline[sampling] 1943tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1944[gw7] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1945[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[sampling] 1946tests/examples/test_story_shape.py::test_main_constructs_client_inline[schema_validators] 1947tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1948[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1949[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1950[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[schema_validators] 1951tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1952tests/examples/test_story_shape.py::test_main_constructs_client_inline[serve_one] 1953tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1954[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[serve_one] 1955tests/examples/test_story_shape.py::test_main_constructs_client_inline[sse_polling] 1956[gw3] [ 15%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result 1957tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result 1958[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[sse_polling] 1959tests/examples/test_story_shape.py::test_main_constructs_client_inline[standalone_get] 1960[gw5] [ 15%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1961[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1962[gw9] [ 15%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[standalone_get] 1963tests/examples/test_story_shape.py::test_main_constructs_client_inline[starlette_mount] 1964tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1965[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1966tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1967[gw9] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[starlette_mount] 1968tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1969tests/examples/test_story_shape.py::test_main_constructs_client_inline[stateless_legacy] 1970[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1971tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1972[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1973[gw9] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[stateless_legacy] 1974tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1975tests/examples/test_story_shape.py::test_main_constructs_client_inline[stickynotes] 1976[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1977tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1978[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1979tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1980[gw9] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[stickynotes] 1981tests/examples/test_story_shape.py::test_main_constructs_client_inline[streaming] 1982[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1983tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1984[gw9] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[streaming] 1985[gw3] [ 16%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result 1986[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1987tests/examples/test_story_shape.py::test_main_constructs_client_inline[subscriptions] 1988[gw5] [ 16%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1989tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1990tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds 1991[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1992tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1993tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1994[gw9] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[subscriptions] 1995tests/examples/test_story_shape.py::test_main_constructs_client_inline[tools] 1996[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1997tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1998[gw9] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[tools] 1999tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[apps] 2000[gw1] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 8894[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8895[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8896tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8897tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 8898[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 8899[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8900tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8901tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 8902tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8903[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8904tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8905[gw8] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 8906[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8907[gw7] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 8908tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8909tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 8910[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8911[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8912tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8913tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8914[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8915tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8916tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8917[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8918tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 8919[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8920tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8921[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 8922[gw5] [ 74%] PASSED tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 8923[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8924tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 8925tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8926tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 8927[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8928tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8929[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 8930[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8931tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8932tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 8933[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8934tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 8935[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 8936tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 8937[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 8938tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 8939[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 8940[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 8941[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8942tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 8943tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 8944[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 8945[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 8946[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 8947tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 8948tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8949[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 8950[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8951tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 8952tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8953tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8954[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 8955[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8956tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 8957tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 8958[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 8959[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 8960tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 8961[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8962[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 8963tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8964tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8965[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8966tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 8967tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8968[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 8969tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 8970[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8971[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8972tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8973[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 8974[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8975tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 8976tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 8977tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8978[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 8979[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 8980tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 8981tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8982[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 8983[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8984tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8985tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 8986[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 8987tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 8988[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8989[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 8990tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 8991tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 8992[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 8993[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 8994tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 8995tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 8996tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 8997[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 8998tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 8999[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 9000tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 9001[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9002tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 9003[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 9004tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9005[gw3] [ 75%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 9006tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 9007tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 9008[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9009tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9010[gw3] [ 75%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 9011tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 9012[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 9013tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 9014[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 9015[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 9016tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 9017[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9018[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 9019tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 9020tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9021[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9022[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 9023tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9024tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 9025[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9026tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9027[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9028tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9029[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 9030[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9031[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9032[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9033tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9034tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire 9035[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9036tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9037tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9038[gw3] [ 75%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 9039tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 9040[gw6] [ 75%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9041[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9042tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9043tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9044[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9045tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9046[gw3] [ 75%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 9047[gw6] [ 75%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9048tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9049[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9050tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9051[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire 9052[gw6] [ 75%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9053tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9054tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 9055[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9056tests/shared/test_path_security.py::test_safe_join_simple 9057tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta 9058[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9059tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9060[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9061[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9062tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9063[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 9064[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9065tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9066tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 9067[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9068[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta 9069tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9070tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9071[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9072[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 9073[gw3] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9074tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 9075tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 9076tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9077[gw3] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 9078[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 9079tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9080tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9081[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9082tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9083tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9084[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9085[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9086[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9087tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9088tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9089[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9090tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9091tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9092[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9093[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9094[gw0] [ 76%] PASSED tests/server/test_runner.py::test_runner_on_notify_malformed_initialized_does_not_initialize 9095tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9096tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9097[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9098tests/server/test_runner.py::test_runner_on_notify_initialized_routes_to_registered_handler_after_state_set 9099tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9100[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9101[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9102tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9103tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9104[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9105[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9106[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9107[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9108tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9109tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9110[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9111tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9112[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9113tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9114[gw0] [ 76%] PASSED tests/server/test_runner.py::test_runner_on_notify_initialized_routes_to_registered_handler_after_state_set 9115tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9116[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9117tests/server/test_runner.py::test_server_add_request_handler_rejects_initialize 9118[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9119tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9120[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9121[gw0] [ 76%] PASSED tests/server/test_runner.py::test_server_add_request_handler_rejects_initialize 9122tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9123tests/server/test_runner.py::test_runner_on_notify_routes_to_registered_handler 9124[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9125tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9126tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9127[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9128[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9129tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9130[gw0] [ 76%] PASSED tests/server/test_runner.py::test_runner_on_notify_routes_to_registered_handler 9131tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9132[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9133tests/server/test_runner.py::test_runner_on_notify_handler_exception_is_swallowed_and_logged 9134tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9135[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9136tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9137tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9138[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9139[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9140tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9141tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9142[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9143[gw0] [ 76%] PASSED tests/server/test_runner.py::test_runner_on_notify_handler_exception_is_swallowed_and_logged 9144tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9145tests/server/test_runner.py::test_runner_on_notify_drops_malformed_params 9146[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9147[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9148tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9149tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9150[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9151[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9152tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9153tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9154[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9155[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9156tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9157tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9158tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9159[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9160tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9161[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9162[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9163[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9164[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9165tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9166tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9167[gw0] [ 76%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_malformed_params 9168tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9169tests/server/test_runner.py::test_runner_on_notify_drops_absent_params_when_model_requires_them 9170[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9171tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9172[gw0] [ 76%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_absent_params_when_model_requires_them 9173[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9174tests/server/test_runner.py::test_runner_absent_wire_params_reaches_request_handler_as_defaults_model 9175[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9176[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9177tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9178[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9179tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9180[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9181tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9182[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9183tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9184[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9185tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9186[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9187tests/shared/test_sse.py::test_sse_client_exception_handling 9188tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9189tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9190[gw0] [ 77%] PASSED tests/server/test_runner.py::test_runner_absent_wire_params_reaches_request_handler_as_defaults_model 9191tests/server/test_runner.py::test_runner_absent_wire_params_for_required_params_custom_method_is_invalid_params 9192[gw0] [ 77%] PASSED tests/server/test_runner.py::test_runner_absent_wire_params_for_required_params_custom_method_is_invalid_params 9193tests/server/test_runner.py::test_runner_on_notify_drops_before_init_and_unknown_methods 9194[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9195tests/shared/test_path_security.py::test_safe_join_base_equals_target 9196[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9197tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9198[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9199[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9200tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9201[gw5] [ 77%] PASSED tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 9202[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9203tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9204tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9205tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9206[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9207tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9208[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9209tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9210[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9211tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9212[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9213tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9214[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9215[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9216[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9217tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9218tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9219tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9220[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9221tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9222[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9223tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9224[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9225tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9226[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9227[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9228tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9229tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9230[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9231tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9232[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9233tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9234[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9235[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9236tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9237tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9238[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9239tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9240[gw1] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9241[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9242[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9243tests/shared/test_uri_template.py::test_parse_literal_only 9244tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9245tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9246[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9247tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9248[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9249[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9250tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9251tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 9252[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9253[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9254tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9255tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9256tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9257tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9258[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9259[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9260tests/shared/test_uri_template.py::test_is_template[-False] 9261tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9262[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9263[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9264tests/shared/test_uri_template.py::test_is_template[{a}-True] 9265[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9266[gw5] [ 77%] PASSED tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 9267tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9268[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9269tests/shared/test_uri_template.py::test_is_template[{-False] 9270tests/shared/test_streamable_http.py::test_content_type_validation 9271tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 9272[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9273tests/shared/test_uri_template.py::test_is_template[}-False] 9274[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9275tests/shared/test_uri_template.py::test_is_template[}{-False] 9276[gw1] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9277tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9278[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9279[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9280tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9281tests/shared/test_streamable_http.py::test_json_validation 9282[gw5] [ 77%] PASSED tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 9283tests/docs_src/test_apps.py::test_one_tool_two_answers 9284[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9285[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9286[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9287tests/shared/test_streamable_http.py::test_json_parsing 9288tests/shared/test_sse.py::test_request_context_propagation 9289tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9290[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9291[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9292tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9293[gw9] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9294tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9295tests/shared/test_streamable_http.py::test_method_not_allowed 9296[gw5] [ 77%] PASSED tests/docs_src/test_apps.py::test_one_tool_two_answers 9297[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9298tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions 9299tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9300[gw3] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9301[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9302tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9303[gw5] [ 78%] PASSED tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions 9304[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9305tests/shared/test_streamable_http.py::test_session_validation 9306tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9307tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta 9308[gw3] [ 78%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9309tests/shared/test_otel.py::test_client_and_server_spans 9310[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9311[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9312tests/shared/test_sse.py::test_request_context_isolation 9313tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9314[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9315[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9316tests/shared/test_streamable_http.py::test_session_id_pattern 9317tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9318[gw5] [ 78%] PASSED tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta 9319[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9320tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9321[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9322tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable 9323[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9324tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9325tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9326[gw7] [ 78%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9327tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9328[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9329[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9330tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9331tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9332[gw7] [ 78%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9333[gw5] [ 78%] PASSED tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable 9334[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9335tests/shared/test_uri_template.py::test_parse_simple_variable 9336tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9337tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in 9338[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9339tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9340[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9341[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9342tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9343tests/shared/test_streamable_http.py::test_session_termination 9344[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9345tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9346[gw7] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9347[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_before_init_and_unknown_methods 9348[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9349tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9350tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9351tests/server/test_runner.py::test_runner_server_middleware_wraps_every_request_including_initialize 9352[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9353tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9354[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9355tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9356[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9357tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9358[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9359tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9360[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9361tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9362[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9363[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9364[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_server_middleware_wraps_every_request_including_initialize 9365[gw5] [ 78%] PASSED tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in 9366tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9367tests/shared/test_streamable_http.py::test_response 9368tests/server/test_runner.py::test_runner_middleware_raise_after_call_next_on_initialize_leaves_connection_uninitialized 9369tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 9370[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_middleware_raise_after_call_next_on_initialize_leaves_connection_uninitialized 9371tests/server/test_runner.py::test_runner_server_middleware_observes_method_not_found_via_call_next_raise 9372[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_response 9373[gw5] [ 78%] PASSED tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 9374tests/shared/test_streamable_http.py::test_json_response 9375tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 9376[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_server_middleware_observes_method_not_found_via_call_next_raise 9377[gw5] [ 78%] PASSED tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 9378tests/server/test_runner.py::test_runner_server_middleware_wraps_notifications 9379tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 9380[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response 9381[gw5] [ 78%] PASSED tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 9382tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9383tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 9384[gw5] [ 78%] PASSED tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 9385[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9386tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 9387tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9388[gw9] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9389[gw5] [ 78%] PASSED tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 9390tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9391[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9392tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9393[gw2] [ 78%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 9394[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9395tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9396tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9397[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9398tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9399[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9400tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9401[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9402tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9403[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9404tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9405[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9406[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9407tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9408tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9409[gw2] [ 78%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9410[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9411tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9412tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9413[gw1] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9414tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9415[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9416tests/shared/test_uri_template.py::test_equality_based_on_template_string 9417[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9418tests/shared/test_uri_template.py::test_frozen 9419[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_frozen 9420tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9421[gw8] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9422[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9423tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9424tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9425[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9426tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9427[gw2] [ 79%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9428[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9429tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9430tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9431[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9432tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9433[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9434tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9435[gw8] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9436[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9437tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9438tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9439[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9440tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9441[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9442tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9443[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9444[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9445tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9446[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9447tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9448[gw2] [ 79%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9449tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 9450[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9451tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9452tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9453[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9454tests/shared/test_uri_template.py::test_parse_multiple_expressions 9455[gw3] [ 79%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9456[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9457[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9458tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9459tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9460tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9461[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9462tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9463[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9464tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9465[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9466[gw7] [ 79%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9467tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9468tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9469[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9470tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9471tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9472[gw7] [ 79%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9473[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9474tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9475tests/shared/test_sse.py::test_raw_sse_connection 9476[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9477[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9478tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9479tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9480[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9481[gw5] [ 79%] PASSED tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 9482[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9483tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 9484tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9485tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9486[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9487tests/shared/test_uri_template.py::test_parse_explode_modifier 9488[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9489tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9490[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9491[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9492[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9493tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9494[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9495tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9496[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9497tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9498tests/shared/test_sse.py::test_sse_message_id_coercion 9499tests/shared/test_sse.py::test_sse_client_basic_connection 9500[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9501tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9502[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9503[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9504tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9505tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9506[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9507tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9508[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9509[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9510[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9511tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9512tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9513[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9514tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9515tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9516[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9517[gw2] [ 79%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9518tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9519tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9520[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9521tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9522[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9523tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9524[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9525[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9526tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9527[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9528tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9529tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9530[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9531tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9532[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9533[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9534tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9535[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9536tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9537tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9538[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9539tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9540[gw7] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9541[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9542[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9543tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9544tests/shared/test_sse.py::test_sse_client_on_session_created 9545tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9546[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9547[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9548tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9549tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9550[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9551[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9552tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9553tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9554[gw5] [ 80%] PASSED tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 9555[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9556tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9557[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9558tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9559[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9560[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9561tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9562tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9563tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2025-11-25] 9564[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9565tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9566[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9567tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9568[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9569[gw7] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9570tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9571tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9572[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9573tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9574[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9575[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9576[gw7] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9577tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9578[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9579tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9580tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9581tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9582[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9583tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9584[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9585[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9586tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9587tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9588[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9589tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9590[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9591tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9592[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9593[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9594tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9595[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9596[gw0] [ 80%] PASSED tests/server/test_runner.py::test_runner_server_middleware_wraps_notifications 9597tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9598[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2025-11-25] 9599tests/server/test_runner.py::test_extract_meta_returns_none_for_absent_or_malformed 9600[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9601tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9602tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9603[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9604[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9605[gw0] [ 80%] PASSED tests/server/test_runner.py::test_extract_meta_returns_none_for_absent_or_malformed 9606tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-stateless-2025-11-25] 9607tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9608tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9609[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9610[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9611tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9612tests/server/test_runner.py::test_extract_meta_round_trips_through_dump_params 9613tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9614[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9615[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9616tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9617tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9618[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9619[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9620tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9621tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9622[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9623[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9624tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9625tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9626[gw0] [ 80%] PASSED tests/server/test_runner.py::test_extract_meta_round_trips_through_dump_params 9627[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9628tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9629[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9630[gw3] [ 80%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9631tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9632[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9633tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9634[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9635tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9636[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9637tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9638[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9639tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first 9640tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9641tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9642[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9643[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9644[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9645tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9646tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9647[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9648[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9649tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9650[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9651tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9652tests/shared/test_streamable_http.py::test_accept_header_validation 9653[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9654tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9655[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9656tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9657tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9658[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first 9659[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9660tests/server/test_runner.py::test_runner_handler_returning_none_yields_empty_result 9661[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9662tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9663tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9664[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9665tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9666[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9667[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9668[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9669tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9670[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9671tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9672tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9673[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9674tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9675[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9676tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9677[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9678tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9679[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9680[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9681tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9682[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_handler_returning_none_yields_empty_result 9683tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9684[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9685tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9686tests/server/test_runner.py::test_runner_handler_returning_error_data_produces_jsonrpc_error 9687[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9688tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9689tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9690[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9691tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9692[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9693tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9694[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9695tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9696[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9697tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9698[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9699[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9700tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9701tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9702[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_handler_returning_error_data_produces_jsonrpc_error 9703[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9704[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9705[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9706tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9707tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9708tests/server/test_runner.py::test_runner_server_middleware_observes_handler_error_data_as_mcp_error 9709[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9710tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9711[gw5] [ 81%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-stateless-2025-11-25] 9712[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9713[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9714tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9715[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9716tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9717tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2026-07-28] 9718[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9719tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9720[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9721tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9722tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9723[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9724tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9725[gw3] [ 81%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9726[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_server_middleware_observes_handler_error_data_as_mcp_error 9727[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9728tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9729tests/server/test_runner.py::test_runner_middleware_returning_error_data_produces_jsonrpc_error 9730[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9731tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9732[gw9] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9733[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9734tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9735[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9736tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9737[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_middleware_returning_error_data_produces_jsonrpc_error 9738[gw5] [ 81%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2026-07-28] 9739[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9740tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9741tests/server/test_runner.py::test_runner_handler_returning_unsupported_type_surfaces_as_error 9742tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2026-07-28] 9743tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9744[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_handler_returning_unsupported_type_surfaces_as_error 9745tests/server/test_runner.py::test_runner_with_born_ready_connection_skips_init_gate 9746[gw9] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9747tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9748[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9749[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9750tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9751tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9752tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9753[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9754[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_with_born_ready_connection_skips_init_gate 9755tests/server/test_runner.py::test_server_add_request_handler_routes_custom_method_with_validated_params 9756[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9757tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9758[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9759[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9760tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9761[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9762tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9763tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9764tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9765[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9766[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9767tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9768[gw9] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9769tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9770[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9771[gw0] [ 82%] PASSED tests/server/test_runner.py::test_server_add_request_handler_routes_custom_method_with_validated_params 9772tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9773[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9774[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9775tests/server/test_runner.py::test_runner_spec_method_with_invalid_params_is_invalid_params_at_the_negotiated_version 9776tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9777tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9778[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9779tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9780[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9781tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9782[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9783tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9784[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9785tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9786[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9787[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9788tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9789tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9790[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9791[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9792tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9793tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9794[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_spec_method_with_invalid_params_is_invalid_params_at_the_negotiated_version 9795[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9796[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9797tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9798tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9799tests/server/test_runner.py::test_runner_handler_returning_malformed_dict_for_spec_method_is_internal_error 9800[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9801[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9802tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9803tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9804[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9805[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9806tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9807[gw9] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9808[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9809tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9810[gw2] [ 82%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9811[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9812tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9813tests/shared/test_streamable_http.py::test_get_sse_stream 9814tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9815tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9816[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_handler_returning_malformed_dict_for_spec_method_is_internal_error 9817tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9818tests/server/test_runner.py::test_runner_handler_returning_typed_monolith_result_passes_outbound_validation 9819[gw2] [ 82%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9820[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9821tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9822[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_handler_returning_typed_monolith_result_passes_outbound_validation 9823tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9824[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9825tests/server/test_runner.py::test_runner_outbound_sieve_drops_2026_only_result_keys_at_a_pre_2026_version 9826tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9827[gw9] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9828[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9829tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9830[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9831tests/shared/test_streamable_http.py::test_get_validation 9832tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9833[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9834tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9835[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_outbound_sieve_drops_2026_only_result_keys_at_a_pre_2026_version 9836[gw2] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9837[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9838tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9839tests/server/test_runner.py::test_runner_outbound_sieve_drops_configured_cache_hints_at_a_pre_2026_version 9840tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9841[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9842tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9843[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9844[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9845tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9846[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9847tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9848tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9849tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9850[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_outbound_sieve_drops_configured_cache_hints_at_a_pre_2026_version 9851[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9852tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9853tests/server/test_runner.py::test_runner_server_direction_spec_method_routes_to_a_registered_handler 9854[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9855tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9856[gw2] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9857[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9858[gw9] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9859[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9860tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9861tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9862tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9863[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9864tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9865tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9866[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9867tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9868[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_server_direction_spec_method_routes_to_a_registered_handler 9869[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9870tests/server/test_runner.py::test_runner_spec_method_absent_at_the_negotiated_version_is_method_not_found 9871tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9872[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9873tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 9874[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9875[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 9876tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9877[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9878[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9879[gw0] [ 82%] PASSED tests/server/test_runner.py::test_runner_spec_method_absent_at_the_negotiated_version_is_method_not_found 9880tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9881tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9882tests/server/test_runner.py::test_on_request_rejects_initialize_at_modern_version_with_method_not_found 9883[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9884tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9885[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9886tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9887[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9888tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9889[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9890tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9891[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9892[gw0] [ 83%] PASSED tests/server/test_runner.py::test_on_request_rejects_initialize_at_modern_version_with_method_not_found 9893[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9894tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9895tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9896tests/server/test_runner.py::test_on_request_dispatches_custom_method_registered_via_add_request_handler 9897[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9898[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9899tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9900tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9901[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9902[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9903tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9904tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9905[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9906[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9907tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9908tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9909[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9910[gw0] [ 83%] PASSED tests/server/test_runner.py::test_on_request_dispatches_custom_method_registered_via_add_request_handler 9911tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9912[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9913tests/server/test_runner.py::test_runner_middleware_short_circuit_on_a_wrong_version_spec_method_skips_the_sieve 9914tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9915[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9916tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9917[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9918[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9919tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9920[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9921tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9922tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9923[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9924[gw0] [ 83%] PASSED tests/server/test_runner.py::test_runner_middleware_short_circuit_on_a_wrong_version_spec_method_skips_the_sieve 9925[gw9] [ 83%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9926tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9927tests/server/test_runner.py::test_runner_custom_method_result_is_not_surface_validated 9928[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9929[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2026-07-28] 9930tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9931[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9932tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9933tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2025-11-25] 9934tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9935[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9936[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9937tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9938tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9939[gw0] [ 83%] PASSED tests/server/test_runner.py::test_runner_custom_method_result_is_not_surface_validated 9940[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9941tests/server/test_runner.py::test_modern_short_circuit_middleware_owns_its_result_envelope 9942tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9943[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9944[gw0] [ 83%] PASSED tests/server/test_runner.py::test_modern_short_circuit_middleware_owns_its_result_envelope 9945[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9946tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9947[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2025-11-25] 9948tests/server/test_runner.py::test_a_handler_authored_server_info_stamp_is_not_overwritten 9949[gw9] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9950[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9951tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9952tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9953[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9954tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[sse-2025-11-25] 9955tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9956tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9957[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9958tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9959[gw0] [ 83%] PASSED tests/server/test_runner.py::test_a_handler_authored_server_info_stamp_is_not_overwritten 9960[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9961[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9962tests/server/test_runner.py::test_a_non_mapping_custom_result_meta_is_left_alone 9963tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9964tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9965[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9966[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9967tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9968tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9969[gw0] [ 83%] PASSED tests/server/test_runner.py::test_a_non_mapping_custom_result_meta_is_left_alone 9970[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9971tests/server/test_runner.py::test_stamping_never_mutates_a_handler_retained_result_dict 9972tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9973[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9974[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9975tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9976[gw9] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9977[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9978tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9979tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9980[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9981tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9982tests/shared/test_streamable_http.py::test_client_crash_handled 9983[gw0] [ 83%] PASSED tests/server/test_runner.py::test_stamping_never_mutates_a_handler_retained_result_dict 9984[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9985tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9986[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9987tests/server/test_runner.py::test_mutating_a_stamped_response_never_corrupts_later_stamps 9988[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9989tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9990tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9991[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9992tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9993[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9994[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9995[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[sse-2025-11-25] 9996tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9997tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2025-11-25] 9998[gw0] [ 83%] PASSED tests/server/test_runner.py::test_mutating_a_stamped_response_never_corrupts_later_stamps 9999tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10000tests/server/test_runner.py::test_a_claimed_result_type_on_a_legacy_session_is_sieved_not_leaked 10001[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10002[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10003tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10004tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10005[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10006tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10007[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10008tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10009[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 10010[gw0] [ 84%] PASSED tests/server/test_runner.py::test_a_claimed_result_type_on_a_legacy_session_is_sieved_not_leaked 10011tests/server/test_runner.py::test_a_handshake_era_custom_result_gains_no_discriminator 10012tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 10013[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 10014[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10015tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 10016tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10017[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10018[gw0] [ 84%] PASSED tests/server/test_runner.py::test_a_handshake_era_custom_result_gains_no_discriminator 10019tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10020tests/server/test_runner.py::test_an_explicit_null_result_type_is_filled_on_the_modern_path 10021[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10022tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10023[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10024tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10025[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2025-11-25] 10026[gw0] [ 84%] PASSED tests/server/test_runner.py::test_an_explicit_null_result_type_is_filled_on_the_modern_path 10027tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-stateless-2025-11-25] 10028tests/server/test_runner.py::test_a_claimed_extension_result_type_bypasses_the_sieve_and_is_stamped 10029tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10030[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10031[gw0] [ 84%] PASSED tests/server/test_runner.py::test_a_claimed_extension_result_type_bypasses_the_sieve_and_is_stamped 10032tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10033[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10034[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10035tests/test_examples.py::test_docs_examples[README.md:90-103] 10036tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10037tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 10038[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 10039[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 10040tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 10041tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10042[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10043[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10044tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10045[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10046[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 10047tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10048tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 10049[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10050tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10051[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10052[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10053tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10054[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10055tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10056tests/shared/test_uri_template.py::test_match_no_match[static-different] 10057[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 10058[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10059tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10060[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10061tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10062[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10063tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10064[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10065tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10066[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10067tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10068tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10069[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10070[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 10071tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 10072[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10073tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10074tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10075[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 10076tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 10077[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 10078[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10079tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 10080[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10081tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10082tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10083[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 10084[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10085tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 10086tests/shared/test_uri_template.py::test_match_escapes_template_literals 10087[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10088[gw2] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 10089[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 10090tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 10091tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10092[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10093tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 10094tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10095[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10096[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 10097[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10098tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10099tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 10100tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10101[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10102tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10103[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10104tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10105tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10106[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10107[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 10108tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10109tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 10110[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 10111[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10112tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10113tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 10114[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10115[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 10116tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 10117[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 10118tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10119tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 10120[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 10121tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 10122[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10123tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10124[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10125[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-stateless-2025-11-25] 10126tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10127tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2026-07-28] 10128[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10129tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10130[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10131[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2026-07-28] 10132tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10133tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2026-07-28] 10134[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10135tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10136[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10137[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2026-07-28] 10138tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2025-11-25] 10139tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10140[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 10141[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10142[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10143tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10144tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10145[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10146tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10147[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2025-11-25] 10148tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[sse-2025-11-25] 10149[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10150tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10151[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[sse-2025-11-25] 10152tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2025-11-25] 10153[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10154[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10155tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10156[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 10157tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10158tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10159[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10160tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10161[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2025-11-25] 10162tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-stateless-2025-11-25] 10163[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10164tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10165tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10166[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-stateless-2025-11-25] 10167tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2026-07-28] 10168[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10169[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10170[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2026-07-28] 10171tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2026-07-28] 10172tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10173tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10174[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10175tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10176[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2026-07-28] 10177tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2025-11-25] 10178[gw9] [ 85%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 10179[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10180[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2025-11-25] 10181tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10182tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[sse-2025-11-25] 10183tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10184[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10185[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10186tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10187tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10188[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10189tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10190[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10191[gw4] [ 85%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10192tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10193tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10194[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10195tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 10196[gw2] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 10197tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10198[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10199tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10200[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 10201[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10202tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10203[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10204tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 10205tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10206[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10207[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10208tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10209tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10210[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10211[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 10212tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 10213[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10214[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10215tests/shared/test_uri_template.py::test_match_never_raises 10216tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10217tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10218[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 10219tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 10220[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10221[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10222tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10223[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 10224tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10225tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 10226[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10227[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 10228tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10229tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 10230[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10231tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10232[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10233tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10234[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10235[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10236tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10237tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10238[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 10239tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 10240[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10241[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 10242tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 10243[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 10244tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 10245tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10246[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10247tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10248[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 10249tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10250[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10251[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10252tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 10253[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10254tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10255tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10256[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10257tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10258[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 10259[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10260tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 10261tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10262[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 10263[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10264tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 10265tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10266[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 10267tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 10268[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 10269[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10270tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 10271[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10272[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 10273tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 10274tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10275tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10276[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10277[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10278tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10279tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10280[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 10281tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 10282[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[sse-2025-11-25] 10283[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10284tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2025-11-25] 10285tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10286[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10287tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10288[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 10289[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10290tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 10291[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10292[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 10293tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 10294tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10295tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10296[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 10297[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10298tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10299tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 10300[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 10301[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10302tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 10303[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2025-11-25] 10304tests/test_examples.py::test_simple_echo 10305tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-stateless-2025-11-25] 10306[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10307[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10308[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10309[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10310[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10311tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10312tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10313tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10314tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10315tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10316[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 10317tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10318[gw7] [ 86%] PASSED tests/test_examples.py::test_simple_echo 10319tests/test_examples.py::test_complex_inputs 10320[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10321[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10322[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10323[gw7] [ 86%] PASSED tests/test_examples.py::test_complex_inputs 10324tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10325tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10326tests/test_examples.py::test_direct_call_tool_result_return 10327tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10328[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10329[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-stateless-2025-11-25] 10330tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2026-07-28] 10331[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10332tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10333tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10334[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2026-07-28] 10335[gw7] [ 86%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10336tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2026-07-28] 10337tests/test_examples.py::test_desktop 10338[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10339[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10340tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10341tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10342[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10343tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10344[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10345[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2026-07-28] 10346tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10347tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2025-11-25] 10348[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10349[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10350tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10351tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10352[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10353[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2025-11-25] 10354tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10355tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[sse-2025-11-25] 10356[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10357tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10358[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10359[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10360tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10361tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10362[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10363tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10364[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10365[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10366tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10367tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10368[gw7] [ 87%] PASSED tests/test_examples.py::test_desktop 10369[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10370[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10371tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10372tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10373[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10374tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10375[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10376[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10377tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10378tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10379[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10380tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10381tests/test_examples.py::test_docs_examples[README.md:47-63] 10382[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10383tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10384[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10385[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10386tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10387tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10388[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10389[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10390tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10391tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10392[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10393[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10394tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10395tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10396[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10397tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10398[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10399tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10400[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10401[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10402tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10403tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10404[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10405tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10406[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10407[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10408[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[sse-2025-11-25] 10409tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10410tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10411tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2025-11-25] 10412[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10413[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10414tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10415tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10416[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10417tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10418[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10419tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10420[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10421tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10422[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10423tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10424[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10425tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10426[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2025-11-25] 10427tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-stateless-2025-11-25] 10428[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10429[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10430tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10431tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10432[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10433tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10434[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10435tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10436[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10437[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10438tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10439[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10440tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10441tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10442[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10443tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10444[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10445tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10446[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10447tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10448[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10449tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10450[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10451[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10452tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10453tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10454[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10455[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10456tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10457tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10458[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10459tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10460[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10461tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10462[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10463tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10464[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10465[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10466tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10467tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10468[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10469tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10470[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10471[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10472tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10473[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10474tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10475tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10476[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10477tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10478[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10479tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10480[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-stateless-2025-11-25] 10481[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10482tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10483tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2026-07-28] 10484[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10485[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10486[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10487tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10488tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10489tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10490[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10491[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10492[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10493tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10494tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10495tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10496[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2026-07-28] 10497tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2026-07-28] 10498[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10499tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10500[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10501tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10502[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10503tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10504[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10505[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10506tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10507[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10508tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10509tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10510[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10511[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10512tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10513tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10514[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10515[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2026-07-28] 10516tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10517tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2025-11-25] 10518[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10519tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10520[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10521tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10522[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10523tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10524[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2025-11-25] 10525tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[sse-2025-11-25] 10526[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10527tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10528[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10529tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10530[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10531[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10532[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10533[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10534tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10535tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10536tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10537tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10538[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10539tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10540[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10541[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10542tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10543tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10544[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10545[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[sse-2025-11-25] 10546tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2025-11-25] 10547tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10548[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10549tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10550[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10551tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10552[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10553[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10554[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10555tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10556tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10557tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10558[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10559tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10560[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10561tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10562[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10563[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10564[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10565tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10566tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10567[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10568tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10569tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10570[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2025-11-25] 10571[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10572tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] 10573tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10574[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10575tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10576[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10577[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10578tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10579tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10580[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10581[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10582tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10583tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10584[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] 10585tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2026-07-28] 10586[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10587[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10588tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10589[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2026-07-28] 10590tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10591[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10592tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2026-07-28] 10593tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10594[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10595tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10596[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10597tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10598[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10599[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2026-07-28] 10600tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10601tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2025-11-25] 10602[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10603[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10604tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10605tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10606[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10607tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10608[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10609tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10610[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10611tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10612[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10613tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10614[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10615[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10616tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10617tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10618[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10619[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10620tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10621tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10622[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10623tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10624[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10625tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10626[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10627tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10628[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10629tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10630[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10631tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10632[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10633[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10634tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10635tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10636[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10637tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10638[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10639[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10640tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10641[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10642tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10643tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10644[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10645tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10646[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10647tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10648[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10649[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10650[gw2] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10651tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10652tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10653tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10654[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10655[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10656tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10657tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10658[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10659[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10660[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10661tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10662tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10663tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10664[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10665tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10666[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10667[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10668[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10669[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10670[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10671tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10672tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10673tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10674tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10675tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10676[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2025-11-25] 10677tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[sse-2025-11-25] 10678[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10679tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10680[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10681[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10682[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10683tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10684tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10685tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10686[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10687tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10688[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10689[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10690tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10691tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10692[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10693tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10694[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10695[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10696tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10697tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10698[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10699tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10700[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10701[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10702[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10703tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10704tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10705tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10706[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10707tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10708[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10709[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[sse-2025-11-25] 10710tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10711[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10712tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2025-11-25] 10713[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10714tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10715tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10716[gw2] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10717tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10718[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10719[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10720[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10721tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10722[gw2] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10723tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10724tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10725tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10726[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10727[gw2] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10728tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10729tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10730[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10731[gw2] [ 90%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10732tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10733tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10734[gw1] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10735[gw2] [ 90%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10736tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10737tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10738[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10739[gw2] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10740[gw1] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10741tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10742[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2025-11-25] 10743tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10744tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10745[gw2] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10746tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-stateless-2025-11-25] 10747[gw1] [ 90%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10748tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10749tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10750[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10751[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10752[gw2] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10753tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10754tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10755tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10756[gw2] [ 90%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10757tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10758[gw2] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10759tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10760[gw2] [ 90%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10761tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10762[gw2] [ 90%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10763tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10764[gw2] [ 90%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10765tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10766[gw2] [ 90%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10767tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10768[gw2] [ 90%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10769tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10770[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10771[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10772tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10773[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10774tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10775tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10776[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10777tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10778[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-stateless-2025-11-25] 10779[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10780[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10781tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2026-07-28] 10782tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10783tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10784[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10785[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2026-07-28] 10786tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10787tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2026-07-28] 10788[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10789[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10790tests/test_types.py::test_tool_choice 10791tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10792[gw0] [ 90%] PASSED tests/test_types.py::test_tool_choice 10793tests/test_types.py::test_sampling_message_with_user_role 10794[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10795[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10796[gw0] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10797tests/test_types.py::test_sampling_message_with_assistant_role 10798tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10799[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2026-07-28] 10800tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10801tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2025-11-25] 10802[gw0] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10803tests/test_types.py::test_sampling_message_backward_compatibility 10804[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10805[gw6] [ 90%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10806[gw0] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10807[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10808tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10809tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10810tests/test_types.py::test_create_message_request_params_with_tools 10811tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10812[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10813tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10814[gw6] [ 90%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10815[gw0] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10816[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10817tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10818[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10819tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10820tests/test_types.py::test_create_message_result_with_tool_use 10821[gw6] [ 90%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10822tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10823[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10824tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10825tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10826[gw6] [ 90%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10827[gw2] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10828[gw0] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10829tests/types/test_methods.py::test_built_in_maps_are_immutable 10830tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10831[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2025-11-25] 10832tests/test_types.py::test_create_message_result_basic 10833[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10834[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10835tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10836tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10837[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10838[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10839tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10840[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10841tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10842[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10843tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10844tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10845[gw7] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10846[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10847tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10848[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10849[gw6] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10850tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10851tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10852tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10853[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10854tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10855[gw6] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10856tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10857[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10858tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10859[gw0] [ 91%] PASSED tests/test_types.py::test_create_message_result_basic 10860[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10861[gw6] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10862tests/test_types.py::test_client_capabilities_with_sampling_tools 10863tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10864tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10865tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[sse-2025-11-25] 10866[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10867[gw0] [ 91%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10868tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10869[gw6] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10870tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10871[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10872[gw0] [ 91%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10873tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10874[gw0] [ 91%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10875tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10876tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10877[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10878tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10879tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10880[gw0] [ 91%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10881tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10882[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10883[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10884tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10885[gw0] [ 91%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10886tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10887tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10888[gw0] [ 91%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10889[gw6] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10890[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10891tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10892[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10893tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10894tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10895tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10896[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10897[gw3] [ 91%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10898tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10899tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 10900[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10901[gw7] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10902tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10903[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10904tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10905[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10906tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10907tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10908[gw6] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10909tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10910[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10911tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10912[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[sse-2025-11-25] 10913[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10914tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10915tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2025-11-25] 10916[gw2] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10917tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10918[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10919[gw2] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10920tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10921tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10922[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10923[gw2] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10924[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10925[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10926tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10927[gw6] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10928tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10929tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10930[gw6] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10931tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10932[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10933tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10934[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10935tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10936[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10937tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10938[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10939tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10940[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10941tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10942[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10943[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10944tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10945[gw7] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10946[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2025-11-25] 10947[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10948tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10949tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10950[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10951tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 10952tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10953tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] 10954[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 10955tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 10956[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 10957[gw9] [ 92%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10958tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 10959tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10960tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10961[gw8] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10962[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10963tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10964tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10965[gw7] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10966tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10967[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10968tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10969[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10970tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10971tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10972[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10973tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10974[gw5] [ 92%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] 10975tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2026-07-28] 10976[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10977[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10978tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10979[gw5] [ 92%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2026-07-28] 10980tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10981[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10982[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10983tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10984[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10985tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10986[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10987[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 10988tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 10989tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10990[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10991tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10992[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10993tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10994tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10995[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10996[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10997[gw7] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10998tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10999[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11000[gw3] [ 92%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11001[gw8] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 11002tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11003tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11004tests/test_types.py::test_jsonrpc_request 11005[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11006tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11007[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11008tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11009[gw8] [ 92%] PASSED tests/test_types.py::test_jsonrpc_request 11010[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11011tests/test_types.py::test_method_initialization 11012tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11013[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11014tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11015[gw8] [ 92%] PASSED tests/test_types.py::test_method_initialization 11016[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11017tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11018tests/test_types.py::test_tool_use_content 11019[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11020tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11021tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11022[gw8] [ 92%] PASSED tests/test_types.py::test_tool_use_content 11023[gw6] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11024tests/test_types.py::test_tool_result_content 11025tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11026[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11027tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11028[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11029tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11030[gw8] [ 92%] PASSED tests/test_types.py::test_tool_result_content 11031tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 11032tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11033[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11034tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11035[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11036[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11037tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11038tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11039[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11040[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11041tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11042tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11043[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11044tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11045tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2026-07-28] 11046[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11047tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11048[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11049[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11050tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11051[gw7] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 11052[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11053tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11054[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11055[gw6] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11056tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11057tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 11058tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11059[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11060tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11061[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11062[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11063tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11064tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11065[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11066[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11067tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11068tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11069[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11070tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11071tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11072[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11073[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11074tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11075[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11076tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11077[gw6] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11078[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11079[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2026-07-28] 11080tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11081tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2025-11-25] 11082tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11083[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11084[gw7] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 11085tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11086[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11087tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11088tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 11089[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11090[gw2] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11091tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11092tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11093tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11094[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11095[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11096tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11097[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11098tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11099tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11100[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11101tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11102[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11103[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11104tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11105[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11106tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11107[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2025-11-25] 11108[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11109tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11110tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[sse-2025-11-25] 11111[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11112[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11113tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11114tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11115[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11116tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11117[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11118tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11119[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11120tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11121[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11122tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11123[gw7] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 11124[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11125tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11126[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11127tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 11128[gw8] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11129tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11130[gw3] [ 93%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11131[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[sse-2025-11-25] 11132[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11133tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11134tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2025-11-25] 11135[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11136tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11137tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11138[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11139tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11140[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11141tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11142[gw3] [ 93%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11143tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11144[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11145[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11146tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11147tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11148[gw3] [ 93%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11149tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11150[gw3] [ 93%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11151tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11152[gw3] [ 93%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11153tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11154[gw9] [ 93%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 11155tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11156tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11157[gw3] [ 93%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11158tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11159tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11160[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11161tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11162[gw3] [ 93%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11163[gw7] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 11164[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11165tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11166tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11167tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 11168[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11169tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11170[gw3] [ 93%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11171tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11172[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11173[gw3] [ 93%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11174tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11175[gw3] [ 93%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11176[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11178[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11179tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11180tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11181[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2025-11-25] 11182[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11183tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11184tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-stateless-2025-11-25] 11185[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11186[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11187tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11188[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11189[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11190[gw9] [ 94%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11191tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11192tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11193[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11194tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11195[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11196tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11197[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11198[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11199tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11200tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11201[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11202tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11203tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11204tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11205[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11206tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11207[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11208[gw9] [ 94%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11209[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11210tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11211[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11212tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11213tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11214[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11215tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11216tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11217[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11219[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11220[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11221tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11222[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11223[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11224tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11225tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11226tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11227[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11228[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11229tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11230tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11231[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11232[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11233[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11234tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 11235tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11236tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11237tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11238[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11239[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 11240tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11241tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11242[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11243[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11244tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11245tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11246[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11247[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11248[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11249tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11250tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11251[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11252tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11253[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11254tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11255tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11256[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11257[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11258tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11259tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11260[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11261[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11262tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11263[gw7] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 11264tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11265[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11266tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11267[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11268[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11269tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11271[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11272tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11273[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11274tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11275tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11276[gw7] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11277[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11278[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11279tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11280tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11281tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11282[gw7] [ 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] 11283tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11284[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11285[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11286[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11287[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11288tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11289[gw7] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11290[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11291tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11292tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11294tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11295[gw7] [ 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] 11296tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11297[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11298[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11299tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11300[gw7] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11301tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11302[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11304[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11305[gw7] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11306tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11307[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11310tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11311[gw7] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11312[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11313tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11314[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11315[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11316[gw9] [ 95%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11318tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11319tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11320[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11321[gw9] [ 95%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11322tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11323[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11324tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11326[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11327[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11328tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11329tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11330tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11331[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11332[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11334[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11335[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11336tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11338[gw7] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11339[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11340tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11341[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11342[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11343tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11344tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11345tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11346[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11347tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11348tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11349[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11350[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11351tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11352[gw7] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11353tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11354[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11355tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11356tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11357[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11358tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11360[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11361[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11362tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11363[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11366[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11367[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11368[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11369[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11370tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11371tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11372tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11373[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11374[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11376tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11377[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11378tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11379[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11380[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11381tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11382[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11383tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11384[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11385tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11386tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11387[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11388tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11389tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11390[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11391tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11392[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11393[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11394[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11395tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11396tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11397[gw5] [ 95%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-stateless-2025-11-25] 11398tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11399[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11400tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2026-07-28] 11401tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11402[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11403[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11404[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11405tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11406tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11407tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11408[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11409[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11410tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11411[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11412tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11413[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11414[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11415tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11416tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11417tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11418[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11419[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11420[gw5] [ 95%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2026-07-28] 11421tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11422tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11423[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11424[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11425[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11426tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11427tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2026-07-28] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11429[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11430tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11432[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11434[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11435[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11436[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11437[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11439tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11441[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11442tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11443tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11444[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11445[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11446tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11447tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11448[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11449[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11450[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11451tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11452tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11453tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11454[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11455tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11456[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11457[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11458[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11459[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11460[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11461tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11462tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11463[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11464tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11465tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11466[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11467tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11468[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11469[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11470[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11471tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11472[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11473[gw5] [ 96%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2026-07-28] 11474[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11476tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11477tests/interaction/lowlevel/test_wire.py::test_request_ids_are_unique_and_never_null 11478tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11479[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11480[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11481tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11482tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11483[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11484[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11485tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11486tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11487[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11488[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11489[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11490tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11491tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11492tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11493[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11494[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11496tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11497[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11498[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11499tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11500[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11501[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11502[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11503tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11504tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11505tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11506[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11507[gw5] [ 96%] PASSED tests/interaction/lowlevel/test_wire.py::test_request_ids_are_unique_and_never_null 11508tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11509tests/interaction/lowlevel/test_wire.py::test_notifications_are_never_answered 11510[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11511tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11512tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11513[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11514[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11515[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11516tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11517tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11518[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11519tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11520[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11522[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11523[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11524[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11525tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11526tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11528[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11529[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11530tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11531tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11532[gw5] [ 96%] PASSED tests/interaction/lowlevel/test_wire.py::test_notifications_are_never_answered 11533[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11534[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11535tests/interaction/lowlevel/test_wire.py::test_recording_read_stream_ends_iteration_when_the_sender_closes 11536[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11537tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11538tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11539tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11540tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11541[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11542tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11543[gw5] [ 97%] PASSED tests/interaction/lowlevel/test_wire.py::test_recording_read_stream_ends_iteration_when_the_sender_closes 11544[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11545tests/interaction/lowlevel/test_wire.py::test_exactly_one_initialized_notification_is_sent_after_the_handshake 11546tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11547[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11548[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11549tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11550[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11551tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11552[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11553tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11554tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11555[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11556tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11557[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11558tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11559tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11560[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11561[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11562tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11563tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11564[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11565[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11566tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11567tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11568[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11569[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11570tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11571[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11572tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11573[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11574tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11575[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11576[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11578[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11579tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11580[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11581tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11582tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11583tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11584[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11585[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11586[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11587[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11588tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11589tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11590tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11591[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11592[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11593tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11594[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11595[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11596tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11597tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11598[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11599tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11600tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11601tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11602tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11603[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11604[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11605tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11606[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11607tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11608[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11609tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11610tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11611[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11612[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11613[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11614[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11615tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11616tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11617tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11618[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11619[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11620tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11621[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11622[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11623tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11624[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11625tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11626[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11627tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11628[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11629tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11630tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11631tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11632[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11633[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11634tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11635[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11636tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11637[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11638tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11639[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11640[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11641tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11642[gw7] [ 97%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11643tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11644tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11645tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11646[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11647tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11648tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11649[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11650[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11651[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11652tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11653[gw7] [ 97%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11654[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11655tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11656[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11657tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11658tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11659[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11660tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11661tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11662[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11663[gw6] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11664[gw9] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11665tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11666[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11667[gw2] [ 98%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11668tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11669tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11670[gw8] [ 98%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11671tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11672tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11673tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11674[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11675[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11676tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11677tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11678[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11679[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11680[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11681[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11682tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11683tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11684[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11685tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11686tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11687tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11688tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11689[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11690[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11691[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11692tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11693[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11694[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11695tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11696tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11697[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11698tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11699tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11700[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11701[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11702[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11703[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11704tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11705[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11706tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11707tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11708tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11709tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11710[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11711[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11712[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11713[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11714[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11715tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11716tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11717tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11718tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11719tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11720tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11721[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11722tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11723[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11724[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11725[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11726tests/types/test_version.py::test_supported_versions_are_known 11727tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11728tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11729[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11730[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11731tests/types/test_version.py::test_known_versions_are_strictly_ordered 11732[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11733[gw6] [ 98%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11734[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11735[gw2] [ 98%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11736[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11737tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11738tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11739[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_wire.py::test_exactly_one_initialized_notification_is_sent_after_the_handshake 11740tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11741tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11742tests/interaction/lowlevel/test_wire.py::test_closing_the_transport_fails_in_flight_requests_with_connection_closed 11743[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11744[gw6] [ 98%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11745tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11746[gw3] [ 98%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11747tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11748[gw0] [ 98%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11749tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11750tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11751tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11752[gw2] [ 98%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11753[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11754[gw3] [ 98%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11755[gw6] [ 98%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11756[gw8] [ 98%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11757tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11758[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_wire.py::test_closing_the_transport_fails_in_flight_requests_with_connection_closed 11759tests/interaction/lowlevel/test_wire.py::test_malformed_request_params_are_answered_with_invalid_params 11760[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11761tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11762[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11763[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_wire.py::test_malformed_request_params_are_answered_with_invalid_params 11764tests/interaction/lowlevel/test_wire.py::test_set_level_with_an_unrecognized_value_is_answered_with_invalid_params 11765[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_wire.py::test_set_level_with_an_unrecognized_value_is_answered_with_invalid_params 11766tests/interaction/lowlevel/test_wire.py::test_abandoning_a_call_on_a_modern_stream_wire_sends_one_cancelled_frame 11767[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_wire.py::test_abandoning_a_call_on_a_modern_stream_wire_sends_one_cancelled_frame 11768tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[in-memory-2025-11-25] 11769[gw5] [ 98%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[in-memory-2025-11-25] 11770tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[sse-2025-11-25] 11771[gw5] [ 98%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[sse-2025-11-25] 11772tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-2025-11-25] 11773[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-2025-11-25] 11774tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-stateless-2025-11-25] 11775[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-stateless-2025-11-25] 11776tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[in-memory-2025-11-25] 11777[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[in-memory-2025-11-25] 11778tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[sse-2025-11-25] 11779[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[sse-2025-11-25] 11780tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-2025-11-25] 11781[gw4] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11782tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11783[gw4] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11784tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11785[gw4] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11786tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11787[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11788tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11789[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-2025-11-25] 11790tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-stateless-2025-11-25] 11791[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11792tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11793[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11794tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11795[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11796tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11797[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11798tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11799[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11800tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11801[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11802tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11803[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11804tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11805[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11806tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11807[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11808tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11809[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11810tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11811[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11812tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11813[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11814tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11815[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11816tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11817[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11818tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11819[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11820tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11821[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11822tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11823[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11824tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11825[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11826tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11827[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11828[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-stateless-2025-11-25] 11829tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2025-11-25] 11830[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2025-11-25] 11831tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[sse-2025-11-25] 11832[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[sse-2025-11-25] 11833tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2025-11-25] 11834[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2025-11-25] 11835tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-stateless-2025-11-25] 11836[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-stateless-2025-11-25] 11837tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2026-07-28] 11838[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2026-07-28] 11839tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2026-07-28] 11840[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2026-07-28] 11841tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[in-memory-2025-11-25] 11842[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[in-memory-2025-11-25] 11843tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[sse-2025-11-25] 11844[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[sse-2025-11-25] 11845tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[streamable-http-2025-11-25] 11846[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[streamable-http-2025-11-25] 11847tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2025-11-25] 11848[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2025-11-25] 11849tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[sse-2025-11-25] 11850[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[sse-2025-11-25] 11851tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2025-11-25] 11852[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2025-11-25] 11853tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-stateless-2025-11-25] 11854[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-stateless-2025-11-25] 11855tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2026-07-28] 11856[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2026-07-28] 11857tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2026-07-28] 11858[gw5] [ 99%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2026-07-28] 11859[gw1] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11860tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11861[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11862tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11863[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11864tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11865[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11866tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11867[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11868tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11869[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11870tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11871[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11872tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11873[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11874tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11875[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11876tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11877[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11878tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11879[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11880tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11881[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11882tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11883[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11884tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11885[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11886tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11887[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11888tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11889[gw1] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 1189011891================= 5903 passed, 9 skipped, 1 xfailed in 37.19s ==================11892Finished executing pytestCheckPhase11893pytestCheckPhase completed in 43 seconds