tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_escapes_all_special_characters tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_empty_string tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_no_special_characters tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_backslash_escaped tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_dot_escaped tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_exclamation_escaped tests/gateway/test_telegram_format.py::TestEscapeMdv2::test_mixed_text_and_specials tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_empty_string tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_none_input tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_plain_text_specials_escaped tests/gateway/test_telegram_format.py::TestFormatMessageBasic::test_plain_text_no_markdown tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_fenced_code_block_preserved tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_preserved tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_code_block_special_chars_not_escaped tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_special_chars_not_escaped tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_multiple_code_blocks tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_backslashes_escaped tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_fenced_code_block_backslashes_escaped tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_fenced_code_block_backticks_escaped tests/gateway/test_telegram_format.py::TestFormatMessageCodeBlocks::test_inline_code_no_double_escape tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_bold_converted tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_italic_converted tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_bold_with_special_chars tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_italic_with_special_chars tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_bold_and_italic_in_same_line tests/gateway/test_telegram_format.py::TestFormatMessageBoldItalic::test_reload_mcp_summary_escapes_dynamic_server_names tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_h1_converted_to_bold tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_h2_converted tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_header_with_inner_bold_stripped tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_header_with_special_chars tests/gateway/test_telegram_format.py::TestFormatMessageHeaders::test_multiline_headers tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_markdown_link_converted tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_link_display_text_escaped tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_link_url_parentheses_escaped tests/gateway/test_telegram_format.py::TestFormatMessageLinks::test_link_with_surrounding_text tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_bullet_list_not_corrupted tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_asterisk_list_items_preserved tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_italic_does_not_span_lines tests/gateway/test_telegram_format.py::TestItalicNewlineBug::test_single_line_italic_still_works tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_converted tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_with_special_chars tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_in_code_not_converted tests/gateway/test_telegram_format.py::TestFormatMessageStrikethrough::test_strikethrough_with_bold tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_converted tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_with_special_chars tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_in_code_not_converted tests/gateway/test_telegram_format.py::TestFormatMessageSpoiler::test_spoiler_pipes_not_escaped tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_converted tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_with_special_chars tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_multiline tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_blockquote_in_code_not_converted tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_nested_blockquote tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_gt_in_middle_of_line_still_escaped tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_expandable_blockquote tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_single_asterisk_gt_not_blockquote tests/gateway/test_telegram_format.py::TestFormatMessageBlockquote::test_regular_blockquote_with_pipes_escaped tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_code_block_with_bold_outside tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_bold_inside_code_not_converted tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_link_inside_code_not_converted tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_header_after_code_block tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_multiple_bold_segments tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_special_chars_in_plain_text tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_empty_bold tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_empty_code_block tests/gateway/test_telegram_format.py::TestFormatMessageComplex::test_placeholder_collision tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_escape_backslashes tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_bold_markers tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_italic_markers tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_both_bold_and_italic tests/gateway/test_telegram_format.py::TestStripMdv2::test_preserves_snake_case tests/gateway/test_telegram_format.py::TestStripMdv2::test_preserves_multi_underscore_identifier tests/gateway/test_telegram_format.py::TestStripMdv2::test_plain_text_unchanged tests/gateway/test_telegram_format.py::TestStripMdv2::test_empty_string tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_strikethrough_markers tests/gateway/test_telegram_format.py::TestStripMdv2::test_removes_spoiler_markers tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_basic_table_rewritten_as_row_groups tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_bare_pipe_table_rewritten tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_alignment_separators tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_two_consecutive_tables_rewritten_separately tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_plain_text_with_pipes_not_wrapped tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_horizontal_rule_not_wrapped tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_existing_code_block_with_pipes_left_alone tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_no_pipe_character_short_circuits tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_no_dash_short_circuits tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_single_column_separator_not_matched tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_row_group_uses_single_newlines_within_group tests/gateway/test_telegram_format.py::TestWrapMarkdownTables::test_row_label_column_preserves_first_bullet tests/gateway/test_telegram_format.py::TestFormatMessageTables::test_table_rendered_as_bullets tests/gateway/test_telegram_format.py::TestFormatMessageTables::test_text_after_table_still_formatted tests/gateway/test_telegram_format.py::TestFormatMessageTables::test_multiple_tables_in_single_message tests/gateway/test_telegram_format.py::test_send_escapes_chunk_indicator_for_markdownv2 tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_non_final_edit_uses_plain_text_without_markdown tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_final_edit_uses_markdownv2_with_plain_fallback tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_message_too_long_splits_into_continuations_not_silent_truncation tests/gateway/test_telegram_format.py::TestEditMessageStreamingSafety::test_message_too_long_continuations_preserve_topic_metadata tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_explicit_mention_outside_allowed_chats tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_does_not_allow_reply_outside_allowed_chats tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_disabled_keeps_allowed_chats_as_hard_gate_for_mentions tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_bot_command_entity_outside_allowed_chats tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_text_mention_entity_outside_allowed_chats tests/gateway/test_telegram_format.py::TestTelegramGuestMentionGating::test_guest_mode_allows_mention_in_caption_outside_allowed_chats