tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw0-123] tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw1-123] tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw2-123] tests/gateway/test_telegram_rich_messages.py::test_rich_result_shapes_extract_message_id[raw3-None] tests/gateway/test_telegram_rich_messages.py::test_rich_happy_path_sends_raw_markdown tests/gateway/test_telegram_rich_messages.py::test_details_with_math_skips_rich_send_to_avoid_tdesktop_crash tests/gateway/test_telegram_rich_messages.py::test_details_without_math_still_uses_rich_send tests/gateway/test_telegram_rich_messages.py::test_math_outside_details_still_uses_rich_send tests/gateway/test_telegram_rich_messages.py::test_rich_messages_opt_out_uses_legacy_send_path tests/gateway/test_telegram_rich_messages.py::test_rich_messages_opt_out_accepts_string_false tests/gateway/test_telegram_rich_messages.py::test_rich_messages_default_is_enabled tests/gateway/test_telegram_rich_messages.py::test_rich_messages_can_be_opted_out tests/gateway/test_telegram_rich_messages.py::test_plain_markdown_stays_on_legacy_path tests/gateway/test_telegram_rich_messages.py::test_expect_edits_metadata_keeps_preview_on_legacy_path tests/gateway/test_telegram_rich_messages.py::test_oversized_content_skips_rich_and_chunks tests/gateway/test_telegram_rich_messages.py::test_rich_limit_is_characters_not_bytes tests/gateway/test_telegram_rich_messages.py::test_permanent_rich_error_falls_back_to_legacy[exc0] tests/gateway/test_telegram_rich_messages.py::test_permanent_rich_error_falls_back_to_legacy[exc1] tests/gateway/test_telegram_rich_messages.py::test_unknown_endpoint_error_falls_back_to_legacy tests/gateway/test_telegram_rich_messages.py::test_capability_error_latches_rich_send_off tests/gateway/test_telegram_rich_messages.py::test_real_ptb_endpoint_missing_falls_back_and_latches_off[exc0] tests/gateway/test_telegram_rich_messages.py::test_real_ptb_endpoint_missing_falls_back_and_latches_off[exc1] tests/gateway/test_telegram_rich_messages.py::test_rich_payload_preserves_link_preview_disable tests/gateway/test_telegram_rich_messages.py::test_per_message_bad_request_does_not_latch_off tests/gateway/test_telegram_rich_messages.py::test_transient_rich_error_does_not_legacy_resend[exc0] tests/gateway/test_telegram_rich_messages.py::test_transient_rich_error_does_not_legacy_resend[exc1] tests/gateway/test_telegram_rich_messages.py::test_transient_timeout_is_not_retryable tests/gateway/test_telegram_rich_messages.py::test_routing_thread_id_maps_to_message_thread_id tests/gateway/test_telegram_rich_messages.py::test_routing_direct_messages_topic_id_drops_message_thread_id tests/gateway/test_telegram_rich_messages.py::test_reply_to_propagates_as_reply_parameters tests/gateway/test_telegram_rich_messages.py::test_notification_silent_by_default tests/gateway/test_telegram_rich_messages.py::test_notification_opt_in_drops_disable_flag tests/gateway/test_telegram_rich_messages.py::test_rich_gate_tolerates_minimal_bot_without_raw_endpoint tests/gateway/test_telegram_rich_messages.py::test_details_with_math_skips_rich_draft_to_avoid_tdesktop_crash tests/gateway/test_telegram_rich_messages.py::test_rich_draft_happy_path_sends_raw_markdown tests/gateway/test_telegram_rich_messages.py::test_rich_draft_capability_failure_falls_back_and_latches_off tests/gateway/test_telegram_rich_messages.py::test_rich_draft_transient_failure_does_not_latch_off tests/gateway/test_telegram_rich_messages.py::test_rich_draft_oversized_uses_legacy tests/gateway/test_telegram_rich_messages.py::test_prefers_fresh_final_streaming_stays_disabled_when_rich_enabled tests/gateway/test_telegram_rich_messages.py::test_prefers_fresh_final_streaming_honors_rich_opt_out tests/gateway/test_telegram_rich_messages.py::test_streaming_overflow_limit_is_rich_cap_when_enabled tests/gateway/test_telegram_rich_messages.py::test_streaming_overflow_limit_none_when_rich_opted_out tests/gateway/test_telegram_rich_messages.py::test_streaming_overflow_limit_none_when_rich_latched_off tests/gateway/test_telegram_rich_messages.py::test_rich_draft_opt_out_uses_legacy tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_uses_rich_for_table_content tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_plain_content_stays_legacy tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_rich_capability_error_falls_back_to_legacy tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_rich_not_modified_is_success_noop tests/gateway/test_telegram_rich_messages.py::test_non_finalize_edit_never_uses_rich tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_opt_out_uses_legacy tests/gateway/test_telegram_rich_messages.py::test_finalize_edit_rich_over_markdownv2_limit_not_split tests/gateway/test_telegram_rich_messages.py::test_rich_reply_records_and_recovers_text tests/gateway/test_telegram_rich_messages.py::test_rich_reply_lookup_miss_leaves_text_none tests/gateway/test_telegram_rich_messages.py::test_rich_reply_native_quote_wins_over_lookup tests/gateway/test_telegram_rich_messages.py::test_rich_reply_caption_wins_over_lookup