tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_apply_env_overrides_with_access_token tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_apply_env_overrides_with_password tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_not_loaded_without_creds tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_encryption_flag tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_e2ee_mode_optional_sets_config tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_encryption_default_off tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_home_room tests/gateway/test_matrix.py::TestMatrixConfigLoading::test_matrix_user_id_stored_in_extra tests/gateway/test_matrix.py::TestMatrixTypingIndicator::test_stop_typing_clears_matrix_typing_state tests/gateway/test_matrix.py::TestMatrixTypingIndicator::test_stop_typing_no_client_is_noop tests/gateway/test_matrix.py::TestMatrixTypingIndicator::test_stop_typing_suppresses_exceptions tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_basic_mxc_conversion tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_mxc_with_different_server tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_non_mxc_url_passthrough tests/gateway/test_matrix.py::TestMatrixMxcToHttp::test_mxc_uses_client_v1_endpoint tests/gateway/test_matrix.py::TestMatrixDmDetection::test_room_in_m_direct_is_dm tests/gateway/test_matrix.py::TestMatrixDmDetection::test_unknown_room_not_in_cache tests/gateway/test_matrix.py::TestMatrixDmDetection::test_refresh_dm_cache_with_m_direct tests/gateway/test_matrix.py::TestMatrixDmDetection::test_m_direct_room_is_dm tests/gateway/test_matrix.py::TestMatrixDmDetection::test_named_two_member_room_is_not_dm tests/gateway/test_matrix.py::TestMatrixDmDetection::test_named_room_overrides_stale_dm_cache tests/gateway/test_matrix.py::TestMatrixDmDetection::test_canonical_alias_used_when_name_missing tests/gateway/test_matrix.py::TestMatrixDmDetection::test_non_string_m_direct_entries_ignored tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_simple_reply_fallback tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_multiline_reply_fallback tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_no_reply_fallback_preserved tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_quote_without_reply_preserved tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_empty_fallback_separator tests/gateway/test_matrix.py::TestMatrixReplyFallbackStripping::test_multiline_response_after_fallback tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_known_bang_command_normalizes_to_slash_command tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_unknown_bang_text_is_not_treated_as_command tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_model_reaches_gateway_as_slash_command tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_queue_preserves_arguments tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_unknown_bang_text_stays_normal_text tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_command_bypasses_room_mention_requirement tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_slash_command_bypasses_room_mention_requirement tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_unknown_bang_text_does_not_bypass_room_mention_requirement tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_alias_underscore_resolves_to_hyphen_form tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_skill_command_normalizes tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_bang_command_in_quoted_reply_normalizes tests/gateway/test_matrix.py::TestMatrixBangCommandAlias::test_slash_command_in_quoted_reply_normalizes tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_thread_id_from_m_relates_to tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_no_thread_for_reply tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_no_thread_for_edit tests/gateway/test_matrix.py::TestMatrixThreadDetection::test_empty_relates_to tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_image_markdown_stripped tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_regular_markdown_preserved tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_plain_text_unchanged tests/gateway/test_matrix.py::TestMatrixFormatMessage::test_multiple_images_stripped tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_render_plain_and_html_body tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_thread_payload_uses_m_thread_with_reply_fallback tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_thread_payload_preserves_explicit_reply_target tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_edit_payload_uses_m_replace tests/gateway/test_matrix.py::TestMatrixRenderingPayloads::test_long_response_split_preserves_thread_context tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_bold_conversion tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_italic_conversion tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_inline_code tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_plain_text_returns_html tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_strips_script_tag tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_strips_inline_event_handlers tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_javascript_links tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_file_links tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_ftp_links tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_blob_links tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_rejects_obfuscated_javascript_links tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_preserves_code_fences tests/gateway/test_matrix.py::TestMatrixMarkdownToHtml::test_matrix_markdown_preserves_table_structure tests/gateway/test_matrix.py::TestMatrixDisplayName::test_get_display_name_from_state_store tests/gateway/test_matrix.py::TestMatrixDisplayName::test_get_display_name_fallback_to_localpart tests/gateway/test_matrix.py::TestMatrixDisplayName::test_get_display_name_no_client tests/gateway/test_matrix.py::TestMatrixModuleImport::test_module_importable_without_mautrix tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_with_token tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_without_creds tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_without_homeserver tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_encryption_true_no_e2ee_deps tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_e2ee_optional_no_deps_ok tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_encryption_false_no_e2ee_deps_ok tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_encryption_true_with_e2ee_deps tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_e2ee_deps_requires_asyncpg tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_e2ee_deps_requires_aiosqlite tests/gateway/test_matrix.py::TestMatrixRequirements::test_check_requirements_runs_lazy_install_when_partial tests/gateway/test_matrix.py::TestMatrixAccessTokenAuth::test_connect_with_access_token_and_encryption tests/gateway/test_matrix.py::TestDeviceKeyReVerification::test_verify_fails_when_server_keys_mismatch_after_upload tests/gateway/test_matrix.py::TestMatrixE2EEHardFail::test_connect_fails_when_encryption_true_but_no_e2ee_deps tests/gateway/test_matrix.py::TestMatrixE2EEHardFail::test_connect_continues_when_e2ee_optional_but_no_deps tests/gateway/test_matrix.py::TestMatrixE2EEHardFail::test_connect_fails_when_crypto_setup_raises tests/gateway/test_matrix.py::TestMatrixDeviceId::test_device_id_from_config_extra tests/gateway/test_matrix.py::TestMatrixDeviceId::test_device_id_from_env tests/gateway/test_matrix.py::TestMatrixDeviceId::test_device_id_config_takes_precedence_over_env tests/gateway/test_matrix.py::TestMatrixDeviceId::test_connect_uses_configured_device_id_over_whoami tests/gateway/test_matrix.py::TestMatrixPasswordLoginDeviceId::test_password_login_uses_device_id tests/gateway/test_matrix.py::TestMatrixDeviceIdConfig::test_device_id_in_config_extra tests/gateway/test_matrix.py::TestMatrixDeviceIdConfig::test_device_id_not_set_when_env_empty tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_sync_loop_dispatches_events_and_stores_token tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_sync_loop_reconciles_pending_invites tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_dispatch_sync_accepts_async_handle_sync tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_sync_loop_dispatches_registered_room_message_handler tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_connect_receives_dm_from_initial_sync_dispatch tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_room_message_after_invite_join_is_received tests/gateway/test_matrix.py::TestMatrixSyncLoop::test_seconds_timestamp_is_not_treated_as_milliseconds tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_upload_unencrypted_room_uses_plain_url tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_upload_encrypted_room_uses_file_payload tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_upload_rejects_oversized_file tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_media_preserves_caption_and_thread tests/gateway/test_matrix.py::TestMatrixUploadAndSend::test_send_multiple_images_preserves_logical_batch_order_and_thread tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_diagnostics_redacts_credentials_and_reports_status tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_is_never_logged tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_output_file_is_0600 tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_bootstrap_skips_without_output_file tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_recovery_key_bootstrap_skips_existing_output_file tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_diagnostics_redacts_recovery_key tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_capability_matrix_is_declared_for_docs tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_capability_claims_match_adapter_surfaces tests/gateway/test_matrix.py::TestMatrixDiagnostics::test_matrix_docs_capability_table_matches_declaration tests/gateway/test_matrix.py::TestMatrixEncryptedSendFallback::test_send_retries_after_e2ee_error tests/gateway/test_matrix.py::TestJoinedRoomsReference::test_joined_rooms_reference_preserved_after_reassignment tests/gateway/test_matrix.py::TestMatrixEncryptedEventHandler::test_connect_registers_encrypted_event_handler_when_encryption_on tests/gateway/test_matrix.py::TestMatrixEncryptedEventHandler::test_connect_fails_on_stale_otk_conflict tests/gateway/test_matrix.py::TestMatrixDisconnect::test_disconnect_closes_api_session tests/gateway/test_matrix.py::TestMatrixDisconnect::test_disconnect_handles_session_close_failure tests/gateway/test_matrix.py::TestMatrixDisconnect::test_disconnect_without_client tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_injection_in_header tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_injection_in_plain_text tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_img_onerror_in_blockquote tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_in_list_item tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_script_in_ordered_list tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_javascript_uri_blocked tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_data_uri_blocked tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_vbscript_uri_blocked tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_link_text_html_injection tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_link_href_attribute_breakout tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_html_injection_in_bold tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlSecurity::test_html_injection_in_italic tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_fenced_code_block tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_fenced_code_block_no_lang tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_code_block_html_escaped tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_headers tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_unordered_list tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_ordered_list tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_blockquote tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_horizontal_rule tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_strikethrough tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_links_preserved tests/gateway/test_matrix.py::TestMatrixMarkdownHtmlFormatting::test_complex_mixed_document tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_safe_https_url tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_javascript_blocked tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_data_blocked tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_vbscript_blocked tests/gateway/test_matrix.py::TestMatrixLinkSanitization::test_quotes_escaped tests/gateway/test_matrix.py::TestMatrixReactions::test_send_reaction tests/gateway/test_matrix.py::TestMatrixReactions::test_send_reaction_no_client tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_start_sends_eyes tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_sends_check tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_sends_cross_on_failure tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_cancelled_sends_no_terminal_reaction tests/gateway/test_matrix.py::TestMatrixReactions::test_on_processing_complete_no_pending_reaction tests/gateway/test_matrix.py::TestMatrixReactions::test_approval_reaction_cleanup_is_delayed tests/gateway/test_matrix.py::TestMatrixReactions::test_reactions_disabled tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_accepted_message_schedules_read_receipt tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_send_read_receipt tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_send_read_receipt_falls_back_to_receipt_only tests/gateway/test_matrix.py::TestMatrixReadReceipts::test_read_receipt_no_client tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_image_only_filename_body_is_not_forwarded_as_text tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_image_caption_text_is_preserved tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_inbound_oversized_media_is_rejected tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_oversized_content_length tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_oversized_stream tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_unsafe_redirect tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_unsafe_initial_url tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_external_media_download_rejects_non_image_content_type tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_log_redacts_signed_url tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_response_does_not_expose_signed_url_query tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_response_does_not_expose_signed_url_fragment tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_response_preserves_caption tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_send_image_failure_log_still_redacts_signed_url tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_inbound_non_mxc_media_url_is_rejected tests/gateway/test_matrix.py::TestMatrixImageOnlyMediaNormalization::test_inbound_encrypted_non_mxc_media_url_is_rejected tests/gateway/test_matrix.py::TestMatrixRedaction::test_redact_message tests/gateway/test_matrix.py::TestMatrixRedaction::test_redact_no_client tests/gateway/test_matrix.py::TestMatrixRoomManagement::test_create_room tests/gateway/test_matrix.py::TestMatrixRoomManagement::test_invite_user tests/gateway/test_matrix.py::TestMatrixRoomManagement::test_create_room_no_client tests/gateway/test_matrix.py::TestMatrixPresence::test_set_presence_valid tests/gateway/test_matrix.py::TestMatrixPresence::test_set_presence_invalid_state tests/gateway/test_matrix.py::TestMatrixPresence::test_set_presence_no_client tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_exact_match_is_self tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_case_insensitive_match_is_self tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_whitespace_trimmed tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_different_user_is_not_self tests/gateway/test_matrix.py::TestMatrixSelfSenderFilter::test_empty_user_id_is_treated_as_self tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_appservice_underscore_prefix_is_bridge tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_empty_localpart_is_system tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_empty_sender_is_system tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_regular_user_is_not_bridge tests/gateway/test_matrix.py::TestMatrixSystemBridgeFilter::test_bot_account_is_not_bridge tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_own_sender_case_insensitive_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_bridge_sender_dropped_before_pairing tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_empty_sender_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_self_with_unresolved_user_id_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_regular_user_reaches_text_handler tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_unauthorized_user_reaches_text_handler tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_authorized_user_reaches_text_handler tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_unauthorized_room_is_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_dm_room_bypasses_allowed_room_gate tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_configured_bridge_pattern_is_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_notice_message_is_dropped_by_default tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_notice_message_can_be_enabled tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_duplicate_event_id_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_old_startup_event_dropped tests/gateway/test_matrix.py::TestMatrixOnRoomMessageFilter::test_seconds_timestamp_reaches_text_handler tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_from_config_extra_false tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_from_env_when_extra_unset tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_config_takes_precedence_over_env tests/gateway/test_matrix.py::TestMatrixRequireMention::test_require_mention_false_allows_unmentioned_group_message tests/gateway/test_matrix.py::TestMatrixFreeResponsePolicy::test_free_response_room_allows_unmentioned_message tests/gateway/test_matrix.py::TestMatrixFreeResponsePolicy::test_non_free_room_requires_mention tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_late_drops_emit_one_shot_clock_skew_warning tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_initial_sync_drops_do_not_warn tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_fewer_than_three_late_drops_do_not_warn tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_varied_backfill_skews_do_not_warn tests/gateway/test_matrix.py::TestMatrixClockSkewWarning::test_state_reset_allows_warning_to_fire_again tests/gateway/test_matrix.py::TestMatrixDmAutoThread::test_dm_auto_thread_enabled_creates_thread tests/gateway/test_matrix.py::TestMatrixDmAutoThread::test_dm_auto_thread_disabled_no_thread tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_no_proxy_by_default tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_matrix_proxy_env_var tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_generic_proxy_fallback tests/gateway/test_matrix.py::TestMatrixProxyConfig::test_matrix_proxy_takes_priority tests/gateway/test_matrix.py::TestCreateMatrixSession::test_no_proxy_returns_trust_env_session tests/gateway/test_matrix.py::TestCreateMatrixSession::test_http_proxy_sets_default_proxy tests/gateway/test_matrix.py::TestCreateMatrixSession::test_socks_proxy_uses_connector